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.

1
2
3
4
5
6
7
8
9
10
11
12
$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.

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

Wie kann ich das umsetzen?

Content-ID: 608757

Url: https://administrator.de/forum/auslesen-ordner-inkl-berechtigung-608757.html

Ausgedruckt am: 10.04.2025 um 22:04 Uhr

145916
145916 30.09.2020 aktualisiert um 10:46:43 Uhr
Goto Top
MMaiwald
MMaiwald 30.09.2020 aktualisiert um 11:23:56 Uhr
Goto Top
Jetzt habe ich die Schleife rumgebaut und die Ausgabe ist nicht korrekt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
"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?
145916
Lösung 145916 30.09.2020 aktualisiert um 11:43:39 Uhr
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
MMaiwald
MMaiwald 30.09.2020 um 11:48:02 Uhr
Goto Top
Eine kleine Hilfe wäre sehr hilfreich.
145916
145916 30.09.2020 aktualisiert um 11:54:18 Uhr
Goto Top
s. Ergänzung in meinem letzten Kommentar.
MMaiwald
MMaiwald 30.09.2020 um 12:07:22 Uhr
Goto Top
sehr schnelle und gute Lösung, Danke

Gruß
Mario