我正在尝试更新AD中列出的特定OU中所有用户的电子邮件地址。这是我正在使用的powershell脚本,但它无法正常工作
Import-Module ActiveDirectory
Get-ADUser -Filter * -SearchBase "OU=OtherOU,OU=SomeOu,DC=Domain,DC=local" | Set-ADUser -email $_.samaccountname@domain.com
我认为这是因为当我尝试使用Set-ADUser时,$ _。samaccountname没有返回任何内容。 任何人都可以指出我正确的方向来解决这个问题吗?谢谢!
答案 0 :(得分:2)
在当前上下文中,$ _为null。您需要使用Foreach-Object才能使$ _可用。
Get-ADUser -Filter * ... | Foreach-Object{
Set-ADUser -Identity $_ -Email "$($_.samaccountname)@domain.com"
}
答案 1 :(得分:2)
使用SamAccountName&创建一个csv文件。电子邮件地址
"SamAccountName","EmailAddress"
"john","john@xyz.com"
第1步:导入变量
$users = Import-Csv .\email.csv
第2步:调用变量
foreach ($user in $users) {
Set-ADUser -Identity $user.SamAccountName -EmailAddress $user.EmailAddress
}
答案 2 :(得分:0)
我怀疑你需要使用子表达式:
"$($_.samaccountname)@domain.com"
答案 3 :(得分:0)
假设用户名是domain \ user1或user1@domain.com
$user = "user1"
Set-ADUser $user -emailaddress "firtname.lastname@xyz.com"
Get-ADUser -Identity $user -Properties emailaddress