Solved

Dell Service Tag

Posted on 2003-12-03
10
6,815 Views
Last Modified: 2008-02-01
Hi There,

Is there any way to access the Dell Service Tag programmically?

OS : WinXp
Visual Studio 6

Cheers
0
Comment
Question by:TopCat_UK
  • 4
  • 3
  • 2
  • +1
10 Comments
 
LVL 32

Assisted Solution

by:jhance
jhance earned 100 total points
ID: 9865715
I've not seen this documented but it must be possible because the Dell support program reads it.  My guess is that it's stored in the registry somewhere.

On my Dell, I found it under:

HKLM\Software\Dell Computer Corporation\OpenManage\Resolution Assistant\...

Should get you pointed in the right direction.

***********************************************************************************
                                   COMMENT DISCLAIMER
***********************************************************************************
   CAUTION - CAUTION - CAUTION - CAUTION - CAUTION - CAUTION - CAUTION - CAUTION
***********************************************************************************
                           READ THIS COMMENT AT YOUR OWN RISK

 This helpful comment MAY include straight talk relating to or about your question.
   If you are easily offended by such talk, please disregard this comment in its
                                        entirely.
***********************************************************************************
                               Thank you for your cooperation
***********************************************************************************
0
 
LVL 1

Author Comment

by:TopCat_UK
ID: 9865758
I have checked the registry.  I have a different hive to you, because openmanage/client is all I have.  
I may be missing the Resolution Assistant because the correct dell software isn't included????
0
 
LVL 32

Expert Comment

by:jhance
ID: 9865771
If you re-installed Windows, the Dell service tag will not be stored on the system.  I think SOME Dell models have the service tag programmed into the BIOS/CMOS memory and this could be retrieved by a BIOS RAM readout application but you'd need to do some detective work to find the actual place they store the data.

As I said, however, I just looked at my specific Dell and found the service tag in the registry.  Did you search your entire registry for your service tag #?

***********************************************************************************
                                   COMMENT DISCLAIMER
***********************************************************************************
   CAUTION - CAUTION - CAUTION - CAUTION - CAUTION - CAUTION - CAUTION - CAUTION
***********************************************************************************
                           READ THIS COMMENT AT YOUR OWN RISK

 This helpful comment MAY include straight talk relating to or about your question.
   If you are easily offended by such talk, please disregard this comment in its
                                        entirely.
***********************************************************************************
                               Thank you for your cooperation
***********************************************************************************
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 1

Author Comment

by:TopCat_UK
ID: 9865799
The registry doesn't contain the tag.

I think I am going to have to write an app to read the BIOS/CMOS memory.

Bummer.
0
 
LVL 1

Author Comment

by:TopCat_UK
ID: 9865926
I think the answer lies in DSMBIOS accessed via dells dsmbios.dll.
0
 
LVL 32

Expert Comment

by:jhance
ID: 9865946
That does look promising.  Run DSMBIOS.DLL through:

DUMPBIN with the /EXPORTS option and see what kind of functions this DLL is exporting.  Could help you find the way to do it.

***********************************************************************************
                                   COMMENT DISCLAIMER
***********************************************************************************
   CAUTION - CAUTION - CAUTION - CAUTION - CAUTION - CAUTION - CAUTION - CAUTION
***********************************************************************************
                           READ THIS COMMENT AT YOUR OWN RISK

 This helpful comment MAY include straight talk relating to or about your question.
   If you are easily offended by such talk, please disregard this comment in its
                                        entirely.
***********************************************************************************
                               Thank you for your cooperation
***********************************************************************************
0
 
LVL 16

Accepted Solution

by:
Kyle Schroeder earned 150 total points
ID: 10147748
We use code similar to this to retrieve the information from WMI.  I believe there is a WMI entry for serial number too, though it is not included in this report (a modified version of this script is used after dumping an OS image to a machine before running our customized mini-setup wizard, to install the proper drivers for a specific model, etc).  Note that this is of course VBScript, not C++, but the WMI methods may be the way to go.  This may reveal something useful also:
http://www.faqshop.com/sms/default.htm?http://faqshop.com/sms/windows/dell%20dmi%20cli%20asset%20info.htm

