mmaiwald
Goto Top

Auslesen Ordner inkl. Berechtigung

Hallo,

ich habe mir ein Powershellskript erstellt, dass auch funktioniert.
Jetzt habe ich verschiedene Pfade auf unterschiedlichen Servern die ausgelesen werden und alle Informationen in eine Datei geschrieben werden.

$path1 = "\\dc\a\"  

$data = @()
$ordner = Get-ChildItem2 -Directory -Force -Path $path1 -SkipSymbolicLinks | Get-NTFSAccess
$ordner | %{
    $name = $_.name
    $gruppe = $_.account
    $berechtigung = $_.accessRights
    $zOrdner = "$path1$name"  
    $data += New-Object PSObject -Property @{"Ordner"=$zOrdner;"Gruppe"=$gruppe;"Berechtigung"=$berechtigung}  
}
$data | select Ordner, Gruppe, Berechtigung | Export-Csv 'C:\temp\groupmembers.csv' -Delimiter ';' -NoType -Append -Encoding UTF8  

Optimal wäre es, wenn die Pfade im Skript direkt mit angegeben werden.

$path1 = "\\dc\a\"  
$path2 = "\\dc2\a\"  

Wie kann ich das umsetzen?

Content-Key: 608757

Url: https://administrator.de/contentid/608757

Printed on: April 25, 2024 at 15:04 o'clock

Mitglied: 145916
145916 Sep 30, 2020 updated at 08:46:43 (UTC)
Goto Top
Member: MMaiwald
MMaiwald Sep 30, 2020 updated at 09:23:56 (UTC)
Goto Top
Jetzt habe ich die Schleife rumgebaut und die Ausgabe ist nicht korrekt.

$path = '\\dc\a\', '\\dc\b\'  
foreach ($Ordner in $path) {
  
$data = @()
$ordner = Get-ChildItem2 -Directory -Force -Path $path -SkipSymbolicLinks | Get-NTFSAccess
$ordner | %{
    $name = $_.name
    $gruppe = $_.account
    $berechtigung = $_.accessRights
    $zOrdner = "$path$name"  
    $data += New-Object PSObject -Property @{"Ordner"=$zOrdner;"Gruppe"=$gruppe;"Berechtigung"=$berechtigung}  
}
$data | select Ordner, Gruppe, Berechtigung | Export-Csv 'C:\temp\groupmembers.csv' -Delimiter ';' -Append -NoType -Encoding UTF8  

}
Hier die Ausgabe
"Ordner";"Gruppe";"Berechtigung"  
"\\dc\a\ \\dc\b\A_test1";"test\Administrator";"FullControl"  
"\\dc\a\ \\dc\b\A_test1";"VORDEFINIERT\Administratoren";"FullControl"  
"\\dc\a\ \\dc\b\A_test1";"NT-AUTORITÄT\SYSTEM";"FullControl"  
"\\dc\a\ \\dc\b\A_test2";"test\Administrator";"FullControl"  
"\\dc\a\ \\dc\b\A_test2";"VORDEFINIERT\Administratoren";"FullControl"  
"\\dc\a\ \\dc\b\A_test2";"NT-AUTORITÄT\SYSTEM";"FullControl"  
"\\dc\a\ \\dc\b\A_test3";"test\Administrator";"FullControl"  
"\\dc\a\ \\dc\b\A_test3";"VORDEFINIERT\Administratoren";"FullControl"  
"\\dc\a\ \\dc\b\A_test3";"NT-AUTORITÄT\SYSTEM";"FullControl"  
"\\dc\a\ \\dc\b\B_Test1";"test\Administrator";"FullControl"  
"\\dc\a\ \\dc\b\B_Test1";"VORDEFINIERT\Administratoren";"FullControl"  
"\\dc\a\ \\dc\b\B_Test1";"NT-AUTORITÄT\SYSTEM";"FullControl"  
"\\dc\a\ \\dc\b\B_Test2";"test\Administrator";"FullControl"  
"\\dc\a\ \\dc\b\B_Test2";"VORDEFINIERT\Administratoren";"FullControl"  

Was ist nicht korrekt?
Mitglied: 145916
Solution 145916 Sep 30, 2020 updated at 09:43:39 (UTC)
Goto Top
Du hast die Variablen alle durcheinander geworfen und doppelt verwendet! Also nochmal Augen genau auf face-wink.

Hier kannst du es übrigens auch ohne Foreach Schleife machen, -Path von Get-ChildItem akzeptiert auch String-Arrays
$pathes = '\\dc\a\', '\\dc\b\'
Get-ChildItem $pathes -Directory -Force -SkipSymbolicLinks | Get-NTFSAccess | select @{n="Ordner";e={$_.FullName}},@{n='Gruppe';e={$_.account}},@{n='Berechtigung';e={$_.accessRights}} | Export-Csv 'C:\temp\groupmembers.csv' -Delimiter ';' -Append -NoType -Encoding UTF8
Member: MMaiwald
MMaiwald Sep 30, 2020 at 09:48:02 (UTC)
Goto Top
Eine kleine Hilfe wäre sehr hilfreich.
Mitglied: 145916
145916 Sep 30, 2020 updated at 09:54:18 (UTC)
Goto Top
s. Ergänzung in meinem letzten Kommentar.
Member: MMaiwald
MMaiwald Sep 30, 2020 at 10:07:22 (UTC)
Goto Top
sehr schnelle und gute Lösung, Danke

Gruß
Mario