Reusing the same NIC for multiple PXE initiated deployments in System Center Configuration Manager OSD


The solution in the below blog post is now a native feature in ConfigMgr starting in ConfigMgr Current Branch 1610. Please see the below link for further information:

Manage duplicate hardware identifiers

Consider the following scenario. You are using a single USB to Ethernet Adapter to image multiple devices via a ConfigMgr OSD Task Sequence. The USB to Ethernet Adapter is used because the devices lack a built in Ethernet port and ConfigMgr OSD does not support imaging the devices using the built in wireless NIC. As an example we are going to image several Surface Pro 3 devices using the same USB to Ethernet Adapter and started via PXE. This is a common scenario for companies running a dedicated imaging location for new devices before handing them over to their end users. Please note that this scenario could use a device similar to a USB to Ethernet adapter that provides a wired Ethernet connection such as a Surface Pro 3 Docking Station

Consider the below Surface Pro 3 (A) and Surface Pro 3 (B) have to be installed using the same Surface Ethernet Adapter. After the devices are completely installed, they will connect to corporate network via WLAN or a docking station with a built-in Gigabit Ethernet port.




Surface Ethernet Adapter
Sample MAC Address:
Surface Pro 3 (A)
Surface Pro 3 (B)

Example of a classic PXE initiated deployment with unknown computer support enabled  

Log file snippet of SMSPXE.log: This is a boot  attempt of Surface Pro 3 (B) with default Configuration Manager PXE enabled DP and Unknown Computer support enabled. Note that the lookup occurs using both the MAC and SMBIOS GUID (UUID) of the device to try to find a matching existing record. If either MAC or SMBIOS GUID(UUID) is found in the database then the device is "known".

50:1A:C5:FE:AA:8C, 11F6E606-84D1-4E74-AF7C-3B54377D15E3: device is not in the database.

In the above log, the device lookup result did not return a matching record from the database and it treats this device as "unknown".

Once the device PXE boots and enters Windows PE, the device contacts the MP and via Heartbeat Discovery, registers itself as a client with BOTH its SMBIOS GUID (UUID) and MAC Address. A new record is created with the name "unknown".

A closer look at the object in your Configuration Manager console will show that the client has been registered with its SMBIOS GUID (UUID) and MAC Address 

If multiple devices are being imaged at the same time, there may be multiple records with the name "unknown". This may make it hard to figure out which "unknown" record goes with which device. A simple WQL query will help determine what record belongs to which device.

The following WQL Statement will list all Objects Registered via Unknown Computer Support with UUID and MAC. This will make it easier to see the details of the Unknown object:

select SMS_R_System.ResourceId, SMS_R_System.Name, SMS_R_System.SMBIOSGUID, SMS_R_System.MACAddresses, SMS_R_System.AgentName, SMS_R_System.AgentTime from  SMS_R_System where SMS_R_System.Unknown = 1

Sample Query result: The Client is registered with both MAC Address and SMBIOS GUID (UUID)


The following WQL Statement can be used to find all objects with a specific MAC Address registered

select SMS_R_System.ResourceId, SMS_R_System.Name from  SMS_R_System where SMS_R_System.MACAddresses like ##PRM:SMS_R_System.MACAddresses##

The following WQL Statement can be used to find all objects with a specific SMBIOS GUID registered

select SMS_R_System.ResourceId, SMS_R_System.Name from  SMS_R_System where SMS_R_System.SMBIOSGUID like ##PRM:SMS_R_System.SMBIOSGUID##

After creating the above three WQL queries you should have the following queries:

More information about creating queries can be found at How to Create Queries in Configuration Manager.

The problem manifests itself once one device registers itself with the MAC Address of the USB to Ethernet adapter. Once a device registers itself with the MAC address of the USB to Ethernet adapter, that USB to Ethernet adapter cannot be used on additional devices to initiate a PXE boot. In order to use the USB to Ethernet Adapter on another device, you would need to disassociate that USB to Ethernet Adapter from the device that last device that successfully used the USB to Ethernet adapter. This would be done by running Hardware Inventory and Heartbeat Discovery on the device while the USB to Ethernet Adapter is not attached to the device. This additional step adds delays and additional overhead to the imaging process, especially when imaging multiple devices at once. So the question is how to use the same USB to Ethernet Adapter on multiple devices without having to wait for the device that last used the USB to Ethernet Adapter to run Hardware Inventory and Heartbeat Discovery without the USB to Ethernet Adapter attached.


The solution is very easy: Add the MAC Address of the USB to Ethernet Adapter to the list of Mac Addresses to be excluded from Data Discovery. This task has to be done on the Primary Site Server.

This can be done by opening Regedit on the site server and navigating to the following registry key:


followed by editing the registry value of:


This registry key value is a multi-string value that is the placeholder of the list of MAC addresses to be filtered. The registry key holds one MAC address per line in the following format:


All letters in each MAC address must be typed as uppercase letters to match the MAC address that is submitted in a DDR.

Make sure to add a line break at the end of each MAC address list as the cursor below shows:

otherwise you will see the following error message:


More information about this registry key can be found at

Note: By default, this registry key should exist but will be empty

