Handling duplicate MAC addresses in SCCM.

I had a very strange issue today as I pulled a loaner laptop to test an application I was working on – turns out the machine would not PXE boot because its MAC address was already assigned to another machine in SCCM’s database.  However, the UUID was different.  In order to determine the issue, I built out the following two queries:

Find computer by MAC address:
select distinct *  from  SMS_R_System where SMS_R_System.MACAddresses = "aa:bb:cc:11:22:33"

Find computer by UUID:
select *  from  SMS_R_System where SMS_R_System.SMBIOSGUID = "AAAAAAAA-BBBB-CCCC-1234-567890ABCDEF"

The first query returned a machine in the database with a different name than the one I was working on but had the same MAC address (actually two MACs) and with a different UUID.  The second query did not return anything when I inputted the UUID it displays when pausing at the PXE boot screen, but, after examining the contents of SMSPXE.LOG, I was able to see the last UUID that attempted to connect which was slightly different (some numbers seemed transposed) and when I used this it returned the same exact computer as in the first query (phew!).

I then started to investigate if the machine displayed in SCCM existed in active directory and sure enough, it was part of the domain.  Furthermore, I was able to ping this machine on the network!  Now I have certainly read before that it is possible to have a duplicate MAC address because of vendor error, but I didn’t think I am that unlucky.  After asking the helpdesk about the computer being returned in SCCM, it turns out the user currently assigned to it was given a loaner laptop but its hard drive was replaced by the original hard drive which has the SCCM client installed on it.  When doing inventory, it apparently picked up this new MAC address and updated its record in the database with the new value.  When the user’s original hardware came back from repair, the hard drive was swapped back to the original laptop and because the previous MAC address was already in the database, the client didn’t update and did not drop the loaner’s MAC address.

Case solved!  I removed the SCCM client from the original machine, deleted the computer in SCCM and reinstalled the client on the machine.  Upon reinstalling, it recreated the computer record in SCCM with the correct MAC address and I was finally able to reimage the loaner machine and test my application.

NOTE:  I wasn’t feeling adventurous, but in my research I came across the following Technet post.  It details a SQL query you can use to manually remove the MAC address from the database.  However, this is not supported by Microsoft and it could corrupt your database, so I left this as a last resort measure. 🙂

Leave a Reply