Dieser Artikel erschien zuerst auf Daniels Blog.
Aufgrund einer Änderung eines Speicherortes musste eine komplette Struktur von Benutzerordnern neugestaltet werden. Dazu musste die Struktur an einen anderen Speicherort verschoben werden und auch die personenbezogenen Berechtigungen komplett angepasst werden mussten.
Um diese Anforderung umzusetzen habe ich folgendes Skript verwendet:
$Startordner= "X:" $Domäne = "domain.local" foreach($personalfolder in (get-childitem $Startordner| where {$_.psiscontainer -eq $true})) { $acl= Get-acl ($Startordner + $personalfolder) $user = $Domäne + "\" + $personalfolder $permission = $user,"FullControl","ContainerInherit, ObjectInherit","None","Allow" $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission $acl.SetAccessRule($accessRule) $acl | Set-Acl ($Startordner + $personalfolder) }
Dabei werden die Ordnernamen ermittelt und diese verwandt, um ihn mit dem Domänennamen zu verknüpfen. Dieser Datenstamm wird dann auf dem Ordner angewendet, um “Full Access” inkl. der Vererbung für den Hauptordner und allen unterliegenden Objekten.
Ergänzung: NTFS-Berechtigung anhand von Ordnernamen mit Namensanhang setzen
Nach der ersten Fassung dieses Artikels bekam ich eine Anfrage, dass es Applikationen gibt, welche einen Anhang an den Namen anhängen. Dieses kann zum Beispiel ein Domänenname wie “.domain” sein oder eine Versionierung wie “.V2″.
Um dieses zu lösen, muss das Skript nur minimal angepasst werden:
$Startordner= "Y:" $Domäne = "domain.local" foreach($personalfolder in (get−childitem $Startordner| where {$_.psiscontainer −eq $true})) { $acl= Get−acl ($Startordner + $personalfolder) $userlogin = $personalfolder.Name.split('.')[0] $user = $Domäne + "\" + $userlogin $permission = $user,"FullControl","ContainerInherit, ObjectInherit","None","Allow" $accessRule = New−Object System.Security.AccessControl.FileSystemAccessRule $permission $acl.SetAccessRule($accessRule) $acl | Set−Acl ($Startordner + $personalfolder) }
Nun wird durch die Splittung und Selektierung des ersten Teils der Ordnerbezeichnung dieser als Vorlage für den Ordnernamen verwandt.
http://faq-o-matic.net/?p=6656