Since ConfigMgr 2012 R2 SP1, the boot images used has been more "sensitive" to network configurations, and in ConfigMgr Current Branch it got even worse. However with some simple tweaks you can configure the boot images to work in the crappiest of networks. Here is what you need to do.
Fixing the "Failed to find a valid network adapter" issue
For ConfigMgr Current Branch, it's quite common that you receive a "Failed to find a valid network adapter" error if the network is so even a nano-second to slow to respond. This issue was introduced in ConfigMgr Current Branch v1511. To fix this issue you simply delay the WPEINIT process in WinPE with 5 – 10 seconds, which is plenty for the boot image to the find the adapter.
Here is a post on how to add a unattend.xml file to the root of the boot image, and delay the WPEINIT process:
Fixing the "Failed to find a valid network adapter" error in ConfigMgr Current Branch
Fixing the "No Policies found" error.
If you receive an error about no policies found when starting a new deployment, event though you triple-checked you have an active deployment, configuring the retry variables for policy download may save the day. Simple create a tsconfig.ini file that calls a VBScript that sets the variables, and copy it to the root of the boot image.
Here is a sample tsconfig.ini that calls a script named SetRetryVariablesForPolicies.vbs located in the X:DeployScripts folder.
And here us the SetRetryVariablesForPolicies.vbs script:
' Extra shiny variables used to configure policy download retry settings
set env = CreateObject("Microsoft.SMS.TSEnvironment")
env("SMSTSAssignmentsDownloadInterval") = "10"
env("SMSTSAssignmentsDownloadRetry") = "5"
Configure the log settings in the boot image
Even though logging (smsts.log) was increased from 1 MB to 2 MB in ConfigMgr 2012 R2 SP1, since debug logging is enabled by default, it's way to little. Use the info in this blog post to fix it:
Understanding logging in ConfigMgr OS Deployment
In terms of drivers, make sure you upgrade your environment to ConfigMgr Current Branch (any version) since that version fully support WinPE 10 boot images, and they are fantastic to use no matter if you are deploying Windows 7, Windows 10 or Windows Server 2012 R2. If you're deploying anything else, like Windows 8.x, or Windows Server 2008 R2 you're doing it wrong, and please stop with that 🙂
Other than that, only import the Windows 10 drivers you actually need to the boot image. And when looking for WinPE 10 drivers, no matter what vendor you are using, the WinPE 10 driver package from Dell is really, really good.
WinPE 10 Driver Pack