How to Ignore SCCM Duplicate Hardware Identifiers

Benoit LecoursSCCM15 Comments

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.

15 Comments on “How to Ignore SCCM Duplicate Hardware Identifiers”

  1. 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?

  2. 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.

  3. 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.

  4. 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.

  5. Does this method work when using USB media to access the task sequences? Or does it only work for PXE deployments?

  6. 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.

    1. 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.

    2. 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′}

          1. seems like set-wmiobject is depreciated, and possible replaced by set-wmiinstance. still researching.

          2. 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.

  7. 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.

  8. Does the 1606 or Prior method work for 2012R2? That would solve a huge problem for me until I upgrade.

Leave a Reply

Your email address will not be published. Required fields are marked *