So verwalten Sie ACL-Berechtigungen mit PowerShell
- NTFS-Berechtigungsarten in PowerShell
-
Verwenden Sie den Befehl
Get-Acl
, um ACLs für Ordner und Dateien in PowerShell abzurufen -
Verwenden Sie den Befehl
Set-Acl
, um ACLs für Dateien und Ordner in PowerShell festzulegen -
Verwenden Sie den Parameter
-RemoveAccessRule
, um Benutzerberechtigungen in PowerShell zu entfernen - Deaktivieren oder Aktivieren der Berechtigungsvererbung in PowerShell
-
Verwenden Sie die Methode
SetOwner
, um die Eigentümerschaft von Dateien und Ordnern in PowerShell zu ändern

Systemadministratoren konfigurieren NTFS-Zugriffskontrolllisten ACLs
, indem sie Zugriffskontrolleinträge ACEs
auf NTFS-Dateiservern hinzufügen, um ein Prinzip der geringsten Berechtigung umzusetzen.
In diesem Artikel werden die verschiedenen Berechtigungsarten sowie das Abfragen, Modifizieren und Entfernen von ACLs auf Dateien und Ordnern mit PowerShell behandelt.
NTFS-Berechtigungsarten in PowerShell
Es gibt sowohl erweiterte als auch grundlegende NTFS-Berechtigungen. Zum Beispiel kann jede Berechtigung auf Verweigern
oder Erlauben
gesetzt werden.
Vollzugriff
: Benutzer mit dieser Berechtigung können Dateien und Verzeichnisse modifizieren, hinzufügen, verschieben und löschen, sowie deren zugehörige Eigenschaften. Darüber hinaus können die Benutzer mit dieser Berechtigung die Berechtigungseinstellungen für alle Unterverzeichnisse und Dateien ändern.Modifizieren
: Benutzer mit dieser Berechtigung können Dateien und Dateieigenschaften anzeigen und ändern, einschließlich des Hinzufügens und Löschens von Dateien in einem Verzeichnis oder Dateieigenschaften in einer Datei.Lesen & Ausführen
: Benutzer mit dieser Berechtigung können ausführbare Dateien, einschließlich Skripten, ausführen.Lesen
: Benutzer können mit dieser Berechtigung Dateien, Dateieigenschaften und Verzeichnisse anzeigen.Schreiben
: Benutzer mit dieser Berechtigung können in eine Datei schreiben und Dateien in Verzeichnisse hinzufügen.
Hier ist die Liste der erweiterten Berechtigungen:
Ordner durchqueren
oderDatei ausführen
: Benutzer mit dieser erweiterten Berechtigung können durch Ordner navigieren, um andere Ordner oder Dateien zu erreichen, auch wenn sie keine Berechtigungen für diese Dateien oder Ordner haben. Benutzer mit dieser erweiterten Berechtigung können auch ausführbare Dateien ausführen. Die BerechtigungOrdner durchqueren
tritt in Kraft, wenn der Benutzer oder die Gruppe das RechtUmgehung der Durchquerüberprüfung
im Gruppenrichtlinien-Snap-In nicht hat.Ordner auflisten
oderDaten lesen
: Benutzer mit dieser erweiterten Berechtigung können eine Liste von Dateien und Unterordnern im Ordner sowie den Inhalt der Dateien anzeigen.Attribute lesen
: Benutzer mit dieser erweiterten Berechtigung können die Attribute eines Ordners oder einer Datei anzeigen, wie zum Beispiel, ob er versteckt oder schreibgeschützt ist.Attribute schreiben
: Benutzer mit dieser erweiterten Berechtigung können die Attribute einer Datei oder eines Ordners ändern.Erweiterte Attribute lesen
: Benutzer mit dieser erweiterten Berechtigung können die erweiterten Attribute eines Ordners oder einer Datei, wie Berechtigungen sowie Erstellungs- und Änderungszeiten, anzeigen.Erweiterte Attribute schreiben
: Benutzer mit dieser erweiterten Berechtigung können die erweiterten Attribute eines Ordners oder einer Datei ändern.Dateien erstellen
oderDaten schreiben
: Die BerechtigungDateien erstellen
ermöglicht es Benutzern, innerhalb des Ordners mit dieser erweiterten Berechtigung Dateien zu erstellen.Diese Berechtigung gilt nur für Ordner.
Die BerechtigungDaten schreiben
ermöglicht es Benutzern mit dieser erweiterten Berechtigung, die Datei zu ändern und vorhandene Inhalte zu überschreiben. Diese Berechtigung gilt nur für Dateien.Ordner erstellen
oderDaten anhängen
: Die BerechtigungOrdner erstellen
erlaubt es Benutzern, innerhalb eines Ordners mit dieser erweiterten Berechtigung Ordner zu erstellen.Diese Berechtigung gilt nur für Ordner.
Die BerechtigungDaten anhängen
ermöglicht es Benutzern mit dieser erweiterten Berechtigung, Änderungen am Ende der Datei vorzunehmen, aber sie können vorhandene Daten nicht ändern, überschreiben oder löschen. Diese Berechtigung gilt nur für Dateien.Löschen
: Benutzer mit dieser erweiterten Berechtigung können den Ordner oder die Datei löschen. Wenn Benutzer nicht über die BerechtigungLöschen
für einen Ordner oder eine Datei verfügen, können sie ein Objekt dennoch löschen, wenn sie die BerechtigungUnterordner und Dateien löschen
für den übergeordneten Ordner haben.Berechtigungen lesen
: Benutzer mit dieser erweiterten Berechtigung können die Berechtigungen eines Ordners oder einer Datei lesen, wieVollzugriff
,Lesen
undSchreiben
.Berechtigungen ändern
: Benutzer mit dieser erweiterten Berechtigung können die Berechtigungen einer Datei oder eines Ordners ändern.Eigentum übernehmen
: Benutzer mit dieser erweiterten Berechtigung können das Eigentum an der Datei oder dem Ordner übernehmen. Der Eigentümer der Datei oder des Ordners kann immer die Berechtigungen ändern, unabhängig von bestehenden Berechtigungen, die die Datei oder den Ordner schützen.Synchronisieren
: Benutzer mit dieser erweiterten Berechtigung können das Objekt zur Synchronisierung verwenden. Diese Berechtigung ermöglicht es einem Thread, zu warten, bis sich das Objekt im signalisierten Zustand befindet. Diese Berechtigung wird im ACL-Editor nicht angezeigt.
Wir können alle Informationen zu diesen Benutzerberechtigungen erhalten, indem wir das folgende PowerShell-Skript ausführen:
[System.Enum]::GetNames([System.Security.AccessControl.FileSystemRights])
Die NTFS-Berechtigungen können entweder explizit oder vererbt sein. Explizite Berechtigungen werden individuell konfiguriert, während vererbte Berechtigungen von dem übergeordneten Ordner geerbt werden.
Die Hierarchie für Berechtigungen ist wie folgt:
- Explizit verweigern
- Explizit erlauben
- Vererbt verweigern
- Vererbt erlauben
Verwenden Sie den Befehl Get-Acl
, um ACLs für Ordner und Dateien in PowerShell abzurufen
Der erste PowerShell-Befehl zum Verwalten von Datei- und Ordnersicherheitsberechtigungen ist Get-Acl
; er listet alle Objektberechtigungen auf.
Get-Acl \\fs1\shared\hr | fl
Ein Benutzer muss sowohl die Ziel- als auch die Quellordner besitzen, um Berechtigungen zu kopieren.
Get-Acl \\fs1\shared\hr | Set-Acl \\fs1\shared\hr
Verwenden Sie den Befehl Set-Acl
, um ACLs für Dateien und Ordner in PowerShell festzulegen
Der PowerShell-Befehl Set-Acl
wird verwendet, um den Sicherheitsdescriptor eines bestimmten Elements, wie einer Datei, einem Ordner oder einem Registrierungsschlüssel, zu ändern; mit anderen Worten, er wird verwendet, um die Datei- oder Ordnersicherheitsberechtigungen zu ändern.
$acl = Get-Acl \\fs1\shared\hr
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("ENTERPRISE\User01", "FullControl", "Allow")
$acl.SetAccessRule($AccessRule)
$acl | Set-Acl \\fs1\shared\hr
Verwenden Sie den Parameter -RemoveAccessRule
, um Benutzerberechtigungen in PowerShell zu entfernen
$acl = Get-Acl \\fs1\shared\hr
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("ENTERPRISE\User01", "FullControl", "Allow")
$acl.RemoveAccessRule($AccessRule)
$acl | Set-Acl \\fs1\shared\hr
Deaktivieren oder Aktivieren der Berechtigungsvererbung in PowerShell
Um eine Vererbung zu verwalten, können wir die Methode SetAccessRuleProtection
verwenden. Die Methode hat zwei Parameter:
- Der erste Parameter ist verantwortlich für das Blockieren der Vererbung vom übergeordneten Ordner. Er gibt boolesche Zustände zurück:
$true
und$false
. - Der zweite Parameter wird verwendet, um festzustellen, ob die aktuellen vererbten Berechtigungen entfernt oder beibehalten werden. Er gibt ebenfalls boolesche Zustände zurück:
$true
und$false
.
$acl = Get-Acl \\fs1\shared\hr
$acl.SetAccessRuleProtection($true, $false)
$acl | Set-Acl \\fs1\shared\hr
Lassen Sie uns diese Änderung zurücksetzen und die Vererbung für den Ordner erneut aktivieren:
$acl = Get-Acl \\fs1\shared\hr
$acl.SetAccessRuleProtection($false, $true)
$acl | Set-Acl \\fs1\shared\hr
Verwenden Sie die Methode SetOwner
, um die Eigentümerschaft von Dateien und Ordnern in PowerShell zu ändern
Wenn wir einen Eigentümer für einen Ordner festlegen möchten, müssen Sie die Methode SetOwner
ausführen.
$acl = Get-Acl \\fs1\shared\hr
$object = New-Object System.Security.Principal.Ntaccount("ENTERPRISE\User01")
$acl.SetOwner($object)
$acl | Set-Acl \\fs1\shared\hr
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn