Berechtigungen für Ordner mit PowerShell rekursiv festlegen

Rohan Timalsina 21 Juni 2023
  1. Erhalten Sie Berechtigungen für Ordner rekursiv mit PowerShell
  2. Berechtigungen für Ordner rekursiv mit PowerShell festlegen
Berechtigungen für Ordner mit PowerShell rekursiv festlegen

Eine ACL (Access Control List) repräsentiert die Berechtigungen und Benutzergruppen von Benutzern für den Zugriff auf eine Datei oder Ressource. Es ist eine geordnete Liste von Zugriffssteuerungseinträgen (ACEs).

Jeder ACE in einer ACL definiert die erlaubten, verweigerten oder überwachten Zugriffsrechte. Die Sicherheitsbeschreibung für ein Objekt kann zwei Arten von ACLs haben: DACL und SACL.

Wenn Sie unter Windows mit NTFS-Berechtigungen arbeiten, müssen Sie möglicherweise die Berechtigungen für Ordner rekursiv ändern. Eine GUI wäre zeitaufwändiger und komplexer als ein PowerShell-Skript.

In diesem Tutorial erfahren Sie, wie Sie mit PowerShell rekursiv Berechtigungen für Ordner festlegen.

Erhalten Sie Berechtigungen für Ordner rekursiv mit PowerShell

Für die Verwaltung von ACL-Berechtigungen in PowerShell gibt es hauptsächlich zwei Cmdlets: Get-Acl und Set-Acl.

Das Cmdlet Get-Acl ruft die Sicherheitsbeschreibung ab, die die Zugriffskontrolllisten (ACLs) einer Datei oder Ressource enthält.

Das Get-Acl holt die Sicherheitsbeschreibung des C:\New-Verzeichnisses.

Get-Acl C:\New

Ausgang:

Directory: C:\
Path Owner          Access
---- -----          ------
New  DelftStack\rhntm BUILTIN\Administrators Allow  FullControl...

Das Cmdlet Get-Acl gibt nicht alle Berechtigungen für Verzeichnisse und Unterverzeichnisse zurück. Sie müssen das Cmdlet Get-ChildItem mit dem Parameter -Recurse verwenden, um Berechtigungen für Ordner rekursiv zu erhalten.

Get-ChildItem "C:\pc" -Recurse | Get-ACL

Berechtigungen für Ordner rekursiv mit PowerShell festlegen

Das Set-Acl ändert die Sicherheitsbeschreibung einer Datei oder Ressource. Es wendet die als Wert des Parameters -AclObject bereitgestellte Sicherheitsbeschreibung an.

Die folgenden Befehle kopieren die Werte aus der Sicherheitsbeschreibung des Verzeichnisses C:\Neu in die Sicherheitsbeschreibung des Verzeichnisses C:\pc.

$new = Get-Acl -Path "C:\New"
Set-Acl -Path "C:\pc" -AclObject $new

Der erste Befehl ruft die Sicherheitsbeschreibung des Verzeichnisses C:\New ab und speichert sie in der Variablen $new. Im zweiten Befehl ändert Set-Acl die Werte in der ACL des Verzeichnisses C:\New auf die Werte in $new.

Das folgende Skript fügt die neue ACL-Regel rekursiv zu den vorhandenen Berechtigungen für den Ordner hinzu.

$acl = Get-Acl -Path "C:\pc"
$ace = New-Object System.Security.Accesscontrol.FileSystemAccessRule ("testuser", "Read", "Allow")
$acl.AddAccessRule($ace)
Set-Acl -Path "C:\pc" -AclObject $acl

Der erste Befehl ruft die vorhandenen ACL-Regeln ab. Der zweite Befehl erstellt eine neue anzuwendende FileSystemAccessRule.

Der dritte Befehl fügt die neue ACL-Regel zu den vorhandenen Berechtigungen für den Ordner hinzu. Der vierte Befehl verwendet Set-Acl, um die neue ACL auf den Ordner anzuwenden.

Mit dem folgenden Befehl können Sie die Berechtigungen aller Benutzer anzeigen.

(Get-ACL -Path "C:\pc").Access | Format-Table IdentityReference,FileSystemRights,AccessControlType

Ausgang:

IdentityReference  FileSystemRights AccessControlType
-----------------  ---------------- -----------------
DelftStack\rhntm          FullControl             Allow
DelftStack\testuser Read, Synchronize             Allow

Systemadministratoren konfigurieren NTFS-Berechtigungen für viele Ordner und Dateien mithilfe von Skripts, um den Vorgang zu beschleunigen und zu vereinfachen. Wir hoffen, dass Ihnen dieser Artikel dabei geholfen hat, zu verstehen, wie Sie mithilfe von PowerShell Berechtigungen für Ordner rekursiv festlegen.

Für den detaillierten NTFS-Berechtigungstyp in PowerShell lesen Sie diesen Beitrag.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Verwandter Artikel - PowerShell Folder