我正在将用户移动到另一个文件服务器,我想开始移动远程桌面服务主文件夹(所以不是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
希望有人可以帮我解决这个问题。
答案 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()
}