bensonhedges
Goto Top

Powershell: Alle User anzeigen, die Zugriff auf einen Share haben

Hallo Ihr PS-Freaks,

ich möchte gerne alle User anzeigen, die Zugriff (also mindestens Lesen) auf einen Share haben.

Damit bekomme ich schon einmal alle Zugriffe inkl. AD-Gruppen angezeigt:

(get-acl , 'ordnername').Access| Select-Object -ExpandProperty IdentifyReference  

Vermutlich muss noch eine Schleife eingebaut werden, die dann noch diese AD-Gruppen in User auflöst.
Letztendlich sollte dabei nur so etwas herausgekommen:

Share:
User: User A, B, C, ....

Ich kenne mich noch nicht so gut mit der Materie aus, vielleicht kann mir jemand von Euch helfen.

Einen schönen Tag!
Benson

Content-ID: 321937

Url: https://administrator.de/contentid/321937

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

131381
Lösung 131381 24.11.2016 um 09:03:27 Uhr
Goto Top
Get-ADGroupMember GRUPPEXYZ -recursive ist dein Freund

Gruß
bensonhedges
bensonhedges 24.11.2016 um 09:09:08 Uhr
Goto Top
Vielen Dank! Das habe ich auch schon herausgefunden face-wink

Wie gesagt, ich kenne mich mit PS noch nicht so gut aus... Wie baue ich den Befehl in die Schleife mit ein?
131381
Lösung 131381 24.11.2016 aktualisiert um 16:56:20 Uhr
Goto Top
In der Schleife machst du eine Abfrage mit Get-ADGroupMember setzt den Parameter -ErrorAction Silently Continue und speicherst das Ergebnis in einer Variablen. Die Variable checkst du mit einer IF-Abfrage: Wenn Daten in der Variable stehen war es eine Gruppe ansonsten gibst du den Usernamen aus.
Das ganze lässt du noch durch Select -Unique laufen um doppelte User zu entfernen. Fertig.
(get-acl C:\Ordner).Access | %{
    $account = $_.IdentityReference.Value.split('\')[-1]  
    try{
        $result = Get-ADGroupMember $account -Recursive -EA Stop
        $result.SamAccountName
    }catch{
        $account
    }
} | Select -Unique