2017-12-21 8 views
0

희망 사항을 선택하면 도움이됩니다. 나는 패키지 목록을 $ list 변수에, DP 서버 목록을 $ DP라는 변수에 반입하려고했다. 나는 foreach와 write-host를 사용하여 변수의 모든 항목이 잘 보이는지 확인했지만 get-wmi 객체의 변수를 매개 변수로 사용하여 $ i.packageid를 필터링하면 빈/null입니다. 이 문제를 해결하는 방법을 알려주십시오.변수를 전달하여 wmi 객체 쿼리를 얻을 수 없습니다.

당신은 당신의 Write-Host 전화에서보다 매개 변수를 다르게 변수를 호출하고

$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

샘플 코드. 문자열 $()에서 하위 표현식없이 개체 속성에 액세스 할 수 없습니다. 당신이 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

관련 문제