Before adding any MAC addresses to this registry key value, do not forget to remove any existing object registered with those MAC addresses from the ConfigMgr console otherwise the PXE boot will not work. In this example, we would make sure to delete any objects in the ConfigMgr console that were registered with the MAC address of 50:1A:C5:FE:AA:8C.

From now on any new object will register itself ONLY with its SMBIOS GUID (UUID) when using your Ethernet Adapter(s) of choice.

Log file snippet of SMSPXE.log: Boot attempt of Surface Pro 3 (A)

Running the sample query for Unknown Computers from above we can see Surface Pro 3 (A) registered ONLY with its SMBIOS GUID (UUID). It did not register with its MAC address. In the SMSPXE.log we can see that the MAC Address is still visible


Log file snippet of SMSPXE.log: Boot attempt of Surface Pro 3 (B)

Running the sample query from above for Unknown Computers we can see Surface Pro 3 (A) and Surface Pro 3 (B) both registered ONLY with their SMBIOS GUID (UUID). Neither registered with its MAC address. Again in the SMSPXE.log we can see that the MAC Address is still visible.


Known computer support still works the same way, but instead of using MAC Addresses to import records, make sure to import records using the SMBIOS GUID (UUID).

For known computer support, import the new Record using the SMBIOS GUID (UUID) instead of the MAC address. Please note that ConfigMgr may reference the SMBIOS GUID as BIOS GUID or System UUID.

You can obtain the SMBIOS GUID from a device using any of the following methods:

  1. Via the following PowerShell command:get-wmiobject Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUIDFor bare metal devices, this can be done from WinPE if the PowerShell component is added to the WinPE boot image
  2. Via the following command from a command promptwmic csproduct get UUIDFor bare metal devices, this can be done from a command prompt in WinPE
  3. Some devices will display their SMBIOS GUID in the BIOS/Firmeware. For example, on Surface Pro 3, while the device is completely powered off, hold down the Volume Up button followed by pressing the Power button. This will power on the Surface Pro 3 and display the Firmware screen. At the Firmware screen, select Device Information. This will show you the SMBIOS GUID next to the field "System UUID".
  4. The SMBIOS GUID may be displayed in the PXE boot screen, mainly on BIOS based devices In the above example PXE boot screen, you can see the SMBIOS GUID next to "GUID:"
  5. By monitoring the SMSPXE.log live via CMTrace while trying to PXE a device, the SMSPXE.log will show the SMBIOS GUID in the following line of the SMSPXE.log:00:15:5D:0A:49:55, 96D3D94F-2340-436A-86FE-31AA37C247E6: device is in the database.or

    00:15:5D:0A:49:55, 96D3D94F-2340-436A-86FE-31AA37C247E6: device is not in the database.

To prestage the device and create a Known computer record via the SMBIOSGuid, in the Import Computer Information Wizard, add the record based on its SMBIOS GUID instead of its MAC address as shown below:

Once you complete the Import Computer Information Wizard, a Computer record will be created with the SMBIOS GUID but without the MAC address as shown below:

The Computer object will not have a MAC Address listed until the WLAN Adapter or Network Adapter other than the excluded USB to Ethernet Adapter is inventoried.

Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation.

Wilhelm Kocher
Senior PFE - EMEA

Frank Rojas
Senior Support Escalation Engineer

Comments (8)
  1. Rebecca Schaffer says:

    Does the server need to reboot after editing HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Components \SMS_DISCOVERY_DATA_MANAGER?

    1. I wasn’t able to find the answer to this anywhere, so tested it in our environment.

      The answer is NO. You do not have to restart the server, or any services, for this setting to take effect.

      I imaged a Surface using a USB Ethernet adapter and checked the SMS record immediately after. The “MAC Addresses” property was blank, when previously it would have been populated by the MAC of the USB adapter.

  2. xivenn says:

    What result will lead to if I don’t ignore the MAC address?

    1. Dennis says:

      Assuming you deploy your task sequence to “unkown computers”: result is, the first computer will get the task sequence without Problems (and MAC gets assigned to the newly created computer object in SCCM), then all following computers will not be recognized as “unkown” since the MAC is already present in the CM database, and thus will fail deployment, with errorcode 0x8004005 being shown instead of the task sequence selection dialog.

  3. Neil says:

    Fantastic Thank you , this was a real mystery to me spent ages on this. Gonna test it Stat!

  4. Baatch says:

    I have an OSD Collection that contains all computers and the unknown computers group.
    I then have an OSD TS deployed to the collection with the deployment settings of Only PXE and Media.
    Is the exclusion still needed in this scenario?

  5. Chris Eaton says:

    Found that if you have 2 task sequences configured, 1 for unknown and 1 for all computers, if you re-image a PC with a new name, and re-use the dongle on the second machine, it will give it a duplicate name of the domain, as it ties the MAC to the DDR and then auto-populates the computer name based on this, result is the first imaged machine has trust relationship error and falls of the domain, as there are duplicate names. We are just purchasing a set of dedicated ethernet dongles for imaging and exclduing them from SCCM. Will be interesting to see what happens if we share docking stations to..

  6. yannara says:

    In latest HP devices, I found a bios setting where you are able to enable to use “host mac adress” to a USB ethernet adapter. Intresting stuff to try out.

    Anyway, I was wondering, how about to exclude MAC adress from entire hardware inventory? Any negative downsides to that?

Comments are closed.

Skip to main content