chkdsk
Goto Top

Wiederkehrende Ausgabe in .csv ausblenden

Guten Tag zusammen,

ich habe folgendes Powershell Skript geschrieben, welches mit alle AD Gruppen inkl NTFS Berechtigungen eines gewünschten Ordner/Shares ausgibt.

Function Get-Folder($initialDirectory)

{
    [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")|Out-Null  

    $Ordnername = New-Object System.Windows.Forms.FolderBrowserDialog
    $Ordnername.Description = "Ordner auswählen"  
    $Ordnername.rootfolder = "MyComputer"  

    if($Ordnername.ShowDialog() -eq "OK")  
    {
        $Ordner += $Ordnername.SelectedPath
    }
    return $Ordner
}

$o = Get-Folder
Write-Host
Write-Host
Write-Host "Berechtigungsstruktur wird gelesen"  
Write-Host "Liste wird erstellt. Bitte warten..."  

Get-ChildItem –Path $o –Recurse -Attributes Directory | Get-NTFSAccess | select Fullname,Account,AccessRights,InheritedFrom | export-csv C:\Users\Desktop\Berechtigungsstruktur.csv -NoType -Encoding UTF8 -Delimiter ";"   

Er gibt mir selbstverständlich jede Zugriffsgruppe aus. Allerdings auch wiederkehrend immer die Gruppen "NT-AUTORITÄT\SYSTEM"und "VORDEFINIERT\Administrators". Ich schaffe es aber nicht von vornherein diese beiden Gruppen aus dem Export auszuschließen. Auch über Filter gibt er mir jedes Mal diese Gruppe mit aus.

Content-Key: 514067

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

Ausgedruckt am: 29.03.2024 um 01:03 Uhr

Mitglied: emeriks
emeriks 11.11.2019 um 08:39:48 Uhr
Goto Top
Hi,
Um z.B. "Administrators" zu filtern sollte es reichen
Get-NTFSAccess
durch
Get-NTFSAccess | Where {-not $_.Account -like "*Administrators"}  
zu ersetzen.

E.
Mitglied: chkdsk
chkdsk 11.11.2019 um 09:18:29 Uhr
Goto Top
Leider gibt er mir nun gar nichts mehr aus. Die erstellte Datei ist leer.

Function Get-Folder($initialDirectory)

{
    [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")|Out-Null  

    $Ordnername = New-Object System.Windows.Forms.FolderBrowserDialog
    $Ordnername.Description = "Ordner auswählen"  
    $Ordnername.rootfolder = "MyComputer"  

    if($Ordnername.ShowDialog() -eq "OK")  
    {
        $Ordner += $Ordnername.SelectedPath
    }
    return $Ordner
}

$o = Get-Folder
Write-Host
Write-Host
Write-Host "Berechtigungsstruktur wird gelesen"  
Write-Host "Liste wird erstellt. Bitte warten..."  

Get-ChildItem –Path $o –Recurse -Attributes Directory | Get-NTFSAccess | Where {-not $_.Account -like "*Administrators"} | select Fullname,Account,AccessRights,InheritedFrom | export-csv C:\Users\Desktop\Berechtigungsstruktur.csv -NoType -Encoding UTF8 -Delimiter ";"   
Mitglied: emeriks
emeriks 11.11.2019 aktualisiert um 09:22:48 Uhr
Goto Top
Ich kenne jetzt Get-NTFSAccess nicht. Keine Ahnung, was das ausgibt.
ggf. über Fullname filtern. Oder über $_.Account.ToString()

Andererseits:
Wenn er jetzt gar nichts mehr ausgibt ...? Hast Du das "-not" vergessen?
Mitglied: chkdsk
chkdsk 11.11.2019 aktualisiert um 09:28:57 Uhr
Goto Top
Die .csv sieht so aus.

FullName Account AccessRights
S:\Tools_Software\Ordnerxyz VORDEFINIERT\Administrators FullControl
S:\Tools_Software\Ordnerxyz Gruppexyz FullControl


Lasse ich jetzt natürlich das Skript über einen Ordner mit vielen Unterordnern laufen, wird mir ja x-Mal die Gruppe VORDEFINIERT\Administrators angezeigt.

PS: -not habe ich nicht vergessen
Mitglied: emeriks
emeriks 11.11.2019 um 09:30:59 Uhr
Goto Top
Na dann nicht Fullname. Das ist ja der Pfad.
Über Account ist schon richtig.

VORDEFINIERT\Administrators
Deutsch und Englisch gemischt?! Hast Du die Gruppe umbenannt oder was?
Mitglied: chkdsk
chkdsk 11.11.2019 um 09:33:36 Uhr
Goto Top
Nein habe ich nicht. Das ist die Ausgabe in der .csv. face-smile
Filter ich in dem Skript und lasse tatsächlich das -not weg, filter er.
Mitglied: 141815
Lösung 141815 11.11.2019 aktualisiert um 09:36:02 Uhr
Goto Top
Kinners, macht es doch gleich Sprachunabhängig und nehmt die SID!
Get-ChildItem –Path $o –Recurse -Directory | Get-NTFSAccess |  ?{$_.Account.Sid -notin @('S-1-5-18','S-1-5-32-544')} | select Fullname,Account,AccessRights,InheritedFrom | export-csv C:\Users\Desktop\Berechtigungsstruktur.csv -NoType -Encoding UTF8 -Delimiter ";"   
Fertig. Account ist übrigens ein Object, bestehend aus den Properties "SID" und "AccountName".
Mitglied: chkdsk
chkdsk 11.11.2019 um 09:36:44 Uhr
Goto Top
Bei mir funktioniert es über
 Where {$_.Account -notlike "*Administrators"}  
Mitglied: erikro
erikro 11.11.2019 um 09:38:45 Uhr
Goto Top
Moin,

da fehlen Klammern:

Where {-not ($_.Account -like "*Administrators")}  

Und um Sprachverwirrung zu vermeinden, würde ich nach *Admin* filtern.

hth

Erik
Mitglied: chkdsk
chkdsk 11.11.2019 um 09:39:56 Uhr
Goto Top
@calender

oder tatsächlich so ja face-smile
rein aus Interesse. Wo genau liegt bei dir jetzt Unterschied. Also den Filter via
Get-NTFSAccess |  ?{$_.Account.Sid -notin @('S-1-5-18','S-1-5-32-544')}  
Mitglied: 141815
141815 11.11.2019 aktualisiert um 09:45:15 Uhr
Goto Top
Zitat von @erikro:
Und um Sprachverwirrung zu vermeinden, würde ich nach *Admin* filtern.
NImm die SID, damit ist das wasserdicht!! Wenn eine Gruppe den String "Admin" inne hat fällt das direkt auf die Fresse und filtert dir Gruppen weg die du vielleicht haben willst!
Mitglied: 141815
141815 11.11.2019 aktualisiert um 09:44:27 Uhr
Goto Top
Zitat von @chkdsk:

@calender

oder tatsächlich so ja face-smile
rein aus Interesse. Wo genau liegt bei dir jetzt Unterschied. Also den Filter via
> Get-NTFSAccess |  ?{$_.Account.Sid -notin @('S-1-5-18','S-1-5-32-544')}  
> 
Weil das Sprachunabhängig ist und sowohl auf deutschen und auch englischen Systemen oder whatever Sprache läuft weil diese Well-Known SIDs auf allen Windows-Systemen einheitlich sind!
https://docs.microsoft.com/en-us/windows/win32/secauthz/well-known-sids
Mitglied: emeriks
emeriks 11.11.2019 aktualisiert um 09:45:30 Uhr
Goto Top
Zitat von @erikro:
da fehlen Klammern:
Ja, korrekt.
Und um Sprachverwirrung zu vermeinden, würde ich nach *Admin* filtern.
Kann auch schiefgehen.
Mitglied: erikro
erikro 11.11.2019 um 09:45:20 Uhr
Goto Top
Zitat von @141815:

Zitat von @erikro:
Und um Sprachverwirrung zu vermeinden, würde ich nach *Admin* filtern.
NImm die SID, damit ist das wasserdicht!! Wenn eine Gruppe den String "Admin" inne hat fällt das direkt auf die Fresse!

Da hast Du recht.
Mitglied: 141815
141815 11.11.2019 um 11:20:55 Uhr
Goto Top