我想读取硬盘驱动器的名称和序列号。
我偶然发现了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
给出了正确的结果。
答案 0 :(得分: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
。
答案 1 :(得分:3)
出现此问题是因为XML解析器将某些驱动器的序列号中包含的控制字符视为无效。
答案 2 :(得分:3)
当连接外部驱动器时,我在Windows 7 x86 Pro(查询序列号should be possible)时收到此错误。
这就是我修复它的方法:
获取每个驱动器的ID:wmic diskdrive get deviceid /format:list
解析输出并获取第一个ID。就我而言,这是
\\.\PHYSICALDRIVE0
转义反斜杠,使ID为\\\\.\\PHYSICALDRIVE0
使用转义ID获取驱动器的序列号:
wmic diskdrive where deviceid='\\\\.\\PHYSICALDRIVE0' get
serialnumber /format:list
重复步骤2 - 4,直到您拥有所有驱动器的序列号
编辑:上述内容在我的Windows XP x86 Pro副本上无效。
这样做:
wmic path win32_physicalmedia where tag='\\\\.\\PHYSICALDRIVE0' get serialnumber /format:list