Tag : OSD


When I was using state migration point for user data backup and recover during OSD, it failed multiply times today. and the error message was

“SMP request to failed with error: E_SMPERROR_MIGRATIONID_NOT_FOUND (204)”

Not sure what went wrong, just tried again and failed again.

Then I realized that I was backing up user data in one location, when I recover user data, the computer was in another location.

When I checked the Migration Status in SCCM, indeed that backup was in the wrong location.

Then I added new location to the existing Migration Point server from Site System Roles, and it fixed the issue right away!


Better Way to Find Drivers for SCCM OSD Image

There are lots of ways to find drivers, such as from the manufacturer website(Lenovo, HP, Dell), vendor website(Intel, Nvidia), or from Microsoft Update Catalog.

At first I was downloading the SCCM drivers from Lenovo website, but it scared me after I imported to SCCM – 3.5G Files! That’s way to big…

So I started some digging, and here is an excellent article on finding the smallest drivers available( from microsoft update catalog).




Basically we just need to find out the unknown devices in our computer by using powershell, then using Microsoft Update Catalog to download the small drivers.


Here is the powershell script to find Device ID on unknown devices:

Get-WmiObject Win32_PNPEntity | Where-Object{$_.ConfigManagerErrorCode -ne 0} | Select Name, DeviceID | Export-CSV C:\Drivers.csv


Get-WmiObject Win32_PNPEntity | Where-Object{$_.Name –Match “VGA”} | Select Name, DeviceID | Export-CSV C:\Drivers1.csv


After you got the csv file, you use something like VEN_8086&DEV_1616 to search drivers from Microsoft website.

Unfortunately most results are just for windows 10 drivers, I need windows 7 drivers 🙁

In the end, I have to use Lenovo Update Retriever to get some drivers out…Still around 1 GB, but it is much smaller now …



Some Cool Links:




Auto Apply Drivers vs. Apply Driver Package in Task Sequences



Lenovo Update Retriever & Thin Installer:


Windows Update Catalog:


How to Skip F12 When PXE Boot

It’s a little annoying for me to press F12 each time during PXE Boot as I do testing all the time.

Here are the steps to skip F12 :

On your WDS server(s) navigate to
Make a copy of your pxeboot.com (the version that prompts you to press F12)
Delete the original pxeboot.com
Make a copy of pxeboot.n12 (the version that bypasses the additional F12 prompt)
Rename this copy to pxeboot.com
Flag this file as READ-ONLY. If you do not do this the next reboot of your server will revert this file back.
Restart your WDS service and away you go.



Here is an additional article about the detail boot files:


How to make PXE TFTP Boot Faster?

Usually it takes a long time for PXE Boot during the downloading boot image file, you can change the registry settings to make it faster:


Type Reg_Dword
Value: 16384 Dec 
((Recommend that you increase this setting in multiples (4096, 8192, 16384, and so on) and that you not set a value higher than 16384.))


An error occurred while trying to initialize provider WDSMDMGR

Recently I set up two SCCM OSD Distribution Point, one is booting up well, but the other one has issues with WDS, the error message is “An error occurred while trying to initialize provider WDSMDMGR from C:\Windows\system32\wdsmdmgr.dll. Windows Deployment Services server will be shutdown. Error Information: 0x3”


Quite typical error from my another DP, here is the easy fix:

  1. Disable PXE / wait until WDS is uninstalled
  2. Delete C:\Windows\Temp\*.*
  3. Delete D:\RemoteInstall
  4. Reboot
  5. Add PXE support on the DP (WDS install automatically)
  6. Reboot


How to Delete Hiden Drivers for SCCM OSD Imaging

I have to use an existing image to make the SCCM OSD image disk…even though I uninstalled all those drivers inside “Program and Features”, there are still some hiden drivers inside the system.

It didn’t help if you delete them from “Device Manager”.

Here we can use this command line tool to uninstall the hiden drivers:


To list all the drivers inside a system:

pnputil.exe -e

To delete a driver:

pnputil.exe -d Oem#.inf

However when I tried to delete them, there are some very stubborn drivers, such as  the Intel graphic card drivers…


You will get “deleting the driver package failed” message…


At this time, you can use this super good tool called driver store explorer, use the force delete function, and you get all your hiden drivers cleaned. and now you are ready for a clean SCCM OSD image 🙂

sccm osd image pnputil

Here is the link to download Driver Store Explorer:


WIM GUI Mount Tools

sometimes we need an easy WIM file mount tools in GUI…

I found out these two are quite good:






How to use same network adapter for SCCM OSD purpose?

first just need to find out the mac address of your network adapter, then go to the register of your sccm server:



Find the key of ExcludeMACAddress,


