wmic 磁盘驱动器获取序列号 ->无效的 xml 输出

发布于 2025-01-05 05:06:40 字数 707 浏览 2 评论 0原文

我想读取硬盘的名称和序列号。

我偶然发现了 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

它给出了正确的结果。

I want to read the name and the serial number of my hard drives.

I stumbled upon wmic but I'm having troubles. I guess these two commands should do the trick, but I only get the message:

Invalid Xml-Content. //(Translated)

wmic path win32_physicalmedia get serialnumber

or

wmic DISKDRIVE GET SerialNumber

I tried the following as well:

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

Any ideas on what I'm doing wrong?


Solution:

Thanks JPBlanc, via the /? command I've found out that SerialNumber doesn't even exist. I now use

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

which gives the correct result.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

半衬遮猫 2025-01-12 05:06:40

我在 Windows 7 x86 Pro 上遇到此错误(查询序列号 应该可以)当连接外部驱动器时。

这就是我修复它的方法:

  1. 获取每个驱动器的 ID:wmic diskdrive get deviceid /format:list

  2. 解析输出并获取第一个 ID。就我而言,这是
    \\.\PHYSICALDRIVE0

  3. 转义反斜杠,以便 ID 为 \\\\.\\PHYSICALDRIVE0

  4. 使用转义 ID 获取驱动器的序列号:

    wmic 磁盘驱动器,其中 deviceid='\\\\.\\PHYSICALDRIVE0' 获取
    Serialnumber /format:list

  5. 重复步骤 2 - 4,直到获得所有驱动器的序列号


编辑:以上内容不'无法在我的 Windows XP x86 Pro 上运行。

这会:

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

I was getting this error on Windows 7 x86 Pro (where querying the serial number should be possible) when an external drive was connected.

This is how I fixed it:

  1. Get the ID of each drive: wmic diskdrive get deviceid /format:list

  2. Parse the output and get the first ID. In my case this was
    \\.\PHYSICALDRIVE0

  3. Escape the backslashes so that the ID is \\\\.\\PHYSICALDRIVE0

  4. Get the serial number of the drive using its escaped ID:

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

  5. Repeat steps 2 - 4 until you have the serial numbers of all drives


Edit: The above doesn't work on my copy of Windows XP x86 Pro.

This does:

wmic path win32_physicalmedia where tag='\\\\.\\PHYSICALDRIVE0' get serialnumber /format:list
夜访吸血鬼 2025-01-12 05:06:40

您只是在使用 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 替换为其他之一格式。

You are just making a mistake usin WMIC command line, WMIC DISKDRIVE GET SerialNumber /Format /? gives you keywords:

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

you can try :

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

You can replace RAWXML by one of the others formats.

雨夜星沙 2025-01-12 05:06:40

出现此问题的原因是 XML 解析器将某些驱动器序列号中包含的控制字符视为无效。

this issue occurs because the XML parser treats the control characters that are included in the serial number of some drives as invalid.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文