Verwalten Sie NTFS-Berechtigungen mit PowerShell

Marion Paul Kenneth Mendoza 15 Februar 2024
  1. Zeigen Sie NTFS-Berechtigungen mit Get-ACL in PowerShell an
  2. Zeigen Sie NTFS-Berechtigungen in PowerShell an
  3. Abrufen von ACL für Dateien rekursiv in PowerShell
Verwalten Sie NTFS-Berechtigungen mit 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.

ACL mit erweiterten Sicherheitseinstellungen

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 Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn