【发布时间】:2014-12-02 20:39:50
【问题描述】:
我正在尝试导入一个 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)”}
}
但是,令我沮丧的是,它不起作用。为了澄清,我试图将“名称”(不是 SamAccountName)的 ADSI 值与 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
【问题讨论】:
-
你的代码到处都是“智能引号”。这是因为您从 Word 或其他内容中复制/粘贴了它,还是您的真实代码有它们?确保您的代码使用标准双引号
"和单引号'。 -
这正是问题所在。感谢您的解决方案:)
标签: powershell active-directory