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.
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:
Get the ID of each drive: wmic diskdrive get deviceid /format:list
Parse the output and get the first ID. In my case this was
\\.\PHYSICALDRIVE0
Escape the backslashes so that the ID is \\\\.\\PHYSICALDRIVE0
Get the serial number of the drive using its escaped ID:
wmic diskdrive where deviceid='\\\\.\\PHYSICALDRIVE0' get
serialnumber /format:list
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