Solved

Retrieve Unique ID Number of Thumb Drive

Posted on 2007-03-29
6
7,716 Views
Last Modified: 2013-11-14
Using a .bat file and the command line, (Windows XP) I have been asked to try to get the ID# off of a USB thumb drive.  I know how to do this for the hard drive, but now my client wants the unique identifier off of a thumb drive.
0
Comment
Question by:fmwebschool
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 30

Expert Comment

by:Mayank S
ID: 18818410
I guess if you attach something to the USB port, you can talk to it using Java Comm API and that will give you a port identifier for the same. Or see

http://today.java.net/pub/a/today/2006/07/06/java-and-usb.html
0
 
LVL 26

Expert Comment

by:lnkevin
ID: 18845429
Plug your USB in any PC, then download and save SIW program in your C:
Double click on the program, locate storage devices. Under interface tab, you will see USB and its ID

http://www.shareup.com/SIW-download-23742.html

K
0
 
LVL 41

Accepted Solution

by:
graye earned 500 total points
ID: 18859000
You can get the volume serial number (Ok, not exacly the same as the device ID) with a simple shell script using WMI

Here is an exmple to demonstrate the concepts.

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_LogicalDisk",,48)
For Each objItem in colItems
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Win32_LogicalDisk instance"
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Caption: " & objItem.Caption
    Wscript.Echo "Description: " & objItem.Description
    Wscript.Echo "DeviceID: " & objItem.DeviceID
    Wscript.Echo "DriveType: " & objItem.DriveType
    Wscript.Echo "Name: " & objItem.Name
    Wscript.Echo "PNPDeviceID: " & objItem.PNPDeviceID
    Wscript.Echo "VolumeName: " & objItem.VolumeName
    Wscript.Echo "VolumeSerialNumber: " & objItem.VolumeSerialNumber
Next
0
Don't Cry: How Liquid Web is Ensuring Security

WannaCry is just the start. Read how Liquid Web is protecting itself and its customers against new threats.

 

Author Comment

by:fmwebschool
ID: 18931954
Thank you so much for the code!
0
 

Author Comment

by:fmwebschool
ID: 18932936
Hi Graye,

Recently you posted on Experts exchange code to retrieve the volume serial number of a thumbdrive - your code:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_LogicalDisk",,48)
For Each objItem in colItems
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Win32_LogicalDisk instance"
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Caption: " & objItem.Caption
    Wscript.Echo "Description: " & objItem.Description
    Wscript.Echo "DeviceID: " & objItem.DeviceID
    Wscript.Echo "DriveType: " & objItem.DriveType
    Wscript.Echo "Name: " & objItem.Name
    Wscript.Echo "PNPDeviceID: " & objItem.PNPDeviceID
    Wscript.Echo "VolumeName: " & objItem.VolumeName
    Wscript.Echo "VolumeSerialNumber: " & objItem.VolumeSerialNumber


Is it posible to retrieve the actual hardware serial number of the parent device for that volume?  That would be amazingly helpful!

Thank you so much for your time, and any guidance you can give.

In Kindness
Stephen K Knight
0
 
LVL 41

Expert Comment

by:graye
ID: 18936058
That's bit more complicated to do...  it takes a lot of low-level programming to get the "String Descriptor" from the USB Device Driver.  Also not all usb devices support serial numbers.    

About the best you can do is to use the identifier that Microsoft generates during it's Plug and Play negotiation.  It is generally understood (but not documented) that the PnPDeviceID is generated the same way on all PCs and all versions of Windows.

Take a look at the PnPDeviceIDs of two "identical" USB devices, notice where the values differ:

PNPDeviceID: USBSTOR\DISK&VEN_&PROD_USB_FLASH_MEMORY&REV_6.50\03716B60A130B8F8&0
PNPDeviceID: USBSTOR\DISK&VEN_&PROD_USB_FLASH_MEMORY&REV_6.50\0B317B6080E24882&0
                                                                                                                         ^^^^^^^^^^^^^
Although technically, the "03716B60A130B8F8" and "0B317B6080E24882" values are not the device serial number, they will probably do in your case.

You'd get the PnPDeviceID from the "raw" disk drive using the Win32_DiskDrive class

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_DiskDrive",,48)
For Each objItem in colItems
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Win32_DiskDrive instance"
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Caption: " & objItem.Caption
    Wscript.Echo "Description: " & objItem.Description
    Wscript.Echo "DeviceID: " & objItem.DeviceID
    Wscript.Echo "InterfaceType: " & objItem.InterfaceType
    Wscript.Echo "Manufacturer: " & objItem.Manufacturer
    Wscript.Echo "Model: " & objItem.Model
    Wscript.Echo "Name: " & objItem.Name
    Wscript.Echo "PNPDeviceID: " & objItem.PNPDeviceID
Next
0

Featured Post

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Is your phone running out of space to hold pictures?  This article will show you quick tips on how to solve this problem.
What do responsible coders do? They don't take detrimental shortcuts. They do take reasonable security precautions, create important automation, implement sufficient logging, fix things they break, and care about users.
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
Six Sigma Control Plans

624 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question