Obige Anforderung wurde an mich gestellt. Wie immer «quick and dirty».
Das Script basiert auf den Modulen «NTFSSecurity» (File System Security PowerShell Module), danke schonmal dafür.
Beschrieben ist das ganze gut auf der Technet-Gallery Seite, und hier.
Das Module habe ich unter C:\Program Files\WindowsPowerShell\Modules «installiert» (simples Filecopy). Danach kann das Modul via
Import-Module NTFSSecurity
importiert werden.
Mein Script sieht wie folgt aus:
# Create Folders based on a AD OU # Scripted by M. Wildi, IN4OUT it solutions ag, 5000 Aarau # v 1.0 16.08.2017 # ########################################################################### # Import Module # Module from https://gallery.technet.microsoft.com/scriptcenter/1abd77a5-9c0b-4a2b-acef-90dbb2b84e85 Import-Module NTFSSecurity # set Variables $CustClass = "DT2017" $CustRootDir = "\\FILESERVER\Share\share\root\" $CustDir = $CustRootDir + $CustClass # Create Base Dirs md $CustDir md $CustDir\_Public # Set Permissions Get-Item $CustDir | Disable-NTFSAccessInheritance Get-NTFSAccess $CustDir | Where-Object {$_.Account -like "DOMAIN\GROUP"} | Remove-NTFSAccess Get-Item $CustDir | Add-NTFSAccess -Account "DOMAIN\$CustClass" -AccessRights ReadAndExecute -AppliesTo ThisFolderSubfoldersAndFiles Get-Item $CustDir\_Public| Disable-NTFSAccessInheritance Get-NTFSAccess $CustDir\_Public| Where-Object {$_.Account -like "DOMAIN\GROUP"} | Remove-NTFSAccess Get-Item $CustDir\_Public| Add-NTFSAccess -Account "DOMAIN\$CustClass" -AccessRights FullControl -AppliesTo ThisFolderSubfoldersAndFiles Get-Item $CustDir\_Public| Add-NTFSAccess -Account "DOMAIN\GROUP2" -AccessRights FullControl -AppliesTo ThisFolderSubfoldersAndFiles Get-ADUser -Filter * -SearchBase "OU=$CustCLass,OU=OU1,OU=Users,OU=CUSTOMER,DC=CUSTOMER,DC=intern" -Properties * | ForEach-Object { md $CustDir\$($_.SamAccountName) Get-Item $CustDir\$($_.SamAccountName) | Disable-NTFSAccessInheritance Get-NTFSAccess $CustDir\$($_.SamAccountName) | Where-Object {$_.Account -like "DOMAIN\$CustClass"} | Remove-NTFSAccess Get-Item $CustDir\$($_.SamAccountName) | Add-NTFSAccess -Account "DOMAIN\$($_.SamAccountName)" -AccessRights FullControl -AppliesTo ThisFolderSubfoldersAndFiles Get-Item $CustDir\$($_.SamAccountName) | Add-NTFSAccess -Account "DOMAIN\GROUP2" -AccessRights FullControl -AppliesTo ThisFolderSubfoldersAndFiles }