Prior to SCCM 1610, you may had an issue when trying to image multiple Surface or ultrabook devices using the same USB to Ethernet Adapter.  A USB adapter is needed because the devices lack a built in Ethernet port. This issue could also apply when trying to image Surface devices using the Docking Station. Following a UserVoice idea, it has been fixed in SCCM 1610 and it’s now easier to ignore a particular MAC Addresses from an OS deployment.

Cause

Before heading to the solution, we’ll explain why this was a problem in previous SCCM releases :

  • SCCM uses SMBIOS to identify computers and fallback to MAC Addresses if SMBIOS is not available
  • SMBIOS is the GUID stored in the device’s BIOS or UEFI. It’s unique to the device and SCCM uses it to recognize imported computers
  • When computers are not imported, SCCM will use their Ethernet MAC Addresses by default

The problem is that MAC Addresses are unique identifiers of network interfaces but when reusing the same USB to Ethernet adapter for multiple deployments, your MAC Address is not unique. SCCM think that’s the same device and your device don’t receive the Task Sequence.

Solution to Ignore SCCM Duplicate Hardware Identifiers

Using SCCM 1606 or prior

The solution is to add each MAC Address of the USB Adapter to the list of Mac Addresses to be excluded from Data Discovery.

[su_box title=”Important” style=”glass” box_color=”#000000″ title_color=”#F0F0F0″]This has to be done on the Primary Server[/su_box]

  • Open Regedit
  • Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Components \SMS_DISCOVERY_DATA_MANAGER

SCCM Duplicate Hardware Identifiers

  • Edit the ExcludeMACAddress key and enter each MAC Address (one per line)

SCCM Duplicate Hardware Identifiers

Using SCCM 1610 or Later

Beginning with SCCM 1610, you can provide a list of hardware IDs that SCCM will ignore when using PXE boot and client registration. You can now exclude the MAC address and SMBIOS GUID in the console so that same adapters can easily be reused.

  • In the SCCM console, go to Administration / Site Configuration / Sites
  • On the top ribbon, click Hierarchy Settings

SCCM Duplicate Hardware Identifiers

  • In the Client Approval and Conflicting Records tab
  • In the Duplicate hardware identifiers section, click Add and enter your MAC Address or SMBIOS GUID to exclude

SCCM Duplicate Hardware Identifiers

Another nice addition from the development team in order to facilitate your deployments. We encourage to fill an UserVoice item when you have suggestion to make SCCM better. This is a great example of suggestion to production implementation and another reason to upgrade to Current Branch as soon as possible.

Comments (18)

Troy Marshall

04.14.2020 AT 05:52 PM
We are currently using SCCM 1906 and have found that the usb to ethernet adapters that come with the MS Surface Book 2 can only be used on 1 Surface book 2 to pxe boot it. I did look at the Client approval and conflicting records and it does not show any duplicate hardware identifiers. Any suggestions on what else I should look for to fix this issue?

Brett Dalton

01.26.2020 AT 11:46 PM
Is there a time delay between dropping your MAC addresses into either the registry or the Duplicate Hardware ID tab before the exception is picked up and allows a deployment? I recently deployed a TS to a new Surface Pro 3 device using a universal dock and it deployed successfully (didn't join it to the domain at this stage). I added the MAC address to the Hierarchy Settings and tested on a new device but it never picked up the task sequence. Then removed it and added the MAC to the registry but it still doesn't pick up the TS. Is this a Surface Pro thing? Am I better to use the SMBIOS value? Or is there a time delay and I'm just being impatient? The machine hostname doesn't appear in the SCCM console as I haven't added it to the domain yet so I can't delete the record from SCCM to be recognised as an "Unknown Computer". What am I missing?

Brett Dalton

01.26.2020 AT 11:47 PM
Oh yeah, I'm running 1909

Florian

11.15.2018 AT 10:41 AM
Whe used the Prior version and now have found the "new" version. do i now need to migrate the old MAC's to the new destination. can i delete the old Values? can i delete the old key in registry?

VortiFred

03.16.2018 AT 05:55 AM
To exclude SMSBIOS GUID you need to use BannedGUIDs registry value instead of ExcludeMACAddress one. Banned GUIDs :The registry location of the banned GUIDs is as follows: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WDSServer\Providers\WDSPXE Name: BannedGuids Type: REG_MULTI_SZ Value: GUID strings, with one string per line. The correct format is as follows: 1acbf447-3993-e543-a92a-fadb5140f1c8, which should match what you see when you perform a PXE boot on a client.

Jamie

02.12.2018 AT 08:36 AM
Hi - to bulk import, follow this: Run this SQL query against your site database to get a list of applicable MAC addresses: SELECT     A.Name0,     B.SerialNumber0 ,     A.Manufacturer0,     A.Model0,     C.Name0 ,     D.TotalPhysicalMemory0 ,     sum(E.Size0) ,     F.MACAddress0 ,     F.IPAddress0 ,     G.AD_Site_Name0 ,     A.UserName0 ,     H.Caption0 ,     H.CSDVersion0,     G.Creation_Date0 ,     I.LastHWScan, J.Name0 FROM     dbo.v_R_System G     join dbo.v_GS_COMPUTER_SYSTEM A on G.ResourceID = A.ResourceID     join dbo.v_GS_PC_BIOS B  on G.ResourceID = B.ResourceID     join dbo.v_GS_PROCESSOR C  on G.ResourceID = C.ResourceID     join dbo.v_GS_X86_PC_MEMORY D  on G.ResourceID = D.ResourceID     join dbo.v_GS_DISK E  on G.ResourceID = E.ResourceID     join dbo.v_GS_NETWORK_ADAPTER_CONFIGUR F  on G.ResourceID = F.ResourceID     join dbo.v_GS_OPERATING_SYSTEM H  on G.ResourceID = H.ResourceID     join dbo.v_GS_WORKSTATION_STATUS I  on G.ResourceID = I.ResourceID join dbo.v_GS_NETWORK_ADAPTER J on G.ResourceID = J.ResourceID WHERE     G.Netbios_Name0 like '%'     and F.MACAddress0 !='' and J.Name0 not like 'Bluetooth%' and J.Name0 not like 'WAN Miniport%' and J.Name0 not like 'Microsoft%' and J.Name0 not like 'Teredo%' and J.Name0 not like '%Wireless%' and J.Name0 like 'Broadcom%' and F.IPAddress0 !='' GROUP BY     A.Name0,     A.Manufacturer0,     A.Model0,     C.Name0,     D.TotalPhysicalMemory0,     G.AD_Site_Name0,     A.UserName0,     H.Caption0,     H.CSDVersion0,     G.Creation_Date0,     I.LastHWScan,     B.SerialNumber0,     F.MACAddress0,     F.IPAddress0, J.Name0 Then, copy them into an Excel spreadsheet and put this formula into the adjacent column, changing F3 to whatever contains the first cell: ="Set-WMIInstance -Namespace root\sms\Site_XXX -Class SMS_CommonMacAddresses -Argument @{MACAddress='"&F3&"'}" Double click the bottom right square on the cell to autofill the formula down, copy and paste the results into PowerShell and run.

Evan

03.29.2017 AT 08:46 AM
Has anyone found a way to import a large number of MAC addresses? We have a lot of USB-Ethernet dongles that get re-used, and I'd love to be able to just import these.

Brachus

02.21.2017 AT 03:52 PM
Does this method work when using USB media to access the task sequences? Or does it only work for PXE deployments?

Gary Knigge

01.23.2017 AT 01:23 PM
Hi. I see now in 1610 when I add new Mac Addresses using the Hierarchy settings, they are not added to my existing list in the registry, so apparently this new method utilizes a different location to store these. That raises a couple of questions for me. * Do the items in the ExcludeMACAddress registry key need to be added instead using the new method, or will they be concatenated with those in the new method? * Is there a way in 1610 to add a lot of addresses other than typing them individually into the Console Heirarchy settings? Thanks very much for this informative article.

Evan

03.30.2017 AT 06:38 AM
Here's that example again without the accidental use of markers: Set-WMIObject -computerName "CAS or stand alone primary server" -Namespace root\sms\Site_ABC -Class SMS_CommonMacAddresses -Argument @{MACAddress='00:11:22:33:44:55'}

Germán

04.10.2017 AT 06:51 AM
Hi Evan, The term 'Set-WMIObject' is not recognized as the name of a cmdlet... How do you do?

iondream

06.22.2017 AT 06:18 PM
https://docs.microsoft.com/en-us/powershell/sccm/configurationmanager/ you have to install the sccm powershell cmdlets, and then run the powershell from inside of sccm console. the button in the top left of the console has the "connect via powershell" button.

iondream

06.22.2017 AT 06:49 PM
Set-WmiInstance -computerName “SITENAME” -Namespace root\sms\site_SITENAME -Class SMS_CommonMacAddresses -Argument @{MACAddress='00:00:00:00:00:00'} this works. make sure the namespace is root\sms\site_ so if BOBSNET is your site, then its root\sms\site_BOBSNET you still need the cmdlets.

iondream

06.22.2017 AT 06:35 PM
seems like set-wmiobject is depreciated, and possible replaced by set-wmiinstance. still researching.

Evan

03.30.2017 AT 06:36 AM
Gary, I found an answer to importing a large number. You can use these WMI Classes: SMS_CommonMacAddresses and SMS_CommonSmbiosGuids So, for, example, with PowerShell: Set-WMIObject -computerName -Namespace root\sms\Site_ -Class SMS_CommonMacAddresses -Argument @{MACAddress='00:11:22:33:44:55'} I have confirmed that this does work.

Ted Larsen

12.01.2016 AT 12:15 PM
We are currently using 1606, and although the "Prior" method of adding MAC addresses via the Registry is helpful, the article above doesn't provide an example of excluding machines via a SMBIOS GUID. I see this options is available via the Console in 1610, but can this be done using the Registry example as well? In our case, the SMBIOS GUID option is necessary because we image MacBook's that don't have unique SMBIOS GUID's (they are all identical) as well as ASRock motherboards (which also have identical SMBIOS GUID's in specific models). Excluding via SMBIOS GUID would be helpful to us if it can be done using the Registry example above.

Igor Finkel

11.30.2016 AT 06:24 PM
Shane, it Absolutely does work

Shane Smith

11.30.2016 AT 01:21 PM
Does the 1606 or Prior method work for 2012R2? That would solve a huge problem for me until I upgrade.