我尝试导入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
答案 0 :(得分:1)
我认为你在该字符串中有一个后退:
不应该是:
"Name -eq '$($user.Name)'"