我试图将主目录路径更改为一堆用户.
我在Ppowershell中编写了一个脚本,它应该改变用户名的路径,如下所示:
\\serverName\shareName\$_.SamAccountName
问题是我得到了DistinguishedName而不是SamAccountName,如下所示:
\\serverName\shareName\CN=UserName,OU=OuName,DC=domainName,dc=local
这是我写的脚本:
Get-ADUser -Filter * -SearchBase 'ou=XX,dc=domainName,dc=local' | ForEach-Object { Set-ADUser $_.SamAccountName -HomeDrive "Z:" -HomeDirectory "\\serverName\shareName\$_.SamAccountName" }
任何人都可以看到为什么这不起作用?
这是因为Powershell处理引号中变量的方式.基本上,而不是得到
$_.SamAccountName
你真的得到了
$_ + "SamAccountName"
Set-ADUser $_.SamAccountName -HomeDrive "Z:" -HomeDirectory "\\serverName\shareName\$($_.SamAccountName)"
更新:@JScott告诉我这个方法叫做“subexpression”