远程WMI调用磁盘序列号

时间:2012-01-23 23:24:26

标签: vbscript wmi

我是一个相对缺乏经验的程序员,我一直遇到通过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电台获取序列号?

提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

使用单引号注释On Error Resume Next,并发布可能返回的错误消息。