Verwalten Sie NTFS-Berechtigungen mit PowerShell
-
Zeigen Sie NTFS-Berechtigungen mit
Get-ACLin PowerShell an - Zeigen Sie NTFS-Berechtigungen in PowerShell an
- Abrufen von ACL für Dateien rekursiv in PowerShell
Das Verwalten von NTFS-Berechtigungen mit einer GUI ist zeitaufwändig, insbesondere wenn Sie mit vielen Benutzern oder Gruppen arbeiten. Bestimmte PowerShell-Cmdlets können jedoch NTFS-Berechtigungen abrufen und zuweisen.
Dieser Artikel behandelt die Verwaltung von NTFS-Berechtigungen mit dem Befehl Get-ACL.
Zeigen Sie NTFS-Berechtigungen mit Get-ACL in PowerShell an
Eine Zugriffskontrollliste (oder ACL) ist eine Liste von Zugriffskontrolleinträgen (ACE), wobei jede Liste einen ACE enthält, der einen Trustee identifiziert und Zugriffsrechte festlegt.
Die Sicherheitsbeschreibung eines sicherungsfähigen Objekts kann einer von zwei Typen sein: DACL oder SACL. Eine DACL identifiziert die Benutzer und Gruppen, denen der Zugriff gewährt oder verweigert wird, während eine SACL den Zugriff steuert.
PowerShell ermöglicht es uns, NTFS-Berechtigungen mit dem Cmdlet Get-ACL schnell anzuzeigen. In den folgenden Abschnitten erfahren Sie, wie Sie das Cmdlet verwenden, um NTFS-Berechtigungen für eine Datei oder einen Ordner anzuzeigen.
Zeigen Sie NTFS-Berechtigungen in PowerShell an
Traditionell würden wir eine ACL anzeigen, indem wir mit der rechten Maustaste auf einen Ordner klicken, auf Eigenschaften klicken, die Registerkarte Sicherheit auswählen und auf die Schaltfläche Erweitert klicken. Unten sehen Sie ein Beispiel dafür, wie die GUI Berechtigungen anzeigt.

Die folgenden Beispiele in diesem Artikel weisen der Variablen $dir einen Pfad zu.
Beispielcode:
$dir = "C:\Windows\Temp"
Get-Acl -Path $dir
Ausgang:
Path Owner Access
---- ----- ------
Temp DESKTOP-7GI1260\KentMarion BUILTIN\Administrators Allow FullControl...
Wenn Sie jedoch den Befehl Get-Acl mit dem Parameter -Path ausführen, wird die Zugriffskontrollliste nur auf Ordnerebene angezeigt und ausgegeben. Was wäre, wenn wir die Zugriffskontrollliste auf Dateiebene überprüfen wollten?
Abrufen von ACL für Dateien rekursiv in PowerShell
Eine der vorteilhaften Funktionen von PowerShell ist die Verwendung der Pipeline. PowerShell-Pipelines kombinieren eine Reihe von mehreren Befehlen mit einem Pipeline-Operator (|).
Wir können die Pipeline-Methode verwenden, um die Zugriffskontrollliste auf Dateiebene abzurufen.
Wir müssen den Befehl Get-ChildItem verwenden, um dieses Szenario zu erreichen. Der Befehl Get-ChildItem holt alle Dateien und Ordner innerhalb eines Verzeichnisses.
Nehmen wir als Beispiel unsere bisherige $dir-Variable.
Beispielcode:
$dir = "C:\Windows\Temp"
Get-ChildItem $dir -Recurse | Get-Acl | Format-List | Out-File "C:\PS\output.txt"
Im obigen Beispiel ist der Switch-Parameter -Recurse wichtig, um alle Dateien zu durchlaufen und den Get-Acl-Befehl auszuführen. Indem wir das obige Snippet ausführen, können wir alle Berechtigungen der Zugriffskontrollliste aller Dateien im Ordner Temp erhalten.
Es wird auch empfohlen, den Befehl Out-File zu verwenden, um alle Details in eine Textdatei zu exportieren, insbesondere wenn Sie viele Dateien in Ihrem Zielordner haben.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn