PS:更改远程桌面服务主文件夹

时间:2018-01-15 13:48:59

标签: powershell active-directory

我正在将用户移动到另一个文件服务器,我想开始移动远程桌面服务主文件夹(所以不是RDS用户配置文件)。

我已将文件和文件夹复制到新服务器。现在我需要更改AD用户配置文件中的位置。

我使用powershell来做这件事。

到目前为止,我得到了以下脚本

   Get-ADUser -Filter * -SearchBase 'OU=Test,OU=Users,DC=contoso,DC=com' |     ForEach {
   $User = [ADSI]"LDAP://$($_.DistinguishedName)"
   $User.psbase.invokeset("TerminalServicesHomeDirectory","\\SERVERNAME\ts-$_.SamAccountName") 
   $User.setinfo()
   }

脚本运行没有错误但是当我在AD中检查它时显示:

\\SERVERNAME\ts-CN=Testuser,OU=Test,OU=Users,DC=contoso,DC=com.SamAccountName

这似乎是distinguishedName(最后用.SamAccountName)而不是真正的SamAccountName

希望有人可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

如果这不是拼写错误你在这里复制代码就忘了“。”在$ _

之后
Get-ADUser -Filter * -SearchBase 'OU=Test,OU=Users,DC=contoso,DC=com' |
    ForEach-Object {
        $User = [ADSI]"LDAP://$($_.DistinguishedName)"
        $User.psbase.invokeset("TerminalServicesHomeDirectory","\\SERVERNAME\ts-$_.SamAccountName") 
        $User.setinfo()
    }

答案 1 :(得分:0)

我能够解决它。脚本的工作方式如下:

首先设置一个变量

$folderpath = "\\SERVERNAME"

然后运行此脚本

Get-ADUser -Filter * -SearchBase 'OU=Test,OU=Users,DC=contoso,DC=com' | ForEach {
   $User = [ADSI]"LDAP://$($_.DistinguishedName)"
   $User.psbase.invokeset   ("TerminalServicesHomeDirectory","$folderpath\ts-$($_.SamAccountName)$") 
   $User.setinfo()
   }