and now add the mac address of your network adapter in this key 🙂

SCCM UEFI OSD for Surface Pro 3

Update : this method only worked a few months, and later we had issues booting up.

After talking to Microsoft, the best way to do OSD is using IP Helpers. Point the OSD DP server to the IP range you want.




Surface pro 3 only supports UEFI OSD boot, so unfortunately the regular SCCM BIOS OSD boot didn’t work.

Here is the config you need to setup both UEFI & BIOS boot for SCCM OSD:


For the settings, first need to set two different vender classes,

For UEFI 64 bit machines, vender class is PXEClient:Arch:00007

DHCP 060: PXEClient

DHCP 066: your PXE server address

DHCP 067: smsboot\x64\wdsmgfw.efi


For BIOS 86& 64 machines, vender class is PXEClient:Arch:00000

DHCP 066: your PXE server address

DHCP 067: smsboot\x64\wdsnbp.com


here is a great video on how to set it up on your windows DHCP server:

How to Setup PXE Server for SCCM OSD

Here are some notes from our Microsoft SCCM trainer a few months ago, really helpful on setting up PXE Server.

How to set up Option 66 & Option 67 on the DHCP Server


  • Open DHCP management console (dhcpmgmt.msc)
  • Add the server with the subnet you want to configure (i.e. dc01, dc02, etc.)
  • Expand IPv4
  • Expand the IP Scope you want to edit for PXE (i.e.
  • Right-Click Scope Options
  • Click Configure Options
  • Check 066 Boot Server Host Name and type the pxe server (i.e. cm01.domain.com)
  • Check 067 Bootfile Name and type smsboot\x86\wdsnbp.com for the String Value in Data Entry area.



  • Click OK
  • Repeat as necessary for other dhcp scopes.
  • Close DHCP console when all changes are made.

Settings in SCCM

  • Make sure the enable PXE support for clients is Enabled on the DP (Specifically: Allow the DP to respond to incoming PXE Requests and Enable Unknown computer support.
  • Make sure there is an x86 AND x64 boot image (NEED BOTH) on the DP/PXE Server, and make sure the box “Deploy this boot image from the PXE-enabled Distribution Point” is checked off in the boot image properties of both images under the Data Source tab.
  • Also verify the two images are appearing in the \\<DPserver>\<DriveLetter>$\RemoteInstall\SMSImages. You can also check against the SMSPXE.log in <Install Directory>\Program Files\Microsoft Configuration Manager\Logs\SMSPXE.log for errors and if the images are setting properly for PXE.
  • Deploying the TS to the All Unknown Systems collection
  • In the deployment of the TS, make sure to select “Only media and PXE” in the Make available to the following (not as important as long as PXE is one of these options).
  • If testing with unknown computers then make sure computer is unknown/removed from SCCM.



  • WDS is not necessary to install previously for PXE to work.
  • The RemoteInstall folder will automatically be created on one of the drives on the DP. This is necessary for setting up Option 67 on the DHCP Server. The necessary DHCP Options are as follows:


Troubleshooting PXE


  • If receiving these 2 event IDs for WDS and the service will not start:
  • 513 – An error occurred while trying to initialize provider WDSMC from C:\Windows\system32\wdsmc.dll. Windows Deployment Services server will be shutdown. Error Information: 0x906
  • 257 – An error occurred while trying to start the Windows Deployment Services server.

Error Information: 0x906

then run this command to get WDS service to start working:


WDSUTIL /Initialize-Server /RemInst:D:\RemoteInstall

Might need to uninstall and reinstall PXE. Possible order: uninstall PXE, do the above fix, and then install PXE


Source: http://www.systemcentercentral.com/configmgr-pxe-boot-warning-matching-processor-architecture-boot-image-0-not-found/





SMSTS.log locations (http://technet.microsoft.com/en-us/library/bb932135.aspx):

Note: Run CMTrace first to set it as the default viewer of logs (located under X:\SMS\Bin\i386\CMTrace) and go to the proper location of SMSTS.log.

  1. System booted in WinPE and the local harddisk is not modified (smsts.log in the “x:\windows\temp\smstslog” folder)
  2. System booted in WinPE and the local harddisk is partitioned and formatted (smsts.log in the “x:\smstslog” folder and after that in the “c:\De_SMSTaskSequence\Logs\Smstslog” folder
  3. System booted in Windows before the ConfigMgr client is installed (smsts.log in the “c:\_SMSTaskSequence\Logs\Smstslog” folder)
  4. System booted in Windows after ConfigMgr client is installed (smsts.log in the “c:\windows\system32\ccm\logs\Smstslog” folder)
    (When using a x64 device, you can find it in the “c:\windows\SysWOW64\ccm\logs\Smstslog” folder)