bensonhedges

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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 321937

Url: https://administrator.de/forum/powershell-alle-user-anzeigen-die-zugriff-auf-einen-share-haben-321937.html

Ausgedruckt am: 28.04.2025 um 03:04 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