NTFS per PowerShell
Hallo zusammen,
ich habe folgende Anforderungen:
Es existiert die Vorlage eines Projekt-Ordners mit diversen Unterordnern unterschiedlicher Anzahl. Diese Struktur soll vollständig vor Veränderung durch eine Berechtigte AD-Gruppe geschützt werden. Unterhalb der Ordner sollen die User allerdings Dateien und Ordner erstellen, bearbeiten und löschen dürfen.
Ich habe dazu folgenden Ansatz, die Lösung ist aber noch nicht perfekt:
Bei dieser Lösung wird das Recht "Ändern" bereits auf den letzten Unterordner gesetzt, wodurch der User den Ordnernamen ändern kann.
Wenn ich mit dem Prinzipal "ERSTELLER" arbeite, können andere Projektmitglieder diese Dateien nicht verändern.
Hat noch jemand einen Vorschlag für mich?
ich habe folgende Anforderungen:
Es existiert die Vorlage eines Projekt-Ordners mit diversen Unterordnern unterschiedlicher Anzahl. Diese Struktur soll vollständig vor Veränderung durch eine Berechtigte AD-Gruppe geschützt werden. Unterhalb der Ordner sollen die User allerdings Dateien und Ordner erstellen, bearbeiten und löschen dürfen.
Ich habe dazu folgenden Ansatz, die Lösung ist aber noch nicht perfekt:
# Variablen definieren
$path = "D:\Vorlage" # Pfad zur obersten Ebene der Ordnerstruktur
$group = "ad\project-test" # Name der Benutzergruppe
# Berechtigungen für die oberste Ebene des Ordners festlegen
$acl = Get-Acl $path
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($group, "ReadAndExecute,Synchronize", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl.SetAccessRule($accessRule)
Set-Acl -Path $path -AclObject $acl
# Berechtigungen für alle Unterordner festlegen
Get-ChildItem $path -Recurse -Directory | ForEach-Object {
$acl = Get-Acl $_.FullName
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($group, "ReadAndExecute,Synchronize", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl.SetAccessRule($accessRule)
Set-Acl -Path $_.FullName -AclObject $acl
# Verhindern, dass Dateien und Ordner gelöscht oder umbenannt werden
$denyDelete = New-Object System.Security.AccessControl.FileSystemAccessRule($group, "DeleteSubdirectoriesAndFiles,Delete", "ContainerInherit,ObjectInherit", "None", "Deny")
$acl.AddAccessRule($denyDelete)
Set-Acl -Path $_.FullName -AclObject $acl
}
# Berechtigungen für die unterste Ebene des Ordners festlegen
Get-ChildItem $path -Recurse -Directory | Where-Object { !(Get-ChildItem $_.FullName -Directory) } | ForEach-Object {
$acl = Get-Acl $_.FullName
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($group, "Modify", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl.SetAccessRule($accessRule)
Set-Acl -Path $_.FullName -AclObject $acl
}
Bei dieser Lösung wird das Recht "Ändern" bereits auf den letzten Unterordner gesetzt, wodurch der User den Ordnernamen ändern kann.
Wenn ich mit dem Prinzipal "ERSTELLER" arbeite, können andere Projektmitglieder diese Dateien nicht verändern.
Hat noch jemand einen Vorschlag für mich?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 64251596736
Url: https://administrator.de/forum/ntfs-per-powershell-64251596736.html
Ausgedruckt am: 03.04.2025 um 16:04 Uhr
3 Kommentare
Neuester Kommentar
Dann müsste ich aber noch zusätzlich darunter die Vererbung deaktivieren. Wie mache ich das noch?
Nein, wieso?Man kann vererbte Berechtigungen mit nicht vererbten kombinieren. Verweigerungen haben Vorrang vor Gewährungen, vollkommen unabhängig, welche davon vererbt wurden und welche nicht.
Ich empfehle Dir, dass Du diese Berechtigungen erst einmal mit dem Explorer manuell aufbaust. Dann testest Du, ob es so funktioniert, wie gewünscht. Dann liest Du die ACLs und deren ACEs mit PowerShell aus. Damit weißt Du dann, was Du da in einem Script setzen musst.
- 1. Ebene
- 2. Ebene
- 3. Ebene
User soll diese 3 Ebenen nicht ändern dürfen, aber in und unterhalb der 3. Ebene arbeiten können?
(Oder ggf. bloß mit 2 Ebenen)
Falls ja:
An 3. Ebene
- Recht zum Ändern erteilen für "Nur Unterordner und Dateien"
- Recht zum Erstellen von Dateien und Ordnern erteilen
- Recht zum Schreiben und Löschen für "nur diesen Ordner" verweigern
So machen wir das bei uns und das funktioniert auch so.