Вызов Get-WMIObject на нескольких компьютерах, выбранных через Get-ADComputer - PullRequest
0 голосов
/ 29 марта 2012

Я пытаюсь вызвать Get-WMIObject (gwmi) на нескольких компьютерах, выбранных через Get-ADComputer в качестве фонового задания.

Моя первая попытка была

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

Однако, посколькуЯ вызываю gwmi один раз для каждого возвращаемого объекта компьютера, создаются сотни фоновых заданий, и я не верю, что они коллективно прислушиваются к ThrottleLimit.

Правильно ли я это делаю?

Я знаю, что gwmi также может принимать массив для атрибута computername, например:

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

Результатом этого являетсяодна работа, а не сотни, так как gwmi вызывается только один раз.Это то, как я должен это делать?И, если это так, как передать выходные данные Get-ADComputer в gwmi в виде массива?

Спасибо!

1 Ответ

1 голос
/ 29 марта 2012

Сначала получите все имена компьютеров и передайте их параметру 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...