[Suche] Script (Windows) zum Export von ACL von Unterordnern

K

KeinNickFrei

Gast
Hallo allerseits,

ich verzweifle langsam daran, ein an sich simples Script zu erstellen. Normalerweise bastle ich es mir aus verschiedensten Code-Bestandteilen zusammen, aber jetzt bekomme ich es nicht hin.

Ich möchte in einer großen Ordnerstruktur (Fileserver) auslesen, wer alles Vollzugriff hat (ausser server\domain admins)
Das soll in eine CSV exportiert werden.
Die benötigten Werte sind nur "Voller Ordnerpfad" und "User bzw. Gruppe die Allow FullAccess"

Ich hätte es mit Powershell probiert, weil es das naheliegenste ist...
Vom Ablauf wäre es ja:

Basisverzeichnis in eine Variable
rekursiv durch alle Unterverzeichnisse loopen (nur Ordner, keine Dateien)
foreach element die ACL auslesen
Abfrage, wenn ACL für ein element (außer domain admins) fullaccess allow ist
--> export für dieses element in eine csv mit select fullpath und user

...sollte nicht schwer sein, dachte ich.
aber im Netz finde ich keine Lösung, die genau das macht....

Kann/mag mir da jemand weiterhelfen?

besten Dank!
 
Wo genau benötigst du dann Hilfe? Dein Ablauf wäre in etwa schon korrekt.

--> Get-ChildItem | Get-Acl | Export-Csv

Die CMDlets kannst du "Googlen" und mit den richtigen Parametern versehen...
 
Auch wenn es blöd klingt, aber ich schaffe es nicht, mir das zusammen zu setzen.
Die Scriptlets sind mir alle zu objektorientiert und das habe ich noch nie hinbekommen.
Normalerweise bin ich schon gut im recherchieren, aber die Beispiele die ich gefunden und probiert habe konnte ich nicht zusammensetzen.
 
So, das kommt jetzt so ziemlich hin.
Wenn ich nur das "IdentityReference" statt des ganzen Blocks ausgeben könnte, dann wäre es noch besser.

Code:
##Variable definieren
$path = "C:\test"
## Beginn Script

Foreach ($file in Get-Childitem $path -Recurse -Directory)
{

if (get-acl $file.FullName | select -ExpandProperty Access | where {$_.IdentityReference -notlike "VORDEFINIERT\Administratoren" -and `
$_.IdentityReference -notlike "NT-AUTORITÄT\SYSTEM" -and $_.AccessControlType -like "Allow" -and $_.FileSystemRights -like "FullControl"} )
{
  write-host $file.FullName 
  get-acl $file.FullName | select -ExpandProperty Access | where {$_.IdentityReference -notlike "VORDEFINIERT\Administratoren" -and `
  $_.IdentityReference -notlike "NT-AUTORITÄT\SYSTEM" -and $_.AccessControlType -like "Allow" -and $_.FileSystemRights -like "FullControl"} 
}

}
 
Zurück
Oben