No Assigned Task Sequence when initiating deployments caused by duplicate SMBIOS GUIDs in System Center Configuration Manager 2007

Symptoms

When trying to start a System Center Configuration Manager 2007 (ConfigMgr 2007) OSD Task Sequence on a client, ConfigMgr 2007 fails to find a Task Sequence to run on the PC.

  1. If booting from boot media, the follow message well appear after booting into WinPE:

    There are no task sequences available for this computer.

    Examining the SMSTS.log obtained from X:\Windows\Temp\SMSTSLog will show the following message:

    No assigned task sequence. TSMBootstrap

    Setting wizard error: There are no task sequences available for this computer. TSMBootstrap


  2. If booting from PXE, the PXE boot screen will show the following message:

    TFTP Download: smsboot\<arch>\abortpxe.com

    PXE Boot aborted. Booting to the next device...

    The SMSPXE.log on the PXE Service Point server will contain the following messages at the time the PXE boot was attempted:

    MAC=<Mac_Address> SMBIOS GUID=<SMBIOS_GUID> > Device found in the database. MacCount=x GuidCount=y smspxe

    ProcessDatabaseReply: No Advertisement found in Db for device smspxe

If the PC is Known (either an existing client or prestaged via the Import Computer Information Wizard), it has been verified that the Task Sequence Advertisement is targeted to a Collection that the PC is a member of.

If the PC is Unknown, it has been verified that the Task Sequence Advertisement is targeted to a Collection with the Unknown Computer objects (x64 Unknown Computer and/or x86 Unknown Computer) and that the PC is truly unknown and does not exist in the ConfigMgr database.

Cause

This problem can be caused by more than one PC in the environment having the same SMBIOS GUID. ConfigMgr 2007 refers to the SMSBIOS GUID as System UUID. Similar to a MAC Addresses being unique to a NIC card, the SMBIOS GUIDs should also be unique on each PC. Two PCs should not have the same SMBIOS GUID. The SMBIOS GUID is stored in the PC's BIOS.

The problem occurs because when the ConfigMgr database is queried for available Task Sequence that are advertised to that PC, it does so first by using the PC's SMBIOS GUID. Each record in the ConfigMgr database records the PC's SMBIOS GUID under the attribute System UUID. If it does not match a record with the SMBIOS GUID, it then uses the MAC Address instead.

However, if multiple PCs have the same SMBIOS GUID in the environment, when the query on the SMBIOS GUID is done on the ConfigMgr database, it may find the record for a PC other than the one that the Task Sequence is advertised to. If the Task Sequence is not also advertised to the PC that it found, it will return back that there are no task sequences available for the computer.

Note Do not confuse the SMBIOS GUID with the SMS GUID. They are two separate, different, and distinct items. The SMBIOS GUID is a unique hardware identifier used universally, whereas the SMS GUID is a unique ConfigMgr client ID used exclusively by SMS/ConfigMgr.

To see if the problem exists in the environment, create a query or collection in ConfigMgr based on the suspected duplicate SMBIOS GUID using the System UUID attribute. If more than one PC has the same SMBIOS GUID, then the problem exists.

To obtain the SMBIOS GUID from a PC having the problem, use one of the below methods:

  • At a command prompt, run the command:

    wmic

    When the prompt

    wmic:root\cli>

    appears, type in the command:

    csproduct get uuid

    The SMBIOS GUID for the PC should be displayed.

    Please note that in scenarios where the PC does not have a bootable OS, the PC can be boot into WinPE via PXE or boot media, and then the above commands run from a command prompt window running in WinPE.

  • On most PCs the SMBIOS GUID appears next to GUID: at the PXE boot screen. To pause the PXE boot screen so that the SMBIOS GUID can be copied down, hit the Pause/Break key on the keyboard while at the PXE boot screen.  This can be done even if a PXE server does not exist in the environment. However to view the PXE boot screen, PXE booting must be enabled in the BIOS of the PC and either F12 may need to be hit to get to the PXE boot screen or the NIC may need to be temporarily set as the first boot device on the PC.

  • For PCs that successfully boots into WinPE from boot media but fails to receive an advertised Task Sequence, the SMBIOS GUID will be displayed in the SMSTS.log next to the line

    Setting SMBIOS GUID =

  • For PCs that do not successfully boot from PXE, the SMSPXE.log on the server hosting the PXE Service Point can be examined for the PC's SMBIOS GUID. The line that contains this information will be something as follows:

    MAC=<Mac_Address> SMBIOS GUID=<SMBIOS_GUID> > Device found in the database. MacCount=x GuidCount=y

    Note: Ignore the lines in the SMSPXE.log with all Fs for the MAC Address:

    MAC=FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF SMBIOS GUID=<SMBIOS_GUID> > Device not found in the database. smspxe

    These lines are the PXE Service Point performing a self-check on itself by performing a PXE request to itself to make sure the PXE Service Point is up and operational.

To create a query based Collection that finds all PCs with a particular SMBIOS GUID:

  1. In the ConfigMgr console, navigate to "Site Database" --> "Computer Management" --> "Collections"

  2. Right click on "Collections" and choose "New Collection"

  3. On the "General" page of the "New Collection Wizard", give the Collection a name next to the "Name:" textbox and then click on the "Next >" button.

  4. On the "Membership Rules" page of the "New Collection Wizard", click on the yellow Query icon.

  5. Under the "General" tab of the "Query Rule Properties" window, give the query a name next "Name:" textbox and then click on the "Edit Query Statement..." button.

  6. In the "Query Statement Properties" window, click on the "Criteria" tab, and then click on the yellow starburst button.

  7. In the "Criterion Properties" window, make sure that the "Criterion Type:" is set to "Simple value" and then click on the "Select..." button.

  8. In the "Select Attribute" window:
    • Next to "Attribute class:", select "System Resource"
    • Next to "Alias as:", leave at the default of "<No Alias>".
    • Next to "Attribute:", choose "System UUID"

  9. In the "Select Attribute" window, click on the "OK" button.

  10. In the "Criterion Properties" window, make sure that the "Operator:" is set to "is equal to".

  11. In the "Criterion Properties" window, next to the "Value:" text box, enter in the full SMBIOS GUID obtained from the PC. Make sure to enter all 32 characters and the 4 dashes that are part of the SMBIOS GUID.

  12. In the "Criterion Properties" window, click on the "OK" button.

  13. In the "Query Statement Properties" window, click on the "OK" button.

  14. In the "Query Rule Properties" window, click on the "OK" button.

  15. On the "Membership Rules" page of the "New Collection Wizard", click on the "Next >" button.

  16. On the "Advertisements" page of the "New Collection Wizard", click on the "Next >" button.

  17. On the "Security" page of the "New Collection Wizard", click on the "Next >" button.

  18. When the "New Collection Wizard" completes, click on the "Close" button.

The newly created Collection should display all of the PCs affected by the duplicate SMBIOS GUID. Repeat the above steps if more than one set of duplicate SMBIOS GUIDs exist in the environment.

Resolution

Please note that this problem is caused by an OEM vendor not adhering to industry standards. It is not an issue with ConfigMgr.

There are two possible solutions to the problem

  1. Obtain a BIOS update or utility from the OEM hardware vendor that fixes the duplicate SMBIOS GUIDs and gives each PC a unique SMBIOS GUID.

  2. To work around the problem, use the BannedGUIDs registry entry of WDS as described in the following TechNet articles:

      Windows Deployment Services Registry Entries
      http://technet.microsoft.com/en-us/library/cc733103(WS.10).aspx

      How PXE Requests Work
      http://technet.microsoft.com/en-us/library/cc725614(WS.10).aspx


    The BannedGUIDs registry entry "ignores" any SMBIOS GUIDs that have been entered under the key and instead uses the PC's MAC Address.

    Please note that this solution does not actually fix the root cause of the problem and only works around it. When possible, it is recommended to use Solution 1. However in environments where there may be a large amount of duplicate SMBIOS GUIDs or where a BIOS fix or utility is not currently available from the OEM vendor, the BannedGUIDs registry can be used to work around the issue until the duplicate GUIDs issue can be permanently resolved.

For both solutions, use the methods described in the Cause section to discover what PCs are affected by duplicate SMBIOS GUIDs.

More Information

This problem is common on Dell hardware, although it is not limited to Dell hardware and can also happen on hardware from other OEMs.

Dell Computers

The reason the problem is common on Dell hardware is because when Dell performs a warranty replace on a motherboard of a PC, the motherboard comes with a blank service tag (serial number). If the Dell technician does not properly reset the service tag on the motherboard, the motherboard will remain with a blank service tag.

SMBIOS GUIDs on Dell PCs are determined by the service tag of the PC. Since service tags are unique to each Dell PC, the SMBIOS GUID will also be unique. If the service tag of the a Dell PC is left blank, then any particular Dell model with a blank service tag will have the same SMBIOS GUID as any other Dell PC of the same model that also has a blank service tag.

The following two SMBIOS GUIDs have been reported as SMBIOS GUIDS displayed on PCs with blank service tags:

4C4C4544-0000-2010-8020-80C04F202020
03000200-0400-0500-0006-000700080009

To correct the problem on Dell PCs, use the Dell utility ASSET.COM to reset the service tag of the Dell PC to the correct service tag. This utility is available from Dell at:

http://support.dell.com/support/downloads/format.aspx?releaseid=R21706&c=us&l=en&cs=

This utility needs to be run from DOS and cannot be run from Windows. To run the utility, boot from a bootable DOS floppy/CD/USB drive and run the following command:

ASSET /s <SERVICE_TAG _VALUE>

where SERVICE_TAG_VALUE is the unique service tag for that Dell PC. Make sure not to enter the the brackets (<>) in the above command line. The service tag is usually found on a sticker somewhere on the chassis of the Dell PC.

If when trying to use the ASSET.COM utility, you receive the error message:

Error: The machine does not support an Asset/Service Tag.

the version of ASSET.COM may not be compatible with that model Dell PC. Try using the newer version of ASSET.COM located at:

http://support.dell.com/support/downloads/download.aspx?c=us&l=en&s=gen&releaseid=R109071&SystemID=PLX_GX520&servicetag=&os=WW1&osl=en&deviceid=11498&devlib=0&typecnt=0&vercnt=1&catid=-1&impid=-1&formatcnt=1&libid=7&fileid=141647

or

http://ftp.us.dell.com/utility/R109071.exe

Other OEMs

If the issue is occurring on a PC from an OEM other than Dell, the customer will need to contact the OEM on obtaining a BIOS update or utility similar to ASSET.COM that allows the SMBIOS GUID to be reset on the affected PC to a unique value.

  1. MPC Computers - Unfortunately MPC computers is out of business so fixing the root cause of the problem on these PCs by resetting their SMBIOS GUIDs may not be possible. The BannedGUIDs work around may be the only solution for these computers.

  2. NCS Computers - http://www.ncst.com/ - it is unknown at this time if the OEM has a fix for this problem. Please contact the OEM directly about obtaining a BIOS update or utility to resolve the problem. If the OEM does not have a BIOS update or utility, then the BannedGUIDs work around may be the only solution for these computers at this time. The SMBIOS GUID on PCs from this vendor have been reported as 03000200-0400-0500-0006-000700080009.

  3. Wipro Computers - http://www.wipro.com/ - Wipro may have a BIOS update or utility that addresses the issue. Contact the OEM directly for the latest information. If the OEM does not have a BIOS update or utility, then the BannedGUIDs work around may be the only solution for these computers at this time.

 

Alternate Solution and Workaround

An alternate solution exists but is not recommended due to the need of having to modify a stored procedure in the SQL database for ConfigMgr. However this solution could be used as a last resort if for whatever reason the two other solutions cannot be implemented. If implementing this solution, makes sure to do a backup via the Backup ConfigMgr Site Server Site Maintenance task before implementing the solution. Also make sure the customer is aware that this solution has not been fully tested is not officially supported:

On the SQL server hosting the ConfigMgr database, open SQL Server Management Studio and modify the following stored procedures:

  1. NBS_LookupDevice
    • Change the line

      On xref.machineid = aux.itemkey and aux.smbios_guid0 = @smsbios_guid

      to

      On xref.machineid = aux.itemkey and aux.smbios_guid0 = @smsbios_guid + '.'

  2. MP_GetClientIDFromSmbiosID
    • Change the line

      Where (m.smbios_guid0 = @vchsmbiosid) and (isnull(m.obsolete0,0) != 1)

      to

      Where (m.smbios_guid0 = @vchsmbiosid + '.') and (isnull(m.obsolete0,0) != 1)
    • Change the line

      Where (upper(m.smbios_guid0) = upper(@vchsmbiosid)) and (isnull(m.obsolete0,0) != 1)

      to

      Where (upper(m.smbios_guid0) = upper(@vchsmbiosid + '.')) and (isnull(m.obsolete0,0) != 1)

Query To Find Duplicate GUIDs

The following advanced query can be used to help find duplicate SMBIOS GUIDs in the environment:

SELECT SMBIOS_GUID0,
COUNT(SMBIOS_GUID0) AS NumOccurrences
FROM System_disc
GROUP BY SMBIOS_GUID0
HAVING ( COUNT(SMBIOS_GUID0) > 1 )

This will return two columns:

  • SMBIOS_GUID0
  • NumOccurrences

This will show all the different SMBIOS GUIDs that are duplicated in the environment and the amount of different occurrences for each GUID.

Using the following SQL Query:

select * from system_disc where SMBIOS_GUID0='GUIDNUMBER'

you can find the computers with specific SMBIOS GUIDs returned by the first query to know which specific computers have those GUIDs.

The following query can be ran to show the number of duplicate GUIDs and the corresponding records:

/* drop the temp table if it exists*/

IF OBJECT_ID(N'tempdb..#tempsystem_disc', N'U') IS NOT NULL
 drop table #tempsystem_disc

/* create temp table with number of duplicate occurrences  */

SELECT SMBIOS_GUID0,
COUNT(SMBIOS_GUID0) AS "Number of Occurrences"
into #tempsystem_disc
FROM System_disc
GROUP BY SMBIOS_GUID0
HAVING ( COUNT(SMBIOS_GUID0) > 1 )
select * from  #tempsystem_disc

/* show the SMS Unique Identifier, NetBIOS name, and Item Key to uniquely identify the duplicate entries */

select system_disc.SMBIOS_GUID0, SMS_Unique_Identifier0, Netbios_Name0, ItemKey from  system_disc
inner join #tempsystem_disc
on #tempsystem_disc.SMBIOS_GUID0 = System_disc.SMBIOS_GUID0

/* drop the temp table */

IF OBJECT_ID(N'tempdb..#tempsystem_disc', N'U') IS NOT NULL
 drop table #tempsystem_disc

Properties

Article ID: 2591483 - Last Review: Nov 2, 2011 - Revision: 1

Feedback