Powershell script : maprechten op windows fileserver van bepaalde user of van iedereen

het script noemt : ACLPOWERINFO_V2

Als je het script start, geef je uw file server op : voorbeeld : \\dvcfileserver” (zonder aahalingstekens). Je mag ook een dfs path opgeven.

Daarna geef je de sharenaam met of zonder submap :” gegevens\test ”

Daarna het path met de exportfile naam : “c:\test\exportuser.txt”

daarna geef de naam op van een domein user van wie je alle mappen wil weten waar hij rechten op heeft. (“domeinnaam\userlogin”) Je zal ook zien of zijn rechten “IsInherited” zijn.
Als je geen specifieke domainuser wil opgeven, type dan ” * “.

Hieronder vindt u de broncode van het powershell script. kopieer dit in windows powershell ISE (powershell gui) of bewaar dit in een ps1 bestand. : “c:\aclpowerinfo.ps1”

dan kan je in de command prompt  het volgende typen : powershell -file “c:\aclpowerinfo.ps1”.

#

# modified script by (c) Dick Kluskens
$serverinputb = Read-Host ‘Wat is uw file server path ? (\\…..)’
$targetServer = $serverinputb #Enter hostname
$fileinputb = read-host ‘wat is uw file scan direcotory (sharenaam\submap)’
$targetDirectory = $fileinputb #Enter directory name
$target = Join-Path -ChildPath $targetDirectory -Path $targetServer
$arrResults = @() #Initialize array used to store custom object output
$exportfileb = read-host ‘geef exportfile (c:\temp\ntfsexp.txt) ? ‘
$naamdkmagic = read-host ‘geef alleen voor bepaalde gebruiker/groep/alle (domein\username, *) ? :’
$exportPath = $exportfileb #Enter name of the CSV output file
write-host $target
#Query target directory for all ‘folders’ (excludes files via Where statement)
Get-ChildItem -Recurse -Path $target | Where { $_.PSIsContainer } | forEach {
#write-host $_.PSIScONTAINER
#write-host $accessRight.IdentityReference

$objPath = $_.FullName
$coLACL = Get-Acl -Path $objPath
forEach ( $objACL in $colACL ) {
forEach ( $accessRight in $objACL.Access ) {
if($accessRight.IdentityReference -like $naamdkmagic) {
$objResults = New-Object –TypeName PSObject

 

$objResults | Add-Member –MemberType NoteProperty –Name DirectoryPath –Value $objPath
$objResults | Add-Member –MemberType NoteProperty –Name Identity –Value $accessRight.IdentityReference
$objResults | Add-Member –MemberType NoteProperty –Name SystemRights –Value $accessRight.FileSystemRights
$objResults | Add-Member –MemberType NoteProperty –Name SystemRightsType –Value $accessRight.AccessControlType
$objResults | Add-Member -MemberType NoteProperty -Name IsInherited -Value $accessRight.IsInherited
$objResults | Add-Member -MemberType NoteProperty -Name InheritanceFlags -Value $accessRight.InheritanceFlags
$objResults | Add-Member –MemberType NoteProperty –Name RulesProtected –Value $objACL.AreAccessRulesProtected

 

$arrResults += $objResults

}

}

}

}

$arrResults | Export-CSV -NoTypeInformation -Path $exportPath

 

 

 

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *