Frage von Baumrindensuppe, 40

Wie kann man in Powershell Ergebnisse von Properties herausfiltern?

Ich habe eine Abfrage in PS geschrieben, um in Erfahrung zu bringen, auf ob und welche Berechtigungen eine bestimmte Gruppe auf Ordner in einem bestimmten Pfad haben.

$sName = GRUPPE
Get-ChildItem PFAD -Recurse | Where-Object {$_.PSIsContainer} | Get-Acl | Where-Object {$_.AccessToString -like $sName} | Select-Object PSParentPath,Path,AccessToString | fl

Als Ergebnis werden mir nun alle Gruppen wiedergegeben, die auf die aufgelisteten Ordner Zugriff haben. Wie kann ich diese herausfiltern bzw. wie kann ich mir nur meine gesuchte Gruppe mit Rechten anzeigen lassen?

Danke!

Antwort
von Etter, 40

Du willst alle Rechte aller Subordner eines Ordners einlesen und auf einen Benutzer oder eine Gruppe durchsuchen richtig?

Ich denke mal, dass ich es jetzt richtig umgeschrieben habe:


$sName = "Gruppenname"
$Feedbacks = Get-ChildItem "Ordnername" -Recurse | Where-Object {$_.PSIsContainer} | Get-Acl | Where-Object {$_.AccessToString -like $sName}
foreach ($Feedback in $Feedbacks) {
$AccessRights = $Feedback.Access
foreach ($Access in $AccessRights) {
if ($Access.IdentityReference -like $sName) {
$Feedback
}
}
}

Ich hoffe mal, dass es so "eingerückt" bleibt.

Achte bei "$sName" darauf, dass du entweder genau den Gruppennamen angibst oder mit Wildcards arbeitest (s. Unterschied -like, -contains, -match).

Die ideale Lösung ist es nicht, da es verschachtelte foreach-Schleifen sind, aber es sollte klappen.

In der aktuellen Lösung wird am Ende der komplette Ordner mit "Path", "Owner" und "Access" angezeigt. Da musst du gucken, wie du das weiterverarbeiten willst.

Du könntest dir z.B. "$Access" und "Feedback.Path" als List anzeigen lassen.

Über Feedback würde ich mich freuen ;)

Kommentar von Etter ,

Btw. sowas nicht direkt produktiv einsetzen, sondern erst entsprechend testen xD

Kommentar von Baumrindensuppe ,

Ah, Klasse. Werde es mal austesten! Danke!

Keine passende Antwort gefunden?

Fragen Sie die Community