2017-12-21 13 views
0

私の問題を助けてくれることを願っています。 $ listという変数にパッケージのリストを、$ DPという名前の変数にDPサーバのリストをインポートしようとしました。私はforeachとwrite-hostを使用し、変数内のすべての項目が正常に表示されていることを確認しましたが、$ i.packageidをフィルタリングするパラメータとしてget-wmiオブジェクトの変数を使用すると、空/ NULLになります。これを解決する方法をアドバイスしてください。変数を渡してWMIオブジェクトクエリを取得することができません

サンプルコード

$list=import-csv -Path 'C:\Users\Administrator\desktop\SCCM\packagelist.csv' 
$DP="SCCMDP1","SCCMDP2" 


foreach ($i in $list) 
{ 

write-host "Item is $($i)" # showing ok 
write-host "package is $($i.package)" # showing ok 
write-host "packageid is $($i.packageid)" # showing ok 


get-wmiobject -namespace root\sms\site_v01 -class sms_distributiondpstatus -Filter {packageid like "$i.packageid"}|select name 

答えて

0

あなたはWrite-Host通話からよりパラメータで異なるあなたの変数を呼んでいます。文字列$()の部分式なしでオブジェクトプロパティにアクセスすることはできません。あなたはLIKE WQL比較を使用して、ワイルドカードを使用するつもりはない場合

$list = import-csv -Path 'C:\Users\Administrator\desktop\SCCM\packagelist.csv' 
$DP = 'SCCMDP1','SCCMDP2' 

foreach ($i in $list) 
{ 
    write-host "Item is $i" # showing ok 
    write-host "package is $($i.package)" # showing ok 
    write-host "packageid is $($i.packageid)" # showing ok 

    Params = @{ 
     Namespace = 'root\sms\site_v01' 
     Class = 'sms_DistributionDPStatus' 
     Filter = "PackageId LIKE '%$($i.PackageId)%'" 
    } 
    Get-WmiObject @Params | Select-Object -Property Name 
} 

は不要です。

+0

どうもありがとう。 – jcaloy

+0

@jcaloy私の答えがあなたの質問を解決したなら、親切に投票カウンタの下にそれを記入してください。 – TheIncorrigible1

関連する問題