How to locate and clean Advanced Client Duplicate GUIDs in SMS 2003 (837374)



The information in this article applies to:

  • Microsoft Systems Management Server 2003

SUMMARY

This article describes how to locate and clean Microsoft Systems Management Server (SMS) 2003 advanced clients that have the same SMS Unique ID (SMSID), also known as a Globally Unique Identifier (GUID). The SMSID is used to identify individual SMS 2003 clients and is unique for each SMS 2003 advanced client and for each SMS 2003 legacy client.

INTRODUCTION

If you have SMS 2003 advanced clients that have duplicate SMSIDs, you may experience unexpected events. For example, you may receive incorrect inventory reports, and the wrong SMS 2003 advanced client may run advertisements. Duplicate SMSIDs are frequently referred to as "duplicate GUIDs."

The SMS 2003 environment may contain SMS 2003 advanced clients that have duplicate SMSIDs if one or more of the following conditions are true:
  • A duplicate SMSID problem may have existed in the SMS 2.0 environment before you upgraded to the SMS 2003 advanced client.
  • A duplicate SMSID problem may have existed on an SMS 2003 legacy client before you upgraded to the SMS 2003 advanced client.

MORE INFORMATION

If the following conditions are true, the upgraded advanced client uses the SMSID that is contained in the %windir%\Smscfg.ini file as the SMS 2003 advanced client unique identifier:
  • You upgrade either a Microsoft Systems Management Server (SMS) version 2.0 client or an SMS 2003 legacy client to an SMS 2003 advanced client.
  • The computer that you are upgrading already contains an Smscfg.ini file.
Typically, this scenario does not cause a problem. However, if either of the following conditions is true, a duplicate SMSID problem occurs in the SMS 2003 environment:
  • The Smscfg.ini file is not unique to the individual computer
  • You clone a computer image that contains an Smscfg.ini file.
Typically, the SMS 2003 advanced client is designed to detect that it is no longer operating on the computer it was originally installed on. It does this by comparing on startup certain properties that identify the hardware with the values of these properties on the previous startup. When the detection process is completed, the SMS 2003 advanced client generates a new SMSID for itself. The SMS 2003 advanced client does this by running a comparison process on startup. The SMS 2003 advanced client compares certain properties that identify the hardware with the values of these properties from the previous startup. If these properties change significantly, a new SMSID is generated. Additionally, the old SMSID and the date that the SMSID was regenerated are saved. The previous SMSID and the change date are reported in the Discovery Data Record (DDR) that is sent to the SMS 2003 site server. This information also appears in the following System Resource properties:
  • Previous SMS UUID
  • SMS UUID Change Date
This process works only if a change was detected by the SMS 2003 advanced client. If the SMS 2003 advanced client has a non-unique Smscfg.ini file, no change is detected and the SMS 2003 advanced client continues to use the original SMSID.

The Smscfg.ini file stores the following information:
  • The current SMSID
  • The identifying hardware properties
  • Any previous SMSID
You can find the Smscfg.ini file in the Windows directory.

You can find information about the property detection and regeneration procedures in the ClientIDManagerStartup.log file. You can find this file in the client logs directory.

How hardware detection works

When the SMS Agent host (Ccmexec.exe) starts, it looks at three values for the hardware identification information. If any one of these values has changed, the SMS client will generate a new SMSID. The values are as follows:
  • Smbios serial number
    If changed, a new SMSID is created
  • Machine SID
    If changed, a new SMSID is created
  • Hardware id
    The Hardware ID mechanism examines 10 computer properties and generates an ID of the Properties by combining hashes of the properties into a single ID. If a certain number of these properties change, the computer is considered, and a new SMSID is created. The number of properties is 3 out of 10 for a desktop computer and 2 of 7 for a laptop computer.

    Note The rate of change can be a factor. Consider the following scenario. If 6 properties changed, but the changes were spread evenly over 3 calculations of the hardware id. SMS would not consider this a hardware change and a new SMSID would not be created.

    The properties used are the same as the properties used in windows product activation. The properties are as follows:
    • FirstDriveSerial
    • MACAddress
    • CDROMDevice
    • DisplayAdapter
    • HwidVersion
    • ProcessorSerial
    • DiskDevice
    • SCSIAdapter
    • DiskAdapter
    • ProcessorType
    • RAMSizeMb
    • Dockable
You can see the value that changed and that caused us to create a new ID by looking in the ClientIDManagerStartup.log file.

How SMS 2003 handles duplicate SMSIDs

If a client's operating system is re-imaged and the client starts reporting Discovery Data Records (DDRs) that have a different SMSID to the SMS Site Server, SMS will not recognize the computer as a previous SMS client. In this case, the Discovery Data Manager (DDM) will create a new client record in the database.

Before this occurs however, Discovery Data Manager will try to locate the client by another method.

