###Erstellung eines Benutzer-Verzeichnises / rb / 2020 # erforderliche Provisioning-Parameter der Resource: # $username # wird immer von Tenfold mitgeliefert # $NTDomain # NT-Domänenname # $Path # Name der Dateifreigabe z.B. "\\server\share" # erforderliche Resourcenbedingungen: # "Resource - New" # "Resource - Delete" ############################################################## $userName = $params.request.person.masterdata.userName $NTDomain = $params.ntdomain $Path = $params.path $userPath= "$Path\$userName" ###Verzeichnis erstellen... If ((Test-Path $Path)){ If (!( Test-Path $userPath)){ #echo "Verzeichnis $userPath existiert nicht, versuche zu erstellen ..." try {((New-Item (join-path -path $Path -ChildPath $userName) -ItemType directory ))} catch { return "error: Verzeichnis $userPath konnte nicht angelegt werden";exit; } #write-host "Verzeichnis $userPath erstellt." } } else{ try { Remove-Item -Recurse -Force $userPath; return "Verzeichnis $userPath gelöscht.";exit; } catch { return "error: $userPath exist, but cannot delete"; exit; } } } ###write-host "versuche Verzeichnisrechte an $Path zu ändern ..." $acl = Get-Acl $userPath $permission = "$Username","FullControl","ContainerInherit,ObjectInherit","None","Allow" $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission $ID = New-object System.Security.Principal.NTAccount($NTDomain,$userName) try {$acl.SetAccessRule($accessRule) } catch {return "error: set-accessrule $accessrule failed";exit; } try {$acl.SetOwner($ID) } catch {return "error: set-owner $sid failed";exit; } try {$acl | Set-Acl $userPath } catch {return "error: set-acl $userpath failed" }