Wie kann man in Powershell Ergebnisse von Properties herausfiltern?

... komplette Frage anzeigen

1 Antwort

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 ;)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Etter
04.11.2015, 23:21

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

0

Was möchtest Du wissen?