2017-04-12 54 views
1

我有一個帶有員工ID的csv文件,這些ID綁定到AD帳戶,我需要從員工ID獲取AD用戶信息並將其導出到csv文件。下面是我編寫的腳本,它運行時,如果我沒有export-csv開關運行它,我嘗試添加一個管道,但我得到的錯誤是管道不能爲空。powershell使用employeeID獲取sAMAccount信息

$userIDs = Import-CSV "C:\Users_.csv" 
    foreach($userID in $userIDs) 
    { 
    Get-ADUser -Filter "EmployeeID -eq $($userID.EmployeeID)" -Properties SAMAccountName 
    } 

    Export-CSV "C:\UserResults.csv" -NoTypeInformation -Encoding UTF8 

回答

1

您可以使用一個單一的管道:

Import-CSV "C:\Users_.csv" | 
    ForEach-Object { Get-ADUser -Filter "EmployeeID -eq $($_.EmployeeID)" } | 
    Export-CSV "C:\UserResults.csv" -NoTypeInformation -Encoding UTF8 

注意使用ForEach-Objectcmdlet的代替foreach聲明的 - 只有小命令可以在管道中使用。
(有點混亂,小命令具有別名也稱爲foreach;是否使用由上下文(解析模式)隱含的語句或小命令。)

內部傳遞到ForEach-Object腳本塊{ ... },自動變量$_代表手頭的輸入對象。

另請注意,默認情況下,Get-ADUser會輸出具有屬性SAMAccountName的對象,因此您無需明確請求它。

+1

謝謝,完美的作品 –