在我脚本的一部分中,我试图按员工编号查询AD搜索。这对于90%的员工来说效果很好。但是在我的组织中,我们有一些特殊的员工,其中员工编号包含字母,因此破坏了我的powershell命令。
这是2个示例
Get-ADUser -Filter "EmployeeID -eq 12345" -Properties SAMAccountName
Get-ADUser -Filter "EmployeeID -eq ABC1234567" -Properties SAMAccountName
第一个选项工作正常,但第二个失败。
Get-ADUser:解析查询错误:“ EmployeeID -eq ABC1234567”错误 消息:位置“ 16”处的“语法错误”。在第1行:char:1 + Get-ADUser-筛选器“ EmployeeID -eq ABC1234567”-属性SAMAccou ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:ParserError:(:) [Get-ADUser],ADFilterParsingException + FullyQualifiedErrorId:ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADFilterParsingException,Micr osoft.ActiveDirectory.Management.Commands.GetADUser
答案 0 :(得分:1)
12345被视为整数,因此过滤器查询不会失败。
Get-ADUser -Filter "EmployeeID -eq 12345" -Properties SAMAccountName
在过滤器中添加 ABC 1234567使过滤器成为字符串,该字符串需要用引号引起来。尝试下面的命令...
Get-ADUser -Filter "EmployeeID -eq 'ABC1234567'" -Properties SAMAccountName