2012-02-15 31 views
3

我想讀取我的硬盤驅動器的名稱和序列號。wmic diskdrive獲取serialnumber - >無效的xml輸出

我偶然發現了wmic,但我有麻煩。我想這兩個命令應該做的伎倆,但我只得到消息:

Invalid Xml-Content. //(Translated) 

wmic path win32_physicalmedia get serialnumber 

wmic DISKDRIVE GET SerialNumber 

我嘗試以下藏漢:什麼我

​​

任何想法「我做錯了嗎?


解決方案:

感謝JPBlanc,通過/ ?命令我發現SerialNumber不存在。我現在用

WMIC /output:"c:\hdds.txt" DISKDRIVE GET PNPDeviceID,Name /Format:CSV 

它給出了正確的結果。

回答

3

你只是犯了一個錯誤頁使用WMIC命令行,WMIC DISKDRIVE GET SerialNumber /Format /?給你的關鍵字:

CSV 
HFORM 
HTABLE 
LIST 
MOF 
RAWXML 
TABLE 
VALUE 
XML 
htable-sortby 
htable-sortby.xsl 
texttablewsys 
texttablewsys.xsl 
wmiclimofformat 
wmiclimofformat.xsl 
wmiclitableformat 
wmiclitableformat.xsl 
wmiclitableformatnosys 
wmiclitableformatnosys.xsl 
wmiclivalueformat 
wmiclivalueformat.xsl 

你可以試試:

WMIC /output:"c:\temp\serial1.xml" DISKDRIVE GET SerialNumber /Format:RAWXML 

您可以通過其他格式替換RAWXML

3

發生此問題是因爲XML解析器將某些驅動器的序列號中包含的控制字符視爲無效。

+0

的確。有一個修補程序可用於修補WMIC以解決此問題:http://support.microsoft.com/kb/2664203 – AlcubierreDrive 2013-05-11 04:00:51

3

在外部驅動器連接時,我在Windows 7 x86 Pro(查詢序列號should be possible)時出現此錯誤。

這是我如何固定它:

  1. 獲取每個驅動器的ID:wmic diskdrive get deviceid /format:list

  2. 解析輸出,並獲得第一個ID。在我的情況,這是 \\.\PHYSICALDRIVE0

  3. 逃生的反斜槓,這樣的ID是\\\\.\\PHYSICALDRIVE0

  4. 使用其逃脫ID獲取驅動器的序列號:

    wmic diskdrive where deviceid='\\\\.\\PHYSICALDRIVE0' get serialnumber /format:list

  5. 重複步驟2 - 4,直到你有所有驅動器的序列號


編輯:上述不適用於我的Windows XP x86 Pro副本。

這並不:

wmic path win32_physicalmedia where tag='\\\\.\\PHYSICALDRIVE0' get serialnumber /format:list