2012-03-29 2 views
0

Get-ADComputer를 통해 백그라운드 작업으로 선택된 여러 컴퓨터에서 Get-WMIObject (gwmi)를 호출하려고합니다. 내가 백그라운드 작업의 수백 생성, 반환 된 각 컴퓨터 개체에 대해 한 번을 원하면 전화 해요 이후Get-ADComputer를 통해 선택된 여러 컴퓨터에서 Get-WMIObject 호출

내 첫 번째 시도는, 그러나

$job = Get-ADComputer -filter "name -like '*t90*'" | % { gwmi -computername $_.name -query "select name,username from win32_computersystem" -asjob -throttlelimit 10 } 

, 그리고 나는 그들이 공동으로 ThrottleLimit 기울이는 것 생각하지 않는다 .

내가이 일을 제대로하고 있습니까?

난을 원하면이 또한 그래서, 컴퓨터 이름 속성의 배열을 받아 들일 수 있다는 사실을 알고 :

$job = gwmi -computername "computer1","computer2","computer3" -query "select * from win32_computersystem" -asjob -throttlelimit 10 

이 아니라 수백보다 단일 작업에서이 방법으로 결과를 수행,을 원하면가 한 번만 호출되기 때문이다. 내가 그렇게해야만하는 방식인가? 그리고, 그렇다면 배열로 gwmi에 Get-ADComputer의 출력을 어떻게 공급합니까?

고마워요!

답변

1

먼저 모든 컴퓨터 이름을 얻고 ComputerName 매개 변수로 전달합니다

$cn = Get-ADComputer -filter "name -like '*t90*'" | select -expand name 
$job = gwmi -computername $cn -query "select name,username from win32_computersystem" -asjob -throttlelimit 10 
+0

완벽한, 감사합니다! -expand 매개 변수가 필요한 이유는 무엇입니까? –

+1

그것은 당신에게 값만 가져오고, 그것 없이는 이름 속성이 –

+0

인 객체를 얻을 수 있습니다. 이것은 get-qadcomputer와 같습니다 ... | foreach {$ _. name} –

관련 문제