我正在尝试创建一个脚本,该脚本将连接到 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 有 3 个 Explorer.exe 实例和 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!"