wmic diskdrive получает серийный номер -> неверный вывод xml - PullRequest
5 голосов
/ 15 февраля 2012

Я хочу прочитать имя и серийный номер моих жестких дисков.

Я наткнулся на wmic, но у меня проблемы.Я думаю, что эти две команды должны сделать трюк, но я получаю только сообщение:

Invalid Xml-Content. //(Translated)

wmic path win32_physicalmedia get serialnumber

или

wmic DISKDRIVE GET SerialNumber

Я попробовал следующее также:

wmic DISKDRIVE GET SerialNumber /FORMAT:list
wmic DISKDRIVE GET SerialNumber /FORMAT:xml.xsl
wmic DISKDRIVE GET SerialNumber > c:\test.txt

Есть идеи, что я делаю не так?


Решение:

Спасибо JPBlanc, через /?Я обнаружил, что SerialNumber даже не существует.Теперь я использую

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

, который дает правильный результат.

Ответы [ 3 ]

3 голосов
/ 03 мая 2012

эта проблема возникает из-за того, что синтаксический анализатор XML рассматривает управляющие символы, включенные в серийный номер некоторых накопителей, как недействительные.

3 голосов
/ 26 мая 2014

Я получал эту ошибку в Windows 7 x86 Pro (где запрос серийного номера должен быть возможен ) при подключении внешнего диска.

Вот как я это исправил:

  1. Получите ID каждого диска: wmic diskdrive get deviceid /format:list

  2. Разобрать вывод и получить первый идентификатор. В моем случае это было \\.\PHYSICALDRIVE0

  3. Избегайте обратной косой черты, чтобы идентификатор был \\\\.\\PHYSICALDRIVE0

  4. Получить серийный номер привода, используя его экранированный идентификатор:

    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
3 голосов
/ 16 февраля 2012

Вы просто ошибаетесь с помощью командной строки 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 на один из других форматов.

...