2016-04-08 10 views
1

Ich brauche eine Liste aller Verzeichnisse (rekursiv), für die Benutzerberechtigungen registriert sind (keine Benutzergruppen).Get-Acl-Liste nur Benutzer

Etwas wie:

Get-ChildItem -Recurse c:\scripte | Get-Acl | 
    Where-Object -FilterScript {$_.objectclass -eq 'user'} 

ich es denke, einige Get-ADUser Sachen sein muss?

+2

Sind Sie Suchen Sie nur nach AD-Benutzern oder lokalen Benutzern? Was ist mit eingebauten Sicherheitsprinzipalen? –

+0

Hallo, Lust auf AD Benutzer. – deep

Antwort

0

So etwas sollte tun, vorausgesetzt, dass Sie Powershell v3 oder neuer:

Get-ChildItem c:\scripte -Recurse -Directory | Where-Object { 
    (Get-Acl $_.FullName).Access.IdentityReference -match "^$env:USERDOMAIN\\" -replace '^.*\\' | 
    ForEach-Object { Get-ADUser -Filter "SamAccountName -eq $_" } 
} 

Wenn Sie mit Powershell v2 der Aussage stecken wird ein wenig komplizierter:

Get-ChildItem c:\scripte -Recurse | Where-Object { 
    $_.PSIsContainer -and 
    (Get-Acl $_.FullName | Select-Object -Expand Access | 
    Select-Object -Expand IdentityReference) -match "^$env:USERDOMAIN\\" -replace '^.*\\' | 
    ForEach-Object { Get-ADUser -Filter "SamAccountName -eq $_" } 
} 
Verwandte Themen