我需要一个 Powershell 脚本来编辑 Active Directory 中特定 OU 内的所有用户电子邮件属性。
下面的代码搜索正确的 OU 并编辑其中的用户电子邮件属性,但是用户电子邮件属性被替换为 @domain.com,而不是[电子邮件保护]。
我的语法错误吗:$($_.samaccountname)?
Get-ADUser -Filter * -SearchBase "OU=Test,OU=People,DC=ad,DC=domain,DC=com" | Set-ADUser -email "$($_.samaccountname)@domain.com"
我很感谢你的帮助。
答案1
问题不在于您的语法,而在于该变量$_
在此上下文中不存在。
要使用它你需要进入 foreach 循环。
Get-ADUser -Filter * -SearchBase "OU=Test,OU=People,DC=ad,DC=domain,DC=com" |
Foreach-Object { Set-ADUser -email "$($_.samaccountname)@domain.com" }
答案2
Set-ADUser -email "$($_.samaccountname)@domain.com"
其实比这简单多了。只需使用
Set-ADUser -email ($_.samaccountname + "@domain.com")