Solved

Serial Number from EEPROM on IBM PC

Posted on 2001-06-21
8
807 Views
Last Modified: 2011-09-20
Hello everyone,

I have been presented with a task to get the Asset ID or serial number from the EEPROM chip on all of
our IBM PCs.
Does anyone have any idea how I would go about retrieving this info either through code or a thirdparty DLL or OCX.


I know that most of the System Management software out there can retrieve this info (i.e. SMS, Tivoli,

etc.)

The machines in question are Windows 95. I know there is a download for WMI for W9X platforms but I

cannot install it on these machines. Another workaround is needed.

Thanks in advance,

I will add 1000 points to anyone who can help with this..for a total of 1300 points.

Jerry
0
Comment
Question by:jgravelle
8 Comments
 
LVL 32

Expert Comment

by:jhance
ID: 6214719
On a Win95 system you can call BIOS functions directly and/or access the hardware IO ports to get at the serial number data.  What is not clear from your question is just WHERE in the system the serial number is stored.  It would be quite uncommon to be stored in the BIOS chip which is often EEPROM or FLASH in many systems.  The "standard" PC doesn't have a unique serial number at all.  Now your IBM systems may have one but you'll need to figure out where it's stored before I can tell you how to get at it.
0
 
LVL 2

Expert Comment

by:pesst
ID: 6215530
if your system has smbios on it you can run the tool smbios2.exe to see if you have an asset id.

here is a link to where you can download it.

http://www.ibm.com/products/surepath/documents/utilities.html
0
 
LVL 2

Accepted Solution

by:
pesst earned 300 total points
ID: 6215548
the source code for it is also available for download on the same page(thats if it works of course)
0
 
LVL 2

Expert Comment

by:GloriousRain
ID: 6216676
go to link http://msdn.microsoft.com/library/psdk/wmisdk/clascomp_7khl.htm and look at Win32_PhysicalMemory class, then you should manage this class to get serialnumber  with memory type = 13 is EEPROM

or here from MSDN
<MSDN>
 
Platform SDK: Windows Management Instrumentation
Win32_PhysicalMemory
The Win32_PhysicalMemory WMI class represents a physical memory device located on a computer system as available to the operating system.

The following syntax is simplified from MOF code and includes all inherited properties.

class Win32_PhysicalMemory : CIM_PhysicalMemory
{
  string BankLabel  ;
  uint64 Capacity  ;
  string Caption  ;
  string CreationClassName  ;
  uint16 DataWidth  ;
  string Description  ;
  string DeviceLocator  ;
  uint16 FormFactor  ;
  boolean HotSwappable  ;
  datetime InstallDate  ;
  uint16 InterleaveDataDepth  ;
  uint32 InterleavePosition  ;
  string Manufacturer  ;
  uint16 MemoryType  ;
  string Model  ;
  string Name  ;
  string OtherIdentifyingInfo  ;
  string PartNumber  ;
  uint32 PositionInRow  ;
  boolean PoweredOn  ;
  boolean Removable  ;
  boolean Replaceable  ;
  string SerialNumber  ;
  string SKU  ;
  uint32 Speed  ;
  string Status  ;
  string Tag  ;
  uint16 TotalWidth  ;
  uint16 TypeDetail  ;
  string Version  ;
};
Properties
BankLabel
Data type: string
Access type: Read-only
Physically-labeled bank where the memory is located. This property is inherited from CIM_PhysicalMemory.

Examples: "Bank 0", "Bank A"

Capacity
Data type: uint64
Access type: Read-only
Total capacity of this physical memory, in bytes. This property is inherited from CIM_PhysicalMemory.

Caption
Data type: string
Access type: Read-only
Short description (one-line string) of the object. This property is inherited from CIM_ManagedSystemElement.

CreationClassName
Data type: string
Access type: Read-only
Qualifiers: Key, MaxLen(256)
Name of the first concrete class to appear in the inheritance chain used in the creation of an instance. When used with the other key properties of the class, the property allows all instances of this class and its subclasses to be uniquely identified. This property is inherited from CIM_PhysicalElement.

