2
我剛剛開始使用PowerShell和我有以下腳本:電源外殼多個WMI命令中的if語句
Get-ADComputer -Filter * |
ForEach-Object {
if(Test-Connection -CN $_.dnshostname -Count 1 -BufferSize 16 -Quiet)
{
write-host $_.dnshostname
Get-WmiObject Win32_Process -cn $_.dnshostname | Select ProcessID,ProcessName,ThreadCount
Get-WmiObject Win32_DiskDrive -cn $_.dnshostname;
}
ELSE { write-host $_.dnshostname unavlible }
}
基本上,我想實現的是從我的DC拉每臺計算機的列表,測試它們是否已啓動,然後使用多個WMI查詢輪詢它們。我遇到的問題是,當我對第一個Wmi對象進行選擇時,我沒有得到第二個wmi對象的結果,因爲我假設select將被應用於第二個對象,導致沒有數據被返回。
任何想法我可以做到這一點。現在我正在使用ping來測試機器的可用性,但這並不是最好的,因爲ICMP在某些系統上被阻塞,但WMI仍然是可能的。 ICMP同樣可用,但wmi被阻止。是否有更好的方法來執行測試以獲取WMI查詢將工作的系統列表?