在通过Get-ADComputer选择的多台计算机上调用Get-WMIObject



我正试图在通过Get-ADComputer选择的多台计算机上调用Get-WMIObject(gwmi)作为后台作业。

我的第一次尝试是

$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

谢谢!

首先获取所有计算机名称并将其传递给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 

最新更新