通过PowerShell更新Active Directory“mail”属性

时间:2013-03-02 01:07:40

标签: powershell active-directory

我正在尝试更新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没有返回任何内容。 任何人都可以指出我正确的方向来解决这个问题吗?谢谢!

4 个答案:

答案 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