Motherboard ID - WMI C++ - Reliable?

后端 未结 1 990
逝去的感伤
逝去的感伤 2021-01-07 03:51

I\'m using WMI in C++ classes to retrieve the serial number of my motherboard. The query is the following :

\"SELECT SerialNumber FROM Win32_BaseBoard\"
         


        
1条回答
  •  独厮守ぢ
    2021-01-07 04:24

    What I have found is that retrieving the serial number of the mother board can result in very different results depending on the manufacturer and the distribution channel. Some manufacturers who sell to the end customer and have good support processes with equipment repair will be consistent about setting the serial number information for WMI. Other manufacturers providing OEM type equipment will depend on the OEM to set the serial number.

    Since the serial number is within a particular domain or name space based on manufacturer, it is possible though improbable that different manufacturers may have used the same serial number so you would really need to know both manufacturer as well as serial number.

    Some point of sale terminals are consistent about the serial number and part of the procedure for mother board replacement in the case of a failed mother board is to set the serial number of the replacement board to the serial number of the board being replaced. This implies that someone could have the same serial number for several pieces of equipment similar to doing LAN NIC MAC spoofing.

    The WMI query will make a difference as to the serial number provided. In addition to the serial number there is also an asset tag property as well.

    Looking at the documentation for Win32_MotherboardDevice and trying a few properties, there does not seem to be much useful data there, certainly not something similar to a unique serial number.

    On a Dell laptop With Windows XP when I run a C++ application that uses WMI to see the results of several different Select WMI queries for several different properties I get the following results:

    Connected to ROOT\CIMV2 WMI namespace
    
    Query for SELECT * FROM Win32_SystemEnclosure
      SMBIOS SerialNumber: 49495G1
      SMBIOS Name: System Enclosure
      SMBIOS SMBIOSAssetTag:
      SMBIOS Manufacturer: Dell Inc.
    
    Query for SELECT * FROM Win32_BaseBoard
      SMBIOS SerialNumber: .49495G1.CN486438441035.
      SMBIOS Product: 0UY141
      SMBIOS Name: Base Board
      SMBIOS Manufacturer: Dell Inc.
    
    Query for SELECT * FROM Win32_BIOS
      SMBIOS SerialNumber: 49495G1
      SMBIOS Name: Phoenix ROM BIOS PLUS Version 1.10 A10
      SMBIOS Manufacturer: Dell Inc.
    
    Query for SELECT * FROM Win32_ComputerSystem
      SMBIOS Name: CIT-31204E1FF03
      SMBIOS Manufacturer: Dell Inc.
    
    Query for SELECT * FROM Win32_ComputerSystemProduct
      SMBIOS Name: Latitude D830
      SMBIOS IdentifyingNumber: 49495G1
      SMBIOS UUID: 4C4C4544-0039-3410-8039-B4C04F354731
    

    Looking on the bottom of this laptop I see a sticker that has a bar code along with printing that says "SERVICE TAG 49495G1" so for this laptop the serial number retrieved is the service tag identifier. I can go to the Dell website and look up this service tag in the support area.

    A new point of sale terminal meant for resale with POS Ready 7 version of Windows provides the following output with the same C++ WMI application. This is similar to the output from a PC I constructed myself from purchased parts which also did not have serial numbers That PC is running Windows 8.1.

    Connected to ROOT\CIMV2 WMI namespace
    
    Query for SELECT * FROM Win32_SystemEnclosure
      SMBIOS SerialNumber: None
      SMBIOS Name: System Enclosure
      SMBIOS SMBIOSAssetTag: None
      SMBIOS Manufacturer: To Be Filled By O.E.M.
    
    Query for SELECT * FROM Win32_BaseBoard
      SMBIOS SerialNumber: None
      SMBIOS Product: EIN70-SAM
      SMBIOS Name: Base Board
      SMBIOS Manufacturer: INTEL Corporation
    
    Query for SELECT * FROM Win32_BIOS
      SMBIOS SerialNumber: None
      SMBIOS Name: BIOS Date: 10/15/13 20:06:15 Ver: 04.06.05
      SMBIOS Manufacturer: American Megatrends Inc.
    
    Query for SELECT * FROM Win32_ComputerSystem
      SMBIOS Name: GENPOSA-1
      SMBIOS Manufacturer: To be filled by O.E.M.
    
    Query for SELECT * FROM Win32_ComputerSystemProduct
      SMBIOS Name: EIN70-SAM
      SMBIOS IdentifyingNumber: None
      SMBIOS UUID: 03000200-0400-0500-0006-000700080009
    

    0 讨论(0)
提交回复
热议问题