我是一個相對缺乏經驗的編碼器,我一直在遇到通過VBScript遠程獲取物理磁盤序列號的問題。遠程WMI調用磁盤序列號
目前,腳本專員使用Scriptomatic 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站獲取序列號?
在此先感謝您提供的任何幫助。
那麼,問題是什麼? –
問題是如何遠程獲取硬盤驅動器的序列號。 objItem.SerialNumber應該可以工作,但不會。有沒有什麼需要我來完成,或者我可以採取另一種方式? – Insomnia
啊,對不起。我剛剛意識到你的意思。沒有數據被返回。我看到的輸出完全如圖所示,除Tag之外沒有任何數據正在被正確返回。編輯OP澄清。 – Insomnia