Verwalten von ACL-Berechtigungen mit PowerShell
- NTFS-Berechtigungstypen in PowerShell
-
Verwenden Sie den Befehl
Get-Acl
, um ACL für Ordner und Dateien in PowerShell zu erhalten -
Verwenden Sie den Befehl
Set-Acl
, um die ACL für Dateien und Ordner in PowerShell festzulegen -
Verwenden Sie den Parameter
-RemoveAccessRule
, um Benutzerberechtigungen in PowerShell zu entfernen - Deaktivieren oder aktivieren Sie die Berechtigungsvererbung in PowerShell
-
Verwenden Sie die Methode
SetOwner
, um den Besitz 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 Modell der geringsten Rechte zu implementieren.
In diesem Artikel lernen Sie die verschiedenen Berechtigungstypen kennen und erfahren, wie Sie ACLs für Dateien und Ordner mit PowerShell abfragen, ändern und entfernen.
NTFS-Berechtigungstypen in PowerShell
Es gibt sowohl erweiterte als auch grundlegende NTFS-Berechtigungen. Beispielsweise können Sie jede Berechtigung auf Verweigern
oder Zulassen
setzen.
Vollzugriff
: Benutzer mit dieser Berechtigung können Dateien und Verzeichnisse sowie deren zugehörige Eigenschaften ändern, hinzufügen, verschieben und löschen. Darüber hinaus können die Benutzer mit dieser Berechtigung die Berechtigungseinstellungen für alle Unterverzeichnisse und Dateien ändern.Ändern
: Benutzer mit dieser Berechtigung können Dateien und Dateieigenschaften anzeigen und ändern, einschließlich das Hinzufügen und Löschen von Dateien zu einem Verzeichnis oder Dateieigenschaften zu einer Datei.Lesen & Ausführen
: Benutzer mit dieser Berechtigung können ausführbare Dateien, inklusive Skripte, ausführen.Lesen
: Benutzer können mit dieser Berechtigung Dateien, Dateieigenschaften und Verzeichnisse einsehen.Schreiben
: Benutzer mit dieser Berechtigung können in eine Datei schreiben und Dateien zu Verzeichnissen hinzufügen.
Hier ist die Liste der erweiterten Berechtigungen:
Ordner durchsuchen
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 durchsuchen
wird wirksam, wenn der Benutzer oder die Gruppe im Gruppenrichtlinien-Snap-In nicht über das RechtÜberprüfung der Suche umgehen
verfügt.Ordner auflisten
oderDaten lesen
: Benutzer mit dieser erweiterten Berechtigung können eine Liste von Dateien und Unterordnern innerhalb des Ordners und den Inhalt der Dateien anzeigen.Attribute lesen
: Benutzer mit dieser erweiterten Berechtigung können die Attribute eines Ordners oder einer Datei anzeigen, z. B. ob sie 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 anzeigen, wie z. B. Berechtigungen und Erstellungs- und Änderungszeiten.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
erlaubt Benutzern, Dateien innerhalb des Ordners mit dieser erweiterten Berechtigung 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
ermöglicht es Benutzern, mit dieser erweiterten Berechtigung Ordner innerhalb eines Ordners 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 keine bestehenden Daten ä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 die BerechtigungLöschen
für einen Ordner oder eine Datei haben, können sie dennoch ein Objekt löschen, wenn sie die BerechtigungUnterordner und Dateien löschen
für den übergeordneten Ordner haben.Leseberechtigungen
: Benutzer mit dieser erweiterten Berechtigung können die Berechtigungen eines Ordners oder einer Datei lesen, wie z. B.Vollzugriff
,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 seine Berechtigungen jederzeit ändern, unabhängig von bestehenden Berechtigungen, die die Datei oder den Ordner schützen.Synchronisieren
: Benutzer mit dieser erweiterten Berechtigung können das Objekt zum Synchronisieren 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 finden, indem wir das folgende PowerShell-Skript unten 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 geerbte Berechtigungen vom übergeordneten Ordner geerbt werden.
Die Hierarchie für Berechtigungen ist wie folgt:
- Explizites Verweigern
- Explizites Zulassen
- Vererbte Verweigerung
- Vererbte Erlaubnis
Verwenden Sie den Befehl Get-Acl
, um ACL für Ordner und Dateien in PowerShell zu erhalten
Der erste PowerShell-Befehl zum Verwalten von Datei- und Ordnerberechtigungen ist Get-Acl
; es listet alle Objektberechtigungen auf.
Get-Acl \\fs1\shared\hr | fl
Ein Benutzer muss sowohl den Ziel- als auch den Quellordner besitzen, um Berechtigungen kopieren zu können.
Get-Acl \\fs1\shared\hr | Set-Acl \\fs1\shared\hr
Verwenden Sie den Befehl Set-Acl
, um die ACL für Dateien und Ordner in PowerShell festzulegen
Der PowerShell-Befehl Set-Acl
wird verwendet, um die Sicherheitsbeschreibung eines bestimmten Elements zu ändern, z. B. einer Datei, eines Ordners oder eines Registrierungsschlüssels. Mit anderen Worten, es wird verwendet, um Datei- oder Ordnerberechtigungen 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 Sie die Berechtigungsvererbung in PowerShell
Um eine Vererbung zu verwalten, können wir die Methode SetAccessRuleProtection
verwenden. Die Methode hat zwei Parameter:
- Der erste Parameter ist dafür verantwortlich, die Vererbung vom übergeordneten Ordner zu blockieren. Es gibt boolesche Zustände zurück:
$true
und$false
. - Der zweite Parameter wird verwendet, ob die aktuellen geerbten Berechtigungen entfernt oder beibehalten werden. Es gibt auch 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 rückgängig machen 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 den Besitz 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