Veröffentlicht 16. Februar 20241 j Hallo zusammen, mit welchen Powershell Befehl kann ich NTFS-Ordnerberechtigungen abfragen? Ich habe im AD eine Sicherheitsgruppe SG_Einkauf. Ich benötige einen PowerShell Befehl, womit ich auslesen kann, wo die SG_Einkauf überall berechtigt ist. Vielen Dank für eure schnelle Hilfe .
16. Februar 20241 j Probiere es mal damit # Definieren des Startverzeichnisses $startDirectory = "C:\PfadZumStartverzeichnis" # Definieren des Sicherheitsgruppennamens $securityGroupName = "SG_Einkauf" # Durchsuchen aller Verzeichnisse ab dem Startverzeichnis, Fehler unterdrücken für nicht zugreifbare Verzeichnisse $directories = Get-ChildItem -Directory -Path $startDirectory -Recurse -ErrorAction SilentlyContinue foreach ($directory in $directories) { $path = $directory.FullName # Versuchen, die ACL des Verzeichnisses abzurufen try { $acl = Get-Acl -Path $path # Filtern der ACL-Einträge auf die Ziel-Sicherheitsgruppe $relevantAcls = $acl.Access | Where-Object { $_.IdentityReference -like "*$securityGroupName*" } if ($relevantAcls) { foreach ($relevantAcl in $relevantAcls) { # Prüfen, ob die ACL-Einträge für die Sicherheitsgruppe relevant sind if ($relevantAcl) { Write-Host "Berechtigung gefunden in: $path" # Optional: Ausgeben der Berechtigungsart Write-Host "Berechtigungsart: $($relevantAcl.FileSystemRights)" break # Stoppt die Schleife nach dem ersten relevanten Eintrag } } } } catch { # Fehlerbehandlung für den Fall, dass beim Abrufen der ACL ein Fehler auftritt Write-Warning "Zugriff auf ACL von $path nicht möglich." } }
21. Februar 20241 j Autor Hallo, vielen Dank für das ausführliche Script. Ich habe das Script mehrere Male auf unseren Dateiserver ausgeführt. Ich bekomme gleich nach dem ausführen des Scripts folgende zwei Meldungen: F:\Shares : Die Benennung "F:\Shares" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang. In Zeile:2 Zeichen:19 + $startDirectory = F:\Shares + ~~~~~~~~~ + CategoryInfo : ObjectNotFound: (F:\Shares:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException und SG_WS_rw : Die Benennung "SG_WS_rw" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang. In Zeile:5 Zeichen:22 + $securityGroupName = SG_WS_rw + ~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (SG_WS_rw:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException Wo liegt der Fehler? Mit freundlichen Grüßen Michael
22. Februar 20241 j Autor Servus, was heißt denn die falschen? "SG_Einkauf" oder SG_Einkauf ? Wie muss der Pfad im Script eingetragen sein? Mit Anführungszeichen oder ohne? $startDirectory = "C:\PfadZumStartverzeichnis" Sehe gerade den Wald vor lauter Bäumen nicht. Grüße
22. Februar 20241 j Moin, bei Powershell gibt es z.B. einen Unterschied zwischen "Anführungszeichen" und 'Anführungszeichen' Siehe als Beispiel hier eine Erläuterung dazu. https://pascal-korz.de/blog/2021/05/22/powershell-fallen-5-doppelte-einfache-maskierte-anfuehrungszeichen/ Mit freundlichen Grüßen
22. Februar 20241 j Autor Es waren diese Anführungszeichen --> 'Anführungszeichen' . So läuft das Script perfekt und ohne Fehler.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.