IP アドレス範囲内のリモート コンピューターに接続し、explorer.exe プロセスを実行しているリモート コンピューターをエコーするスクリプトを作成しようとしています。
狭い範囲 (10.2.1.1 ~ 10.2.1.10) でスクリプトを実行すると、10.2.1.4 がオフラインであり、10.2.1.9 と 10.2.1.10 が Windows ベースのコンピューターではないため、「Explorer.exe は実行されていません」しかし、そうではないようです。以前のサーバーと同じ結果を返すようです。たとえば、10.2.1.3 には Explorer.exe のインスタンスが 3 つあり、echo が 3 回発生します。オフラインの 10.2.1.4 でも同じ結果が得られます。
私のスクリプトは次のとおりです。
On Error Resume Next
intStartingAddress = InputBox("Please enter a starting address: (e.g. 1)", "Starting Address")
intEndingAddress = InputBox("Please enter an ending address: (e.g. 254)", "Ending Address")
strSubnet = InputBox("Please enter a subnet excluding the last octet: (e.g. 10.2.1.)", "Subnet")
For i = intStartingAddress to intEndingAddress
strComputer = strSubnet & i
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcess = objWMIService.ExecQuery("Select * From Win32_Process Where Name = 'Explorer.exe'")
For Each objProcess in colProcess
If colProcess.Count > 0 Then
Wscript.Echo strComputer & " Explorer.exe is running."
Else
Wscript.Echo strComputer & " Explorer.exe is not running."
End If
Next
Next
Wscript.Echo "That's all folks!"