eli*_*iko 4 powershell windows-server-2012
我正在尝试将主目录路径更改为一堆用户。
我在 Ppowershell 中编写了一个脚本,它应该像这样更改用户名的路径:
\\serverName\shareName\$_.SamAccountName
Run Code Online (Sandbox Code Playgroud)
问题是我得到了 DistinguishedName 而不是 SamAccountName,如下所示:
\\serverName\shareName\CN=UserName,OU=OuName,DC=domainName,dc=local
Run Code Online (Sandbox Code Playgroud)
这是我写的脚本:
Get-ADUser -Filter * -SearchBase 'ou=XX,dc=domainName,dc=local' | ForEach-Object {
Set-ADUser $_.SamAccountName -HomeDrive "Z:" -HomeDirectory "\\serverName\shareName\$_.SamAccountName"
}
Run Code Online (Sandbox Code Playgroud)
谁能看出为什么这不起作用?
这是因为 Powershell 处理引号中的变量的方式。基本上,而不是得到
$_.SamAccountName
Run Code Online (Sandbox Code Playgroud)
你实际上得到了
$_ + "SamAccountName"
Run Code Online (Sandbox Code Playgroud)
要解决此问题,只需使用以下方法封装变量:
Set-ADUser $_.SamAccountName -HomeDrive "Z:" -HomeDirectory "\\serverName\shareName\$($_.SamAccountName)"
Run Code Online (Sandbox Code Playgroud)
更新:@JScott 告诉我这个方法被称为“子表达式”
归档时间: |
|
查看次数: |
13459 次 |
最近记录: |