Powershell脚本AD搜索非索引字段

时间:2016-05-05 20:11:36

标签: powershell

我需要根据一个字段来查询AD,该字段不是未编入索引的字段之一。我们有一个名为EmployeeID的字段。当我尝试过滤时,我得到一个无效的参数。我可以查询任何索引字段,但我没有那些。

Import-Module ActiveDirectory
$users = ForEach ($user in $(Get-Content "C:\Users\leaker.AUTH\Documents\MADO - General\Tools\ED Dump tool\ED Dump tool\badgem.txt"))
{

    Get-AdUser $user -filter "EmployeeID -eq '$_.employeeID)'" -Properties SamAccountNAme,displayName,employeeID,mail

}

 $users |
 Select-Object SamAccountNAme,displayName,employeeID,mail |
 Export-CSV -Path "C:\Users\leaker.AUTH\Documents\MADO - General\Tools\ED Dump tool\ED Dump tool\output.csv" -NoTypeInformation

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

$user将绑定到Identity参数 - Filter并且Identity在同一参数集中不存在。

删除-filter "EmployeeID -eq '$_.employeeID)'"

答案 1 :(得分:0)

我假设您的CSV有一个名为“employeeID”的字段?如果是这样,那将是ForEach循环中创建的$name变量的属性。

您不需要Get-ADUser的$ user参数,看起来您的过滤器语法中包含奇怪的括号和引号。请尝试以下方法:

...
Get-ADUser -Filter {EmployeeID -eq $name.employeeId} -Properties samAccountNAme,displayName,employeeID,mail
...