DataWidth
Data type: uint16
Access type: Read-only
Data width of the physical memory, in bits. A data width of 0 and a total width of 8 would indicate that the memory is solely used to provide error correction bits. This property is inherited from CIM_PhysicalMemory.

Description
Data type: string
Access type: Read-only
Description of the object. This property is inherited from CIM_ManagedSystemElement.

DeviceLocator
Data type: string
Access type: Read-only
Label of the socket or circuit board that holds this memory.

Example: "SIMM 3"

FormFactor
Data type: uint16
Access type: Read-only
Implementation form factor for the chip. This property is inherited from CIM_Chip. Value Meaning
0 Unknown
1 Other
2 SIP
3 DIP
4 ZIP
5 SOJ
6 Proprietary
7 SIMM
8 DIMM
9 TSOP
10 PGA
11 RIMM
12 SODIMM



HotSwappable
Data type: boolean
Access type: Read-only
Indicates whether a physical component can be hot-swapped if it is possible to replace the element with a physically different but equivalent one while the containing package has power applied to it, is 'on'). For example, a fan component may be designed to be hot-swapped. All components that can be hot-swapped are inherently removable and replaceable. This property is inherited from CIM_PhysicalComponent.

InstallDate
Data type: datetime
Access type: Read-only
Date and time the object was installed. A lack of a value does not indicate that the object is not installed. This property is inherited from CIM_ManagedSystemElement.

InterleaveDataDepth
Data type: uint16
Access type: Read-only
Unsigned 16-bit integer Maximum number of consecutive rows of data that are accessed in a single interleaved transfer from the memory device. If the value is 0, then the memory is not interleaved.

InterleavePosition
Data type: uint32
Access type: Read-only
Position of this physical memory in an interleave. For example, in a 2:1 interleave, a value of '1' would indicate that the memory is in the 'even' position. This property is inherited from CIM_PhysicalMemory. Value Meaning
0 Non-interleaved
1 First position
2 Second position



Manufacturer
Data type: string
Access type: Read-only
Name of the organization responsible for producing the physical element. This property is inherited from CIM_PhysicalElement.

MemoryType
Data type: uint16
Access type: Read-only
Type of physical memory. This property is inherited from CIM_PhysicalMemory. Value Meaning
1 Unknown
2 Other
3 DRAM
4 Synchronous DRAM
5 Cache DRAM
6 EDO
7 EDRAM
8 VRAM
9 SRAM
10 RAM
11 ROM
12 Flash
13 EEPROM
14 FEPROM
15 EPROM
16 CDRAM
17 3DRAM
18 SDRAM
19 SGRAM



Model
Data type: string
Access type: Read-only
Name by which the physical element is generally known. This property is inherited from CIM_PhysicalElement.

Name
Data type: string
Access type: Read-only
Label by which the object is known. When subclassed, the property can be overridden to be a key property. This property is inherited from CIM_ManagedSystemElement.

OtherIdentifyingInfo
Data type: string
Access type: Read-only
Additional data, beyond asset tag information, that could be used to identify a physical element. One example is bar code data associated with an element that also has an asset tag. Note that if only bar code data is available and is unique/able to be used as an element key, this property would be NULL and the bar code data used as the class key, in the tag property. This property is inherited from CIM_PhysicalElement.

PartNumber
Data type: string
Access type: Read-only
Part number assigned by the organization responsible for producing or manufacturing the physical element. This property is inherited from CIM_PhysicalElement.

PositionInRow
Data type: uint32
Access type: Read-only
Position of the physical memory in a 'row'. For example, if it takes two 8-bit memory devices to form a 16-bit row, then a value of '2' means that this memory is the second device. 0 is an invalid value for this property. This property is inherited from CIM_PhysicalMemory.

PoweredOn
Data type: boolean
Access type: Read-only
Indicates whether the physical element is powered on. This property is inherited from CIM_PhysicalElement.

