Я пытаюсь получить разрешения для групп и участников, чтобы перечислить все подробные общий доступ.
Я нашел этот сценарий. Я пытаюсь выполнить это, но что-то не так. Я хочу вернуть результат, который будет фильтровать в CSV-файле следующим образом:
$queryPath = "s:\it\install"
$targetFile = "C:\Test.csv"
$Table = @()
$Record = [ordered]@{
"Path" = ""
"IdentityReference" = ""
"Class" = ""
"GrpMember" = ""
}
$foldersToQuery = Get-ChildItem $queryPath | Where {$_.PSIsContainer} | select -expandproperty FullName
foreach ($folder in $foldersToQuery) {
$Record.Path = $folder
$permissions = Get-Acl $folder | select -expandproperty Access
foreach ($permission in $permissions) { {
[string]$id = $permission.IdentityReference
$SamAccountName = $id.Split('\')[1]
$ADObject = Get-ADObject -Filter ('SamAccountName -eq "{0}"' -f $SamAccountName) }
$Record.IdentityReference = $permission.IdentityReference.ToString()
switch ($ADObject.ObjectClass) {
'user' {
$Record.Class = $ADObject.ObjectClass
$Record.GrpMember = ""
$objRecord = New-Object PSObject -property $Record
$Table += $objrecord
}
'group' { {
$Record.Class = $ADObject.ObjectClass
$members = Get-ADGroupMember $SamAccountName }
foreach ($member in $members) {{
$Record.GrpMember = $member.name
$objRecord = New-Object PSObject -property $Record
$Table += $objrecord
}
}
}
}
}
}
$Table | Export-Csv $targetFile -NoTypeInformation -Encoding UTF8