Legen Sie Ordnerberechtigungen in PowerShell fest
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).
Beim Hinzufügen der Zugriffssteuerungseinträge können Sie die zulässigen oder verweigerten Zugriffsrechte definieren und Benutzer- und Gruppenberechtigungen für den Ordner festlegen. Mit der GUI des Datei-Explorers können Sie die Berechtigungen des Ordners in Windows einfach festlegen oder ändern.
In diesem Lernprogramm erfahren Sie, wie Sie Ordnerberechtigungen mit PowerShell festlegen.
Verwenden Sie das Cmdlet Set-Acl
, um Ordnerberechtigungen in PowerShell festzulegen
Die ACLs speichern die Informationen in einem Sicherheitsdepot. Die Sicherheitsbeschreibung hat zwei ACL-Typen: System-ACL (SACL) und diskretionäre ACL (DACL).
Jeder ACE in DACL enthält drei Arten von Informationen:
- Eine Sicherheitskennung (SID): Eine SID bestimmt, für wen der ACE gilt. Dies kann ein einzelner Benutzer oder eine Gruppe von Benutzern sein.
- Eine Reihe von Zugriffsrechten: Ein Zugriffsrecht ist das Recht, eine bestimmte Operation an dem Objekt auszuführen. Weitere Einzelheiten finden Sie unter Zugriffsrechte.
- Ob ein Satz von Zugriffsrechten zugelassen oder verweigert wird.
Das Set-Acl
ändert die Sicherheitsbeschreibung einer bestimmten Datei oder Ressource. Es wendet die als Wert des Parameters -AclObject
bereitgestellte Sicherheitsbeschreibung an.
Das folgende Beispiel fügt die neue ACL-Regel der bestehenden Berechtigung auf den Ordner C:\pc\computing
hinzu.
$acl = Get-Acl -Path "C:\pc\computing"
$ace = New-Object System.Security.Accesscontrol.FileSystemAccessRule ("testuser", "Read", "Allow")
$acl.AddAccessRule($ace)
Set-Acl -Path "C:\pc\computer" -AclObject $acl
Der erste Befehl holt die bestehenden ACL-Regeln von C:\pc\computing
. Der zweite Befehl erstellt eine neue FileSystemAccessRule
, die auf den Ordner angewendet wird.
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.
Sie können die ACLs des Ordners mit dem folgenden Befehl anzeigen.
Get-Acl C:\pc\computing | Format-List
Ausgang:
Path : Microsoft.PowerShell.Core\FileSystem::C:\pc\computing
Owner : DelftStack\rhntm
Group : DelftStack\rhntm
Access : DelftStack\testuser Allow Read, Synchronize
DelftStack\rhntm Allow FullControl
Audit :
Sddl : O:S-1-5-21-1715350875-4262369108-2050631134-1001G:S-1-5-21-1715350875-4262369108-2050631134-1001D:AI(A;;FR;;;S-1-5-21-1715350875-4262369108-2050631134-1003)(A;OICIID;FA;;;S-1-5-21-1715350875-4262
369108-2050631134-1001)
Wie Sie sehen, hat der Benutzer testuser
jetzt Leserechte auf den Ordner. Sie können Berechtigungen für eine große Anzahl von Ordnern und Dateien mithilfe von Skripten einfach und schnell festlegen.