1

我正在尝试为特定 OU 中的所有用户更新 AD 中列出的电子邮件地址。这是我正在使用的 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 没有返回任何内容。谁能指出我解决这个问题的正确方向?谢谢!

4

5 回答 5

3

使用 SamAccountName 和电子邮件地址创建一个 csv 文件

"SamAccountName","EmailAddress"
"john","john@xyz.com"

第 1 步:导入到变量

$users = Import-Csv .\email.csv

第二步:调用变量

foreach ($user in $users) {
    Set-ADUser -Identity $user.SamAccountName -EmailAddress $user.EmailAddress
}
于 2017-05-19T16:50:32.803 回答
2

在当前上下文中 $_ 为空。您需要使用 Foreach-Object 才能使 $_ 可用。

Get-ADUser -Filter * ... | Foreach-Object{
   Set-ADUser -Identity $_ -Email "$($_.samaccountname)@domain.com"
}
于 2013-03-02T08:54:54.910 回答
0

I suspect you'll need to use a subexpression for that:

"$($_.samaccountname)@domain.com"
于 2013-03-02T02:06:03.507 回答
0
Get-ADUser -Filter * -SearchScope Subtree -SearchBase "OU=OUName,DC=domain,DC=com" |  
  Foreach-Object { Set-ADUser -Identity $_ -Email "$($_.samaccountname)@domain.com" }

这来自: https ://social.technet.microsoft.com/wiki/contents/articles/33311.powershell-update-mail-and-mailnickname-for-all-users-in-ou.aspx

于 2022-02-03T13:48:14.657 回答
0

假设用户名是 domain\user1 或 user1@domain.com

$user = "user1"
Set-ADUser $user -emailaddress "firtname.lastname@xyz.com"
Get-ADUser -Identity $user -Properties emailaddress
于 2018-04-17T18:34:36.770 回答