2017-09-07 23 views
0

PowerShellのGet-ADcomputerコマンドにどのように情報をパイプするのですか?Set-ADComputerにパイプする方法

CSVファイルからコンピュータと説明のリストをインポートし、CSVデータを使用してCSVファイルにリストされているコンピュータの追加情報を収集したいとします。ただし、CSVファイルの情報を使用しようとすると、Get-CommandはCSVファイルの説明情報(値$_.description)の代わりに文字列($_.description)を使用して実行されます。

マイコード:

$csv = Import-Csv C:\Temp\computers.csv -Header @("name","info","description") 
foreach ($line in $csv) { 
    Get-AdComputer -LDAPFilter "(description = $_.description)" -Properties * -SearchScope Subtree -SearchBase "OU=computers,DC=example" 
} 
+0

? – Itchydon

+1

'foreach'は1語です。パイプラインで 'ForEach-Object'ではなく' foreach'を使用しているので、定義された変数を使用します。例えば'_.description' - >' $ line.description'($ computerは$ lineより記述的です) – BenH

答えて

1

てみてください(私はCSV形式であなたの見出しのいずれかを想定していますある名前の説明):あなたのCSVファイルの見出しは何

$csv = Import-Csv C:\Temp\computers.csv 
foreach ($line in $csv) { 
    $description = $line.description 
    Get-AdComputer -LDAPFilter "(description = $description)" -Properties * -SearchScope Subtree -SearchBase "OU=computers,DC=example" 
} 
+0

$ line.descriptionと同じ問題が発生します。 $ line.descriptionの値の代わりに実際に実行されるのは文字列$ line.descriptionです。 – devinated

+1

'foreach'ループによって' $ _'が設定されていないのは、問題の半分だけです。もう半分は、文字列内のプロパティ拡張が機能しないということです。 –

+1

私は少しコードを更新しました - ありがとう@ansgar wiechers!今すぐ試すことができます – Itchydon

関連する問題