So verwalten Sie ACL-Berechtigungen mit PowerShell

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

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 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 durchqueren tritt in Kraft, wenn der Benutzer oder die Gruppe das Recht Umgehung der Durchquerüberprüfung im Gruppenrichtlinien-Snap-In nicht hat.
  • Ordner auflisten oder Daten 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 oder Daten schreiben: Die Berechtigung Dateien erstellen ermöglicht es Benutzern, innerhalb des Ordners mit dieser erweiterten Berechtigung Dateien 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 erlaubt es Benutzern, innerhalb eines Ordners mit dieser erweiterten Berechtigung Ordner 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 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 Berechtigung Löschen für einen Ordner oder eine Datei verfügen, können sie ein Objekt dennoch löschen, wenn sie die Berechtigung Unterordner 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, wie 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 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
Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
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