Removable
Data type: boolean
Access type: Read-only
Indicates whether a physical component is removable (if it is designed to be taken in and out of the physical container in which it is normally found, without impairing the function of the overall packaging). A component can still be removable if power must be 'off' in order to perform the removal. If power can be 'on' and the component removed, then the element is removable and can be hot-swapped. For example, an upgradable processor chip is removable. This property is inherited from CIM_PhysicalComponent.

Replaceable
Data type: boolean
Access type: Read-only
Indicates whether a physical component is replaceable (if it is possible to replace, FRU or upgrade, the element with a physically different one). For example, some computer systems allow the main processor chip to be upgraded to one of a higher clock rating. In this case, the processor is said to be replaceable. All removable components are inherently replaceable. This property is inherited from CIM_PhysicalComponent.

SerialNumber
Data type: string
Access type: Read-only
Manufacturer-allocated number used to identify the physical element. This property is inherited from CIM_PhysicalElement.

SKU
Data type: string
Access type: Read-only
Stock-keeping unit number for the physical element. This property is inherited from CIM_PhysicalElement.

Speed
Data type: uint32
Access type: Read-only
Speed of the physical memory, in nanoseconds. This property is inherited from CIM_PhysicalMemory.

Status
Data type: string
Access type: Read-only
Current status of the object. Various operational and non-operational statuses can be defined. Operational statuses include: "OK", "Degraded", and "Pred Fail" (an element, such as a SMART-enabled hard drive, may be functioning properly but predicting a failure in the near future). Non-operational statuses include: "Error", "Starting", "Stopping", and "Service". The latter, "Service", could apply during mirror-resilvering of a disk, reload of a user permissions list, or other administrative work. Not all such work is online, yet the managed element is neither "OK" nor in one of the other states. This property is inherited from CIM_ManagedSystemElement. Values are:
"OK"
"Error"
"Degraded"
"Unknown"
"Pred Fail"
"Starting"
"Stopping"
"Service"

Tag
Data type: string
Access type: Read-only
Qualifiers: Key, MaxLen(256)
Unique identifier of the physical memory device represented by an instance of Win32_PhysicalMemory. This property is inherited from CIM_PhysicalElement.

Example: "Physical Memory 1"

TotalWidth
Data type: uint16
Access type: Read-only
Total width, in bits, of the physical memory, including check or error correction bits. If there are no error correction bits, the value in this property should match that specified for the DataWidth property. This property is inherited from CIM_PhysicalMemory.

TypeDetail
Data type: uint16
Access type: Read-only
Type of physical memory represented. Value
(Dec/Hex) Meaning
1
0x1 Reserved
2
0x2 Other
4
0x4  Unknown
8
0x8 Fast-paged
16
0x10 Static column
32
0x20 Pseudo-static
64
0x40 RAMBUS
128
0x80 Synchronous
256
0x100 CMOS
512
0x200 EDO
1024
0x400 Window DRAM
2048
0x800 Cache DRAM
4096
0x1000 Non-volatile



Version
Data type: string
Access type: Read-only
Version of the physical element. This property is inherited from CIM_PhysicalElement.

Remarks
The Win32_PhysicalMemory class is derived from CIM_PhysicalMemory.

See Also
Computer System Hardware Classes

Microsoft Platform SDK, February 2001 Edition.
This content last built on Wednesday, February 07, 2001.
 See Also
Computer System Hardware Classes
<MSDN>
0
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.

 
LVL 1

Author Comment

by:jgravelle
ID: 6222107
Thanks for your help...works like a charm. Enjoy the 1300 points.
0
 
LVL 22

Expert Comment

by:nietod
ID: 6222829
Does anyone know if this accepted answer was posted as a comment or as an answer?
0
 
LVL 2

Expert Comment

by:pesst
ID: 6222907
comment
0
 
LVL 22

Expert Comment

by:nietod
ID: 6222919
Thanks.
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

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…
Many modern programming languages support the concept of a property -- a class member that combines characteristics of both a data member and a method.  These are sometimes called "smart fields" because you can add logic that is applied automaticall…
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.

706 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

17 Experts available now in Live!

Get 1:1 Help Now