select
は(Select-Object
の別名である)は、指定のみプロパティを持つオブジェクトを返します。だからあなたが最初に行ったときにはselect username
という名前のオブジェクトしか持っていません。他のすべてのプロパティは破棄されたので、2番目のSelect-Object
コールが実行されると、返される番号はcomputername
になりません。
最初のselect
は完全に不要です。ただそれを取り出して、私はすべてが期待どおりに動作すると思う。
編集:今すぐ参照してくださいcomputername
は、返されたWMIオブジェクトのプロパティではありません。それはCSVから来ました。 ForEach-Object
はWMIオブジェクトのみを返すので、CSV行オブジェクトは破棄されます。あなたがする必要がどのような
あなたはSelect-Object
(計算列を持つ)またはAdd-Member
で行うことができますWMIオブジェクトにCSVからcomputername
を追加です:
Import-csv C:\file_location.csv |
ForEach-Object {
Get-WmiObject -computername $_.computername -class Win32_ComputerSystem |
Select-Object @{Name='ComputerName';Expression={$_.computername}},username
} |
Export-CSV C:\file_location.csv -notypeinformation
または:
Import-csv C:\file_location.csv |
ForEach-Object {
Get-WmiObject -computername $_.computername -class Win32_ComputerSystem |
Add-Member -NotePropertyName computername -NotePropertyValue $_.computername -Force -PassThru
} |
Select-Object computername, username
Export-CSV C:\file_location.csv -notypeinformation
[Powershell Export-CSV issues]の重複している可能性があります(https://stackoverflow.com/questions/42233416/powershell-export-csv-issues) –