Using Adaxes, you can specify a Remote Desktop Services profile folder path that is stored in the Remote Desktop Services Settings attribute of a user account. However, setting a folder path does not actually create a folder on the file system. This script will automatically create a Remote Desktop Services profile folder for a user at the path specified in by Remote Desktop Services Settings.
To use the script, you need to create a business rule triggered automatically once a new user is created or changed. For more information on how to automatically run a script once a new user is created, see Run PowerShell Script after Creating a User. Alternatively, you can schedule creation of the profile folders.
See Also: assigning Remote Desktop Services Settings automatically.
$homeFolderPath = $Context.TargetObject.TerminalServicesHomeDirectory
try
{
$homeFolder = New-Item -ItemType directory -Path $homeFolderPath -ErrorAction Stop
}
catch
{
$Context.LogMessage($_.Exception.Message, "Error")
return
}
# Grant user full control permissions for the folder
# Get user SID
$userSidBinary = $Context.TargetObject.Get("objectSid")
$userSid = New-Object System.Security.Principal.SecurityIdentifier($userSidBinary, 0)
# Update permissions for the folder
$homeFolderACL = Get-Acl $homeFolder
$acl = New-Object System.Security.AccessControl.FileSystemAccessRule($userSid,"FullControl","ContainerInherit,ObjectInherit","None","Allow")
$homeFolderACL.AddAccessRule($acl)
Set-Acl -path $homeFolder $homeFolderACL