Verwalten von ACL-Berechtigungen mit PowerShell

  1. NTFS-Berechtigungstypen in PowerShell
  2. Verwenden Sie den Befehl Get-Acl, um ACL für Ordner und Dateien in PowerShell zu erhalten
  3. Verwenden Sie den Befehl Set-Acl, um die ACL für Dateien und Ordner in PowerShell festzulegen
  4. Verwenden Sie den Parameter -RemoveAccessRule, um Benutzerberechtigungen in PowerShell zu entfernen
  5. Deaktivieren oder aktivieren Sie die Berechtigungsvererbung in PowerShell
  6. Verwenden Sie die Methode SetOwner, um den Besitz von Dateien und Ordnern in PowerShell zu ändern
Verwalten von ACL-Berechtigungen mit PowerShell

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 oder Datei 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 Berechtigung Ordner 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 oder Daten 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 oder Daten schreiben: Die Berechtigung Dateien erstellen erlaubt Benutzern, Dateien innerhalb des Ordners mit dieser erweiterten Berechtigung zu erstellen. Diese Berechtigung gilt nur für Ordner. Die Berechtigung Daten 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 oder Daten anhängen: Die Berechtigung Ordner erstellen ermöglicht es Benutzern, mit dieser erweiterten Berechtigung Ordner innerhalb eines Ordners zu erstellen. Diese Berechtigung gilt nur für Ordner. Die Berechtigung Daten 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 Berechtigung Löschen für einen Ordner oder eine Datei haben, können sie dennoch ein Objekt löschen, wenn sie die Berechtigung Unterordner 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 und Schreiben.
  • 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 Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn