NTFS-Rechte auditieren: Get-Acl und icacls im Vergleich
âKönnen Sie uns bis Freitag eine Liste aller Berechtigungen auf dem Projektlaufwerk liefern?" Diese Anfrage â vom Auditor, vom Datenschutzbeauftragten oder aus der eigenen GeschĂ€ftsleitung â trifft viele Admin-Teams unvorbereitet. Der Windows Explorer zeigt Rechte nur Ordner fĂŒr Ordner, eine konsolidierte Ăbersicht ĂŒber hunderte Freigaben und verschachtelte AD-Gruppen fehlt. Wer NTFS-Berechtigungen regelmĂ€Ăig auditieren muss, kommt an PowerShell nicht vorbei. Die Frage ist nicht ob, sondern wie man Get-Acl und icacls sinnvoll kombiniert, ohne sich in unvollstĂ€ndigen oder falsch interpretierten Reports zu verlieren.
Das Problem: Sichtbare Rechte sind nicht die effektiven Rechte
Die Eigenschaften-Dialoge in Windows zeigen die Access Control List (ACL) eines einzelnen Objekts. Was sie nicht liefern: einen Ăberblick ĂŒber mehrere hundert Unterordner gleichzeitig, eine Trennung zwischen vererbten und explizit gesetzten EintrĂ€gen und schon gar keine Auflösung verschachtelter Gruppenmitgliedschaften. Genau diese drei Punkte sind fĂŒr ein Audit relevant â und genau hier scheitert die grafische OberflĂ€che.
PowerShell schlieĂt die erste LĂŒcke: Das Cmdlet Get-Acl liefert das Security-Descriptor-Objekt einer Ressource inklusive der kompletten DACL (Discretionary Access Control List), also aller EintrĂ€ge, wer welchen Zugriff auf eine Datei oder einen Ordner hat1. Kombiniert mit Get-ChildItem -Recurse lĂ€sst sich daraus ein rekursiver Bericht ĂŒber einen ganzen Freigabebaum erzeugen.
Ursache: Gewachsene ACLs und verschachtelte Gruppen
In der Praxis entstehen unĂŒbersichtliche Berechtigungsstrukturen selten durch einen einzelnen Fehler, sondern durch Jahre gewachsener Ad-hoc-Ănderungen: direkte Benutzerrechte statt Gruppenrechte, deaktivierte Vererbung auf einzelnen Unterordnern, âtemporĂ€re" Freigaben fĂŒr ausgeschiedene Projektmitarbeiter. Das BSI beschreibt im Baustein ORP.4 âIdentitĂ€ts- und Berechtigungsmanagement" genau dieses Risiko: Ohne geregelte Prozesse fĂŒr Vergabe, Ănderung und Entzug von Rechten sammeln sich ĂŒber die Zeit Berechtigungen an, die niemand mehr zuordnen kann.
Ein zweiter Faktor ist die AD-Gruppenverschachtelung selbst. Eine Datei kann formal nur zwei oder drei Gruppen in der ACL stehen haben â de facto aber Hunderten von Benutzern zugĂ€nglich sein, wenn diese Gruppen wiederum verschachtelt sind. Get-Acl löst diese Verschachtelung nicht auf; es zeigt nur die direkten ACL-EintrĂ€ge, nicht die daraus resultierenden effektiven Rechte einzelner Personen. FĂŒr eine vollstĂ€ndige Auflösung braucht es zusĂ€tzlich AD-Gruppenmitgliedschaften (Get-ADGroupMember -Recursive) oder spezialisierte Tools.
Lösung: Get-Acl und icacls gezielt kombinieren
Get-Acl und icacls lösen unterschiedliche Teilprobleme. Get-Acl ist ein natives PowerShell-Objekt und eignet sich hervorragend fĂŒr strukturierte Reports und CSV-Exporte. icacls ist ein Kommandozeilentool, das laut Microsoft-Dokumentation DACLs anzeigt, Ă€ndert, sichert und wiederherstellt2 â und eignet sich besonders fĂŒr StichprobenprĂŒfung, Backup vor Ănderungen und das Auffinden aller Objekte mit einer bestimmten SID (/findsid).
Schritt 1: Rekursiver ACL-Export als Audit-Grundlage
$Root = "D:\Freigaben\Projekte"
Get-ChildItem -Path $Root -Recurse -Directory |
ForEach-Object {
$acl = Get-Acl -Path $_.FullName
foreach ($entry in $acl.Access) {
[PSCustomObject]@{
Pfad = $_.FullName
IdentitÀt = $entry.IdentityReference
Recht = $entry.FileSystemRights
Typ = $entry.AccessControlType
Vererbt = $entry.IsInherited
VererbungsFlags = $entry.InheritanceFlags
}
}
} | Export-Csv -Path "C:\Audit\ntfs-rechte.csv" -NoTypeInformation -Encoding UTF8
Schritt 2: Explizite (nicht vererbte) Rechte isolieren
FĂŒr ein Audit sind vor allem die EintrĂ€ge relevant, die von der Standardvererbung abweichen â sie markieren SonderfĂ€lle, die dokumentiert oder bereinigt werden sollten:
Import-Csv "C:\Audit\ntfs-rechte.csv" |
Where-Object { $_.Vererbt -eq "False" } |
Sort-Object Pfad |
Export-Csv "C:\Audit\ntfs-rechte-explizit.csv" -NoTypeInformation -Encoding UTF8
Schritt 3: Stichprobenverifikation mit icacls
FĂŒr EinzelprĂŒfungen und als Backup vor Ănderungen ergĂ€nzt icacls den PowerShell-Export sinnvoll:
REM Rechte eines Ordners inkl. Unterordner sichern (vor Ănderungen)
icacls "D:\Freigaben\Projekte" /save D:\Audit\projekte.aclbak /T /C
REM Alle Objekte finden, in denen eine bestimmte SID/Gruppe explizit vorkommt
icacls "D:\Freigaben\Projekte" /findsid *S-1-5-21-XXXXXXXXXX-1234 /T
Der Parameter /save sichert die DACLs in eine Datei, die sich spĂ€ter mit /restore wiederherstellen lĂ€sst â praktisch als Rollback-Absicherung vor gröĂeren Bereinigungen. /findsid beantwortet gezielt die Auditor-Frage âWo genau hat diese Gruppe noch Zugriff?", ohne den kompletten Baum manuell zu durchsuchen.
Praxis: Checkliste fĂŒrs nĂ€chste Fileserver-Audit
- Rekursiven ACL-Export fĂŒr alle Freigaben planen (nachts, auĂerhalb der Kernarbeitszeit bei groĂen Volumina)
- Explizite (nicht vererbte) EintrĂ€ge separat auswerten und einzeln begrĂŒnden
- Direkte Benutzerrechte statt Gruppenrechte identifizieren und in AGDLP-Struktur ĂŒberfĂŒhren
- Verschachtelte Gruppen mit
Get-ADGroupMember -Recursiveauflösen, bevor âeffektive Rechte" kommuniziert werden - Vor jeder Bereinigung ein
icacls /save-Backup der betroffenen Pfade anlegen - Reports revisionssicher ablegen (Datum, Verantwortlicher, Freigabe-Scope) als Nachweis fĂŒr Rezertifizierung
- Wiederholung terminieren â ein einmaliger Export ersetzt keinen laufenden Prozess
Einordnung: Was das fĂŒr Compliance-Nachweise bedeutet
Ein PowerShell-Report ersetzt kein vollstĂ€ndiges Berechtigungskonzept, liefert aber die Rohdaten, die ein Nachweis braucht. ISO/IEC 27002:2022 verlangt in Control 8.3 âInformation Access Restriction", dass Zugriff auf Informationen gemÀà einer themenspezifischen Zugriffsrichtlinie eingeschrĂ€nkt wird â ein regelmĂ€Ăiger, dokumentierter ACL-Export ist ein naheliegender Beleg dafĂŒr, dass diese EinschrĂ€nkung tatsĂ€chlich gelebt wird und nicht nur auf dem Papier existiert. NIST SP 800-53 verlangt in AC-2 vergleichbar wiederkehrende KontoprĂŒfungen, deren Frequenz sich am Risiko der Systeme orientiert â bei privilegierten Zugriffen typischerweise quartalsweise. FĂŒr beide Rahmenwerke gilt: Ohne exportierbare, versionierte Berichte bleibt jede Aussage zur Rechtevergabe unbelegte Behauptung.
Fazit
Get-Acl und icacls sind keine Konkurrenten, sondern ergĂ€nzen sich: Get-Acl liefert strukturierte, auswertbare Massendaten fĂŒr laufende Reports und CSV-Exporte, icacls liefert gezielte EinzelprĂŒfung, SID-Suche und ein einfaches Backup-/Restore-Verfahren fĂŒr DACLs. Wer beide Werkzeuge in einen wiederkehrenden Prozess einbettet â inklusive Filterung auf explizite Rechte und Auflösung verschachtelter Gruppen â hat die technische Grundlage fĂŒr Rezertifizierung und Auditnachweis geschaffen. Die eigentliche Arbeit beginnt danach: die gefundenen Abweichungen zu bewerten und zu bereinigen.
Ein Beitrag pro Woche â ins Postfach
Kompaktes Praxiswissen zu Berechtigungs- und Zugriffsmanagement.
Quellen: Microsoft Learn â Get-Acl (Microsoft.PowerShell.Security)1; Microsoft Learn â icacls-Befehlsreferenz2; BSI IT-Grundschutz-Kompendium, Baustein ORP.4 âIdentitĂ€ts- und Berechtigungsmanagement"; ISO/IEC 27002:2022, Control 8.3 âInformation Access Restriction"; NIST SP 800-53 Rev. 5, Control AC-2 âAccount Management".
Hinweis: KI-gestĂŒtzt erstellt, redaktionell geprĂŒft.