Solved

Retrieve Unique ID Number of Thumb Drive

Posted on 2007-03-29
6
7,705 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:mayankeagle
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
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 

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

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

This article is an update and follow-up of my previous article:   Storage 101: common concepts in the IT enterprise storage This time, I expand on more frequently used storage concepts.
The article will include the best Data Recovery Tools along with their Features, Capabilities, and their Download Links. Hope you’ll enjoy it and will choose the one as required by you.
This tutorial will walk an individual through the process of installing the necessary services and then configuring a Windows Server 2012 system as an iSCSI target. To install the necessary roles, go to Server Manager, and select Add Roles and Featu…
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

707 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

13 Experts available now in Live!

Get 1:1 Help Now