2016-06-15 62 views
1

我剛剛開始學習PowerShell,但是我正在用這個軟件敲打我的頭。當我進口CSV用戶的列表,以獲得與頭SAM帳戶上獲得-ADUser便有了通過UserPrincipalName,我能看到控制檯上的所有電子郵件:無法導出所有用戶,只有一個用戶在導入CSV文件時出現,然後Get-ADUser

ForEach ($user in $allUsers) 
{ 
Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname 
} 

然而,當我嘗試將它們導出到一個csv文件只有一個用戶出來。我總是有一個問題,當使用這種foreach循環...

ForEach ($user in $allUsers) 
{ 
Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname | export-csv $path -NoTypeInformation 
} 

我總是遇到這個問題,當我做foreach循環。我只能得到或更改1個變量。爲什麼是這樣? x_X請幫忙!

而我的CSV文件有一個SamAccountName和samaccount名稱的標頭。

[email protected] [email protected] 等等

+0

使用'-Append'參數,以避免在每次迭代 –

回答

0

您在每次循環都出口,這將覆蓋:沒有導出我從控制檯上的代碼獲得良好的數據文件。我沒有嘗試過,但下面的更改應該可以工作。

$allUsers | Foreach-Object { 
    $user = $_ 
    Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname 
} | export-csv $path -NoTypeInformation 

,如果你想直接管道結果export-csv

+0

特拉維斯覆蓋該CSV您必須使用該語法VS foreach(x in y),謝謝你,你的打字代碼在工作中。你能解釋爲什麼使用'foreach($ allUsers中的$ user) { Get-ADUser $ user.SamAccountName -Properties userprincipalname |選擇 - 屬性userprincipalname } | export-csv $ path -NoTypeInformation'不起作用?它說我有一個空管道。在輸入foreach和你的方式之間似乎有一些根本的區別,但它是什麼?這對我來說似乎是一樣的。你輸入的方式是否更有效率和包容性?是你的%{替換爲每個,還是使用$ _ pipeline的密鑰? – DrixlRey

+0

主要問題是導出是在循環內...因此,每次迭代都覆蓋文件。如果在管道中,Foreach(x in y)將不起作用。所以,如果你想使用這種語法,你必須在集合中累積結果,並在集合管道中輸出,以便在foreach之後導出 – TravisEz13

+0

上面剛剛公佈的代碼具有循環右側的導出功能嗎?當我完成我最後的評論時,它就在外面},它會說空管道。 – DrixlRey

相關問題