If the computer's name and at least one of its MAC addresses remains the same, SMS will be able to use these key properties to recognize the computer as an existing client, and update the old record with the new SMSID. It can take a some time for the SMSID transition to be complete and during that time programs advertised to the client will not be available.

This matching can be circumvented , if the DDR from the client contains a previous SMSID value. When DDM tries to locate a record based on key properties, it will explicitly exclude any database records where the SMSID matches the previous SMSID value in the DDR. This makes sure that if a new SMSID is generated by the client, it will receive a new identity on the server.

If an existing SMS 2.0 client already had a duplicate ID before the upgrade, the duplicate ID will be retained and will have to be identified and cleaned up manually.

How to find SMS 2003 advanced clients that have duplicate SMSIDs

To determine whetheryour environment has a duplicate SMSID problem , you must run the Computers that may share the same SMS Unique ID report. To do this, follow these steps:
  1. Click Start, point to Programs, point to Systems Management Server, and then click SMS Administrator Console.
  2. In the SMS administrator console, expand Site Database, expand Reporting, and then click Reports.
  3. In the right-pane of the SMS administrator console, right-click Computers that may share the same SMS Unique ID, and then click All Tasks.
  4. Click Run, and then click SiteServerName, where SiteServerName is the name of the SMS 2003 site server.
The SMS 2.0 Administrator's Guide contains the following SQL query to identify duplicates.
select * from sms_g_system_SYSTEM as g INNER JOIN sms_gh_system_SYSTEM as h on g.ResourceId = h.ResourceId where g.Name <> h.Name
The support Web cast and associated documention for "Handling Duplicate Systems in SMS 2.0" contains additional methods for identifying duplicates.

For more information about handling duplicate systems in SMS 2.0 visit the following Microsoft Web site:
Support WebCast: Handling Duplicate Systems in SMS 2.0
http://support.microsoft.com/default.aspx?kbid=324570

How to create a new SMSID

If the Computers that may share the same SMS Unique ID report shows that any SMS 2003 advanced clients are using the same SMSID, we recommend that you use the Transfer SMS ID tool (Tranguid.exe) to resolve the problem. The Transfer SMS ID tool is available in the SMS 2003 Toolkit 1.

The Transfer SMS ID tool extracts part of the Smscfg.ini file that contains the SMSID. The Transfer SMS ID tool then creates a new Smscfg.ini file that contains only the SMSID information. Additionally, the Transfer SMS ID tool can create an Smscfg.ini file that adds the SMSID file in the Previous SMSID property. This process makes sure that the client has a new record in the database.

The Transfer SMS ID tool forces the client to generate a new SMSID and to receive a new record in the database. This process occurs after the client has been installed and has started reporting.

If all the following conditions are true, you must run the Transfer SMS ID tool with the /r switch and then restart the SMS client service:
  • The computer was upgraded from an SMS 2.0 client.
  • This SMS 2.0 client shared the SMSID with other computers.
To run the Transfer SMS ID tool with the /r switch and then restart the SMS client service, follow these steps.

Note You must run the Transfer SMS ID tool on the SMS 2003 advanced client that has the duplicate SMSID. To do this, follow these steps:
  1. Copy the Tranguid.exe utility from the SMS 2003 Toolkit 1 to the SMS 2003 client.
  2. On the SMS 2003 client, click Start, click Run, type cmd in the Open box, and then click OK.
  3. At the command prompt, change to the folder where you copied the Tranguid.exe utility.
  4. At the command prompt, type tranguid /R, and then press ENTER.
  5. At the command prompt, type exit, and then press ENTER.
  6. Click Start, point to Programs, point to Administrative Tools, and then click Services.
  7. In the list of services, right-click SMS Agent Host, and then click Restart.
Alternatively, use the following method to assign a new SMSID:
  1. On the SMS 2003 advanced client that has the duplicate SMSID, delete the %windir%\Smscfg.ini file.
  2. Click Start, point to Programs, point to Administrative Tools, and then click Services.
  3. In the list of services, right-click SMS Agent Host, and then click Restart.
When the SMS Agent Host service is restarted, a new Smscfg.ini file that contains a new SMSID is generated. The old SMSID and the date that the SMSID was regenerated are not saved.

Clients that have explicitly generated a new SMSID can be easily identified by matching the Previous SMSID property of the new record with the SMSID property of the old record.

The following SQL query demonstrates this by listing orphaned records and the time at which the client generated a new SMSID.
select distinct sysold.ResourceID, sysold.Netbios_Name0,
                SMS_UUID_Change_Date0
from v_R_System sysold
join v_R_System sysnew
  on sysold.SMS_Unique_Identifier0 = sysnew.Previous_SMS_UUID0
order by sysold.Netbios_Name0, sysold.ResourceID

Modification Type:MajorLast Reviewed:4/17/2006
Keywords:kbhowto KB837374 kbAudITPRO