2016-05-05 57 views
1

我有一個需要查詢的AD基於不是索引字段之一的字段。我們有一個名爲EmployeeID的字段。當我嘗試過濾時,我得到一個無效的參數。我可以查詢任何索引字段,但我沒有那些。Powershell腳本AD搜索非索引字段

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

很抱歉的代碼問題 – Bob

+0

的'Filter'字符串將字面上擴展爲:' 「僱員-eq '.employeeID)'」' –

回答

0

$user將被綁定到Identity參數 - FilterIdentity不存在於相同的參數集中。

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

0

我認爲您的CSV有一個名爲 「僱員」 字段?如果是這樣,那將是在ForEach循環中創建的$name變量的屬性。

對於Get-ADUser,您不需要$ user參數,它看起來像您的過濾器語法在其中包含奇怪的括號和引號。請嘗試以下操作:

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