【发布时间】:2015-05-13 18:52:54
【问题描述】:
我有一个程序可以从 txt 文件中读取主机名,它会扫描网络以查找主机名,然后显示主机名及其各自的 Windows 操作系统 (CAPTION)。
我正在尝试将所有 Windows XP 计算机升级到 Windows 7。我正在尝试运行此列表以了解我已升级多少台计算机以及我还需要升级多少台等.
问题是,当我使用语句On Error Resume Next 时,如果脚本尝试联系一个错误的主机名,或者如果主机名是 DOWN,它会从最后一个主机名显示操作系统。然后向前扫描的每个名称都显示相同的操作系统。
什么可能导致这个错误?
On Error Resume Next
const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile= objFSO.OpenTextFile _
("C:\users\bh\desktop\hostnames.txt", ForReading)
strText = objTextFile.ReadAll
objTextFile.close
arrComputers = Split(strText, vbCrlf)
for Each strComputer in arrComputers
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colSettings
Wscript.Echo strComputer & ": " & objOperatingSystem.Caption
Next
Next
【问题讨论】: