我需要根据一个字段来查询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
任何帮助将不胜感激。
答案 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
...