wmic diskdrive получить серийный номер -> неверный вывод xml

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

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

Invalid Xml-Content. //(Translated)

wmic path win32_physicalmedia get serialnumber

or

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

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


person user1210404    schedule 15.02.2012    source источник


Ответы (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 одним из других форматов.

person JPBlanc    schedule 15.02.2012
comment
soo wmic diskdrive get serialnumber производит вывод, который мне нужен, но у меня есть 6 разных дисков, и он не говорит мне, какой серийный номер принадлежит какому диску ?? - person oldboy; 25.05.2019
comment
Возможно, вы можете взглянуть на модель WMIC DISKDRIVE GET Name,SerialNumber,model - person JPBlanc; 27.05.2019
comment
я понял, как получить необходимую информацию с помощью HWinfo, но если мне понадобится в будущем - person oldboy; 27.05.2019

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

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

  1. Получите идентификатор каждого диска: 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
person Matthias Braun    schedule 26.05.2014

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

person jue    schedule 03.05.2012
comment
Конечно. Доступно исправление для исправления WMIC: support.microsoft.com/kb/2664203 - person AlcubierreDrive; 11.05.2013