查询EmployeeID包含字母的Get-ADuser

时间:2019-07-12 23:26:06

标签: powershell active-directory

在我脚本的一部分中,我试图按员工编号查询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

1 个答案:

答案 0 :(得分:1)

12345被视为整数,因此过滤器查询不会失败。

Get-ADUser -Filter "EmployeeID -eq 12345" -Properties SAMAccountName 

在过滤器中添加 ABC 1234567使过滤器成为字符串,该字符串需要用引号引起来。尝试下面的命令...

 Get-ADUser -Filter "EmployeeID -eq 'ABC1234567'" -Properties SAMAccountName