Legen Sie Ordnerberechtigungen in PowerShell fest

Rohan Timalsina 16 Februar 2024
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:

  1. Eine Sicherheitskennung (SID): Eine SID bestimmt, für wen der ACE gilt. Dies kann ein einzelner Benutzer oder eine Gruppe von Benutzern sein.
  2. Eine Reihe von Zugriffsrechten: Ein Zugriffsrecht ist das Recht, eine bestimmte Operation an dem Objekt auszuführen. Weitere Einzelheiten finden Sie unter Zugriffsrechte.
  3. 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.

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