Solved

Retrieve Unique ID Number of Thumb Drive

Posted on 2007-03-29
6
7,706 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
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
Scale it in WD Gold

With up to ten times the workload capacity of desktop drives, WD Gold hard drives employ advanced technology to deliver among the best in reliability, capacity, power efficiency and performance.

 

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

[Webinar] Disaster Recovery and Cloud Management

Learn from Unigma and CloudBerry industry veterans which providers are best for certain use cases and how to lower cloud costs, how to grow your Managed Services practice in IaaS clouds, and how to utilize public cloud for Disaster Recovery

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
What is this Task? 4 87
iframe detection of parent window scale 20 60
egit plugin on eclipse 8 40
how to use laptop or pad camera in vb.net windows application 2 55
Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
Although it can be difficult to imagine, someday your child will have a career of his or her own. He or she will likely start a family, buy a home and start having their own children. So, while being a kid is still extremely important, it’s also …
This video teaches viewers how to encrypt an external drive that requires a password to read and edit the drive. All tasks are done in Disk Utility. Plug in the external drive you wish to encrypt: Make sure all previous data on the drive has been …
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…

867 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

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now