powershell:system:acls
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| powershell:system:acls [2020/07/30 10:09] – henning | powershell:system:acls [2024/05/27 08:36] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== ACLs ====== | + | ====== |
| ===== NTFS-Berechtigungen ===== | ===== NTFS-Berechtigungen ===== | ||
| Bei NTFS-Berechtigungen gibt einfache und erweiterte Berechtigungen. Man kann jede Berechtigung auf " | Bei NTFS-Berechtigungen gibt einfache und erweiterte Berechtigungen. Man kann jede Berechtigung auf " | ||
| + | Der folgende Powershell-Befehl listet alle Berechtigungen auf: | ||
| + | <code powershell> | ||
| + | |||
| + | ==== Einfache Berechtigungen ==== | ||
| ^ Berechtigung ^ Auswirkung ^ | ^ Berechtigung ^ Auswirkung ^ | ||
| - | ^Einfache Berechtigungen^^ | ||
| |Full Controll | Objekte können hinzugefügt, | |Full Controll | Objekte können hinzugefügt, | ||
| |Modify |Objekte können hinzugefügt, | |Modify |Objekte können hinzugefügt, | ||
| Zeile 10: | Zeile 13: | ||
| |Read | Objekte und ihre Einstellungen sind sichtbar | | |Read | Objekte und ihre Einstellungen sind sichtbar | | ||
| |Write | Objekte können angelegt und geändert werden. | | |Write | Objekte können angelegt und geändert werden. | | ||
| - | ^Erweiterte Berechtigungen^^ | + | ==== Erweiterte Berechtigungen |
| + | ^ Berechtigung | ||
| | Traverse Folder/ | | Traverse Folder/ | ||
| |List Folder / Read Data| Der Verzeichnisinhalt ist sichtbar und Dateiinhalte können gelesen werden| | |List Folder / Read Data| Der Verzeichnisinhalt ist sichtbar und Dateiinhalte können gelesen werden| | ||
| Zeile 25: | Zeile 29: | ||
| |Synchronize|Das Objekt kann synchronisiert werden. Dadurch wird ein Prozess initialisiert, | |Synchronize|Das Objekt kann synchronisiert werden. Dadurch wird ein Prozess initialisiert, | ||
| + | ===== Vererbung ===== | ||
| + | NTFS-Berechtigungen können entweder an dem Objekt selbst gesetzt (explicit) oder vom übergeordneten Objekt geerbt (inherited) worden sein.\\ | ||
| + | Die Hirarchie der gesetzten Berechtigungen ist dabei wie folgt: | ||
| + | * Explizit am Objekt verboten | ||
| + | * Explizit am Objekt erlaubt | ||
| + | * geerbtes verboten | ||
| + | * geerbtes erlaubt | ||
| + | |||
| + | Ein explizites " | ||
| + | |||
| + | ====== ACLs ====== | ||
| + | ===== ACLs lesen ===== | ||
| + | Das erste Powershell-Commandlet zur verwaltung von Berechtigungen ist '' | ||
| + | <code powershell> | ||
| + | {{: | ||
| + | |||
| + | Um alle Berechtigungen innerhalb einer Verzeichnisstruktur in eine CSV-Datei zu exportieren, | ||
| + | <file powershell Export-PermissionsToCsv.ps1> | ||
| + | # Zu untersuchender Pfad | ||
| + | $path = " | ||
| + | |||
| + | # Pfad zur CSV-Datei | ||
| + | $reportpath =" | ||
| + | |||
| + | #Nach Verzeichnissen unterhalb des angegebenen suchen und für alle Fundstellen acl(permissions) auslesen | ||
| + | Get-ChildItem -Recurse $path | Where-Object { $_.PsIsContainer } ` | ||
| + | | ForEach-Object { $path1 = $_.fullname; | ||
| + | | ForEach-Object { $_.access | Add-Member -MemberType NoteProperty ' | ||
| + | | Export-Csv $reportpath | ||
| + | </ | ||
| + | |||
| + | ===== ACLs übertragen ===== | ||
| + | Besitz an Quelle und Ziel ist Voraussetzung. | ||
| + | <code powershell> | ||
| + | |||
| + | ===== NTFS-Berechtigungen setzen ===== | ||
| + | Das Powershell-Commandlet '' | ||
| + | :!: **__Die Berechtigung wird nicht hinzugefügt, | ||
| + | <code powershell> | ||
| + | $acl = Get-Acl \\path\to\target | ||
| + | $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule(" | ||
| + | $acl.SetAccessRule($AccessRule) | ||
| + | $acl | Set-Acl \\path\to\target | ||
| + | </ | ||
| + | |||
| + | Andere Berechtigungen können der Tabelle entnommen werden: | ||
| + | ^Berechtigung^Bezeichnung in Powershell^ | ||
| + | |FullControl|FullControl| | ||
| + | |Traverse Folder / Execute File| ExecuteFile| | ||
| + | |List Folder / Read Data| ReadData| | ||
| + | |Read Attributes|ReadAttributes| | ||
| + | |Read Extended Attributes|ReadExtendedAttributes| | ||
| + | |Create Files / Change Data|CreateFiles| | ||
| + | |Create Folders / Append Data| AppendData| | ||
| + | |Write Attributes|Write Attributes| | ||
| + | |Write Extended Attributes|WriteExtendedAttributes| | ||
| + | |Delete Subfolders and Files|DeleteSubfoldersandFiles| | ||
| + | |Delete|Delete| | ||
| + | |Read Permissions|ReadPermissions| | ||
| + | |||
| + | Darüber können die essentiellen Berechtigungen auch über Berechtigungs-Sätze vergeben werden: | ||
| + | ^Berechtigungs-Satz^umfasst folgende Berechtigungen^Bezeichnung in Powershell^ | ||
| + | |Read|List Folders / Read Data|Read| | ||
| + | |:::|Read Atributes|::: | ||
| + | |:::|Read Extended Attributes|::: | ||
| + | |:::|Read Permissions|::: | ||
| + | |Write|Create Files / Write data|Write| | ||
| + | |:::|Create Folders / Append Data|:::| | ||
| + | |:::|Write Attributes|::: | ||
| + | |:::|Write Extended Attributes|::: | ||
| + | |Read and Execute|Traverse Folder / Execute File|ReadAndExecute| | ||
| + | |:::|List Folders / Read Data|:::| | ||
| + | |:::|Read Attributes|::: | ||
| + | |:::|Read Extended Attributes|::: | ||
| + | |:::|Read Permissions|::: | ||
| + | |Modify|Traverse Folder / Execute File|Modify| | ||
| + | |:::|List Folders / Read Data|:::| | ||
| + | |:::|Read Attributes|::: | ||
| + | |:::|Read Extended Attributes|::: | ||
| + | |:::|Read Permissions|::: | ||
| + | |:::|Create Files / Write data|:::| | ||
| + | |:::|Create Folders / Append Data|:::| | ||
| + | |:::|Write Attributes|::: | ||
| + | |:::|Write Extended Attributes|::: | ||
| + | |::: | ||
| + | |||
| + | ===== Berechtigungen entfernen ===== | ||
| + | Nur die Berechtigung "Allow FullControl" | ||
| + | <code powershell> | ||
| + | $acl = Get-Acl \\path\to\target | ||
| + | $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule(" | ||
| + | $acl.RemoveAccessRule($AccessRule) | ||
| + | $acl | Set-Acl \\path\to\target | ||
| + | </ | ||
| + | |||
| + | Wenn der Benutzer noch die Berechtigung "Deny FullControl" | ||
| + | |||
| + | :!: " | ||
| + | :!: Der Befehl funktioniert nur bei direkt am Objekt gesetzten und nicht bei geerbten Berechtigungen.\\ | ||
| + | |||
| + | <code powershell> | ||
| + | $acl = Get-Acl \\path\to\target | ||
| + | $usersid = New-Object System.Security.Principal.Ntaccount (" | ||
| + | $acl.PurgeAccessRules($usersid) | ||
| + | $acl | Set-Acl \\path\to\target | ||
| + | </ | ||
| + | |||
| + | ===== Vererbung aktivieren und deaktivieren ===== | ||
| + | Für die Verwaltung der Vererbung wird die Methode " | ||
| + | * Der erste Parameter aktiviert ($false) oder deaktiviert ($true) die Vererbung von übergeordneten Berechtigungen. | ||
| + | * Der zweite Parameter entscheidet darüber, ob bestehende geerbte Berechtigungen erhalten bleiben sollen ($true) oder nicht ($false). | ||
| + | |||
| + | Beispiel: Die Vererbung zum Verzeichnis " | ||
| + | :!: Explizit gesetzten Berechtigungen bleiben erhalten. | ||
| + | <code powersehll> | ||
| + | $acl = Get-Acl \\path\to\target | ||
| + | $acl.SetAccessRuleProtection($true, | ||
| + | $acl | Set-Acl \\path\to\target | ||
| + | </ | ||
| + | |||
| + | Den Schritt rückgängig zu machen und die Vererbung wieder aktivieren: | ||
| + | <code powersehll> | ||
| + | $acl = Get-Acl \\path\to\target | ||
| + | $acl.SetAccessRuleProtection($false, | ||
| + | $acl | Set-Acl \\path\to\target | ||
| + | </ | ||
| + | ===== Besitz von Verzeichnissen und Dateien ändern ===== | ||
| + | Der Besitzer eines Objekts wird mit der Methode " | ||
| + | Beispiel: Den Benutzer " | ||
| + | :!: Der Benutzer " | ||
| + | <code powershell> | ||
| + | $acl = Get-Acl \\path\to\target | ||
| + | $usersid = New-Object System.Security.Principal.Ntaccount (" | ||
| + | $acl.SetOwner($usersid) | ||
| + | $acl | Set-Acl \\path\to\target | ||
| + | </ | ||
powershell/system/acls.1596096581.txt.gz · Zuletzt geändert: 2024/05/27 08:35 (Externe Bearbeitung)
