【问题标题】:Importing email addresses into Active Directory将电子邮件地址导入 Active Directory
【发布时间】: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


【解决方案1】:

我认为你在那个字符串中有一个反勾号:

不应该是:

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

【讨论】:

  • 实际上是一个“聪明的报价”(见上面的评论)。但这绝对解决了这个问题。谢谢大家!
猜你喜欢
  • 2013-04-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多