将电子邮件地址导入Active Directory

时间:2014-12-02 20:39:50

标签: powershell active-directory

我尝试导入CSV文件,该文件将使用正确的电子邮件地址更新AD环境中的用户。

CSV的前几行如下所示:

Email,Name
adam.lambert@domain.com,Adam Lambert
aaron.smith@domain.com,Aaron Smith
arthur.aardvark@domain.com,Arthur Aardvark

我写的PowerShell脚本如下所示:

Import-Module ActiveDirectory
$data = Import-CSV -Path "C:\Users\redacted\Desktop\importtest.csv"
Foreach ($user in $data){
Get-ADUser -Filter “Name -eq ‘$($user.Name)'” | Set-ADUser -Replace @{mail = “$($user.Email)”}
}

然而,令我沮丧的是,它并没有起作用。为了澄清,我试图匹配" name"的ADSI值。 (而不是SamAccountName)与Excel中的列表,我知道事实是完全匹配。

有什么想法?错误如下:

Get-ADUser : Error parsing query: 'Name -eq ‘Adam Lambert'' Error Message: 'syntax error' at position: '10'.
At line:4 char:11
+ Get-ADUser <<<<  -Filter “Name -eq ‘$($user.Name)'” | Set-ADUser -Replace @{mail = “$($user.Email)”}
    + CategoryInfo          : ParserError: (:) [Get-ADUser], ADFilterParsingException
    + FullyQualifiedErrorId : Error parsing query: 'Name -eq ‘Adam Lambert'' Error Message: 'syntax error' at position: '10'. 
   ,Microsoft.ActiveDirectory.Management.Commands.GetADUser

1 个答案:

答案 0 :(得分:1)

我认为你在该字符串中有一个后退:

不应该是:

"Name -eq '$($user.Name)'"