Michael1985 Geschrieben 16. Februar Geschrieben 16. Februar 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 . Zitieren
Wissenshungriger Geschrieben 16. Februar Geschrieben 16. Februar 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." } } Thanks-and-Goodbye und BurningBeard reagierten darauf 2 Zitieren
Michael1985 Geschrieben 21. Februar Autor Geschrieben 21. Februar 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 Zitieren
Maniska Geschrieben 22. Februar Geschrieben 22. Februar Anführungszeichen vergessen oder die Falschen verwendet? Zitieren
Michael1985 Geschrieben 22. Februar Autor Geschrieben 22. Februar 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 Zitieren
BurningBeard Geschrieben 22. Februar Geschrieben 22. Februar 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 Zitieren
Michael1985 Geschrieben 22. Februar Autor Geschrieben 22. Februar Es waren diese Anführungszeichen --> 'Anführungszeichen' . So läuft das Script perfekt und ohne Fehler. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.