PowerShell: Verzeichnisrechte auslesen und in einer CSV abspeichern
Hallo,
ich bin im Netz auf ein PowerShell-Script gestoßen, welches meinen Anforderungen fast gerecht wird. Was mich an dem Script stört ist, dass ich nicht auswählen kann, wieviele Ebenen es auswerten soll.
Unser Verzeichnisbaum ist sehr lang. Ich habe die Rechte bis in der 3. Ebene gesetzt. Jetzt möchte ich das auf "Papier" - in dem Fall eine CSV-Daten - bringen.
Hier ist das Script:
Es macht derzeit 4 Spalten. Soweit eigentlich ganz gut. Ich habe in meinem Verzeichnisbaum aber Rechte gegeben und verboten. Ich möchte also 2 weitere Spalten eingebaut haben, die einmal "Erlaubt" und einmal "Verboten" lauten.
Es macht auch keinen Sinn die komplette Strukturen zu scannen, wenn man vor hat, nur die ersten 3 oder 4 zu verwalten.
Ich bin kein Coding-Experte, weiss aber, dass der Schlüssel in "User=...." liegt ...nein, ich kenne die Felder nicht, die ich auslesen kann.
Wäre Super, wenn mir jemand in der Sache etwas helfen kann.
Ich bedanke mich.
Grüße
V
ich bin im Netz auf ein PowerShell-Script gestoßen, welches meinen Anforderungen fast gerecht wird. Was mich an dem Script stört ist, dass ich nicht auswählen kann, wieviele Ebenen es auswerten soll.
Unser Verzeichnisbaum ist sehr lang. Ich habe die Rechte bis in der 3. Ebene gesetzt. Jetzt möchte ich das auf "Papier" - in dem Fall eine CSV-Daten - bringen.
Hier ist das Script:
$FolderPath = dir -Directory -Path "Z:\Verzeichnis\" -Recurse -Force
$Report = @()
Foreach ($Folder in $FolderPath) {
$Acl = Get-Acl -Path $Folder.FullName
foreach ($Access in $acl.Access)
{
$Properties = [ordered]@{'FolderName'=$Folder.FullName;'AD
Group or
User'=$Access.IdentityReference;'Permissions'=$Access.FileSystemRights; 'Inherited'=$Access.IsInherited}
$Report += New-Object -TypeName PSObject -Property $Properties
}
}
$Report | Export-Csv -path "C:\tmp\FolderPermissions.csv"
Es macht derzeit 4 Spalten. Soweit eigentlich ganz gut. Ich habe in meinem Verzeichnisbaum aber Rechte gegeben und verboten. Ich möchte also 2 weitere Spalten eingebaut haben, die einmal "Erlaubt" und einmal "Verboten" lauten.
Es macht auch keinen Sinn die komplette Strukturen zu scannen, wenn man vor hat, nur die ersten 3 oder 4 zu verwalten.
Ich bin kein Coding-Experte, weiss aber, dass der Schlüssel in "User=...." liegt ...nein, ich kenne die Felder nicht, die ich auslesen kann.
Wäre Super, wenn mir jemand in der Sache etwas helfen kann.
Ich bedanke mich.
Grüße
V
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 649678
Url: https://administrator.de/contentid/649678
Ausgedruckt am: 24.11.2024 um 08:11 Uhr
5 Kommentare
Neuester Kommentar
Ich möchte also 2 weitere Spalten eingebaut haben, die einmal "Erlaubt" und einmal "Verboten" lauten.
Tipp, einfach mal die Variablen in der Schleife ausgeben lassen dann siehst du was es gibt:$Access.AccessControlType
# ...
$Properties = [ordered]@{
'FolderName'=$Folder.FullName
'AD Group or User'=$Access.IdentityReference
'Permissions'=$Access.FileSystemRights
'Inherited'=$Access.IsInherited
'AccessControlType' = $Access.AccessControlType
}
#...
Gruß j.
Na dann fehlt ja nur noch
Wie kann ich einen Beitrag als gelöst markieren?
Wie kann ich einen Beitrag als gelöst markieren?
Deine Powershell ist zu alt. Die alte Powershell 2.0 kennt den Parameter -Directory noch nicht.
Du kannst es aber so schreiben wenn du nicht updaten willst (würde ich aber dringend empfehlen!!)
Das funktioniert auch mit der PS 2.0
Du kannst es aber so schreiben wenn du nicht updaten willst (würde ich aber dringend empfehlen!!)
$FolderPath = dir "Z:\Verzeichnis" -Recurse -Force | ?{$_.PSIsContainer}