我是一个相对缺乏经验的程序员,我一直遇到通过VBScript远程获取物理磁盘序列号的问题。
目前,我正在使用Scriptingmatic V2中的Scriptingmatic V2中的默认脚本。我从2003 Server运行它并试图从Win2000和WinXP SP2 / SP3系统获取信息。我从一些教程中看到WMI类推荐的是Win32_PhysicalMedia。
包括有用位:
On Error Resume Next
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
arrComputers = Array("STN_XP","STN_2000")
For Each strComputer In arrComputers
WScript.Echo
WScript.Echo "=========================================="
WScript.Echo "Computer: " & strComputer
WScript.Echo "=========================================="
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMedia", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
'(Removed a couple from the code, just showing the useful ones)
WScript.Echo "Model: " & objItem.Model
WScript.Echo "Name: " & objItem.Name
WScript.Echo "SerialNumber: " & objItem.SerialNumber
WScript.Echo "Tag: " & objItem.Tag
WScript.Echo
Next
Next
现在我得到的输出如下:注意这是使用所有调用运行脚本的确切输出;除了objItem.Tag值之外没有返回任何数据:
==========================================
Computer: STN_XP
==========================================
Capacity:
Caption:
CleanerMedia:
CreationClassName:
Description:
HotSwappable:
Manufacturer:
MediaDescription:
MediaType:
Model:
Name:
OtherIdentifyingInfo:
PartNumber:
PoweredOn:
Removable:
Replaceable:
SerialNumber:
SKU:
Status:
Tag: \\.\PHYSICALDRIVE0
Version:
WriteProtectOn:
==========================================
Computer: STN_2000
==========================================
所有计算机都连接到域,我已登录到主管理员帐户。使用其他一些WMI库,我获取数据,到目前为止我在一台特定的计算机上收到了一个序列号(和标签,但没有别的)。我已经读过这篇关于Vista的问题,你需要在管理模式下运行。由于使用的操作系统,这不应成为问题。任何人都知道可能出错了什么?
作为后续问题,有谁知道如何从2000电台获取序列号?
提前感谢您提供的任何帮助。
答案 0 :(得分:0)
使用单引号注释On Error Resume Next,并发布可能返回的错误消息。