Solved

Dell Service Tag

Posted on 2003-12-03
10
6,814 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
Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

 
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

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

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

Suggested Solutions

In days of old, returning something by value from a function in C++ was necessarily avoided because it would, invariably, involve one or even two copies of the object being created and potentially costly calls to a copy-constructor and destructor. A…
Written by John Humphreys C++ Threading and the POSIX Library This article will cover the basic information that you need to know in order to make use of the POSIX threading library available for C and C++ on UNIX and most Linux systems.   [s…
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.
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.

770 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