' COMMENT: Example of using WMI to retrieve the computer model information
'
'==========================================================================
Dim wShell
Dim oWMI
Dim oEnum
Dim oInst
Dim sManufacturer, sModel, sChassis

Set wShell = CreateObject("Wscript.Shell")
Set oWMI = GetObject("WinMgmts:root/cimv2")

Set oEnum = oWMI.ExecQuery("SELECT Manufacturer, Model from Win32_ComputerSystem")
For Each oInst in oEnum
     sManufacturer = oInst.Manufacturer
     sModel = oInst.Model
Next

Set oEnum = oWMI.ExecQuery("SELECT ChassisTypes From Win32_SystemEnclosure")
For Each oInst in oEnum
     For each i in oInst.chassistypes
          sChassis = i
     Next
Next

Select Case sChassis
     Case 1: sChassis = "Other"
     Case 2 : sChassis = "Unknown"
     Case 3 : sChassis = "Desktop"
     Case 4 : sChassis = "Low Profile Desktop"
     Case 5 : sChassis = "Pizza Box"
     Case 6 : sChassis = "Mini Tower"
     Case 7 : sChassis = "Tower"
     Case 8 : sChassis = "Portable"
     Case 9 : sChassis = "Laptop"
     Case 10 : sChassis = "Notebook"
     Case 11 : sChassis = "Hand Held"
     Case 12 : sChassis = "Docking Station"
     Case 13 : sChassis = "All in One"
     Case 14 : sChassis = "Sub Notebook"
     Case 15 : sChassis = "Space-Saving"
     Case 16 : sChassis = "Lunch Box"
     Case 17 : sChassis = "Main System Chassis"
     Case 18 : sChassis = "Expansion Chassis"
     Case 19 : sChassis = "SubChassis"
     Case 20 : sChassis = "Bus Expansion Chassis"
     Case 21 : sChassis = "Peripheral Chassis"
     Case 22 : sChassis = "Storage Chassis"
     Case 23 : sChassis = "Rack Mount Chassis"
     Case 24 : sChassis = "Sealed-Case PC"
End Select

Dim sMsg
sMsg = "WMI returned the following computer model information." & vbCrLf & vbCrLf &_
          "Chassis: |" & sChassis & "|" & vbCrLf &_
          "Manufacturer: |" & sManufacturer & "|" & vbcrlf &_
          "Model: |" & sModel & "|" & vbCrLf & vbCrLf &_
          "NOTE: ""|"" characters were added in case leading or " & vbCrLf &_
          "trailing spaces exist.  They are not part of the information" & vbCrLf &_
          "stored in WMI."

MsgBox sMsg,,"WMI Model Information"

Set oInst = Nothing
Set oEnum = Nothing
Set oWMI = Nothing
Set wShell = Nothing

dogztar
0
 
LVL 5

Expert Comment

by:migoEX
ID: 10333668
No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:

Split between jhance and dogztar.

Please leave any comments here within the next four days.

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!

migoEX
EE Cleanup Volunteer
0
 
LVL 1

Author Comment

by:TopCat_UK
ID: 10340723
Agree. Thanks Guys.
0
 
LVL 5

Expert Comment

by:migoEX
ID: 10340766
TopCat_UK: So why don't you do it by yourself? Just click on "split points" link.
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

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

Suggested Solutions

Errors will happen. It is a fact of life for the programmer. How and when errors are detected have a great impact on quality and cost of a product. It is better to detect errors at compile time, when possible and practical. Errors that make their wa…
Container Orchestration platforms empower organizations to scale their apps at an exceptional rate. This is the reason numerous innovation-driven companies are moving apps to an appropriated datacenter wide platform that empowers them to scale at a …
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.

789 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