Verwalten Sie NTFS-Berechtigungen mit PowerShell
-
Zeigen Sie NTFS-Berechtigungen mit
Get-ACL
in 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