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.
- 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.
- 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.
- 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:
- 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 + '.'
- 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