The main point of MDT and WDS is to place Windows on a computer’s disk drive. To do this, MDT uses a series of steps in a task sequence that perform the necessary operations to facilitate installation. The crucial point to all of this is the network. Networking between the MDT/WDS server and the target clients must be clear and working. DHCP, DNS, and even WINS (if you’re feeling nostalgic) all must be working properly or else what could seemingly be an MDT/WDS problem, could actually be a network problem. MDT uses two ways to connect to the server over the network, USB key, and PXE. Pre-execution Environment (PXE) requires the use of a Windows Server configured with the Windows Deployment Services (WDS) role. MDT USB keys are copies of Windows PE, designed to connect to MDT and pull an image from the server. This is where the focus of this post will reside.
Download Surface RT Recovery Image - This is a recovery package for Windows 8.1 devices that provides a ready-to-go image for restoring RT tablets to a working state. Making new driver with new image sensor Hello, I am trying to add new camera device by using MIPI CSI-2 I/F in Windows 10 platform. For that, I need information about. The New Image Custom Hayabusa Seat was well received by the original owner, and He loved to show it off at the track. He approached Lee with a plan to sell the seats at the local drag strips. From there the plan branched out to selling on the internet and Tobin Seats soon became a well respected modification for the Suzuki Hayabusa. This means that you have chosen to install an Office 2010 Click-to-Run suite, such as Office Starter 2010, Office Starter To-Go, Office Home & Student, or Office Home & Business.
The good thing is that MDT has a provision for creating it’s boot sources built-in. Each time a deployment share is updated in MDT the drivers and settings contained within that share are added to a boot WIM and a boot ISO that is used to connect to the MDT server. These are located in the Boot folder of the deployment share. The WIM is used for copy to an WDS server and served-up via PXE. The ISO is meant for a CD-ROM, or the modern USB key. Simply booting a PC to that disc or key, and with DHCP working, the PC will connect to the MDT server. MDT does support the use of static IP addresses at the welcome screen, but DHCP is better and essential if PXE booting is desired.
Creating the MDT (Windows PE) boot volume…
Drivers are the biggest issue with regards to MDT’s Windows PE boot volume. Many times I have had to troubleshoot a connection to MDT that wasn’t connecting only to find out a driver was the issue. Like the target images, MDT’s PE needs network and system drivers to run on the clients to/for connecting. OEMs like Dell and Lenovo make Windows PE drivers available for their hardware, which makes it easy to organize those resources. Another place I go for network drivers is Intel’s web-site and their PRO LAN drivers.
Once I download and extract the drivers, I import them into MDT the normal way, but into their own folder within the driver store. Just like I create folders for the operating system and platform, I also create a Windows PE folder at the same level.
Once the drivers are added, I create a selection profile for just the PE drivers. This is so I can assign them to the MDT Windows PE boot device. Selection profiles are found under the “Advanced Configuration” folder, under task sequences. Simply, right-click the folder to create a new selection profile and drill-down the driver list to select only the Windows PE drivers. I create a separate profile for 32-bit and 64-bit platforms.
Now, from the properties of the deployment share, choose the Windows PE tab and then choose the “Drivers and Patches” sub-tab. From the drop-down list, any selection profile can be used with all or some of the drivers. This is where I choose my WinPE selection profile. With this, only the WinPE drivers will be used to connect to the MDT server. Note: there are two options on the WinPE tab, one for x86 and x64.
Other details can be set on the Windows PE tab, though the defaults are usually sufficient. For example, I change the wallpaper Windows PE uses to display a message on the screen, while the computer is imaging.
The image description for the WIM file is what WDS displays to the end user when they PXE boot to that server and are prompted to select a boot volume. I rename the WIM description and the ISO file name to follow suit with the deployment share.
When everything is as-desired, the deployment share must be updated to generate/regenerate the Windows PE WIM and ISO files. This process takes a few moments to complete, so grab a drink…
Once the deployment share has been successfully updated and has generated the Windows PE volumes in the desired configurations, we need to get those onto the WDS server, or portable media. Even with extreme customization, the ISO for the deployments share’s Windows PE volume is pretty small (by today’s standards). I’ve been using a legacy 512MB USB key for my 64-bit MDT Windows PE, which has to be over ten years old by now. Of course, later USB keys can be used. Use whatever method is best suited to place the ISO on the USB key as a bootable volume. I like to use a piece of freeware, called “Rufus“, but again use whatever works for you.
For WDS, the WIM file, created by updating the MDT deployment share, and placed in the “Boot” folder, along with the Windows PE ISOs, must be copied to the WDS server (if WDS, and MDT are on different computers), and used to “replace”, or create the WDS boot volume.
Go into WDS, right-click the desired boot image, and choose “Replace Image…”
After replacing the WDS boot image, it is not a bad idea to restart WDS on that server, just in case.
Deploy Time…
Get the target computer or VM ready by making sure it can either boot to the NIC, and get a DHCP address, or boot to USB. If you’re PC is using UEFI for its BIOS/firmware, booting to the NIC will most-likely have to be enabled in the BIOS setup (at least for Dell hardware anyway). Most of the PCs shipping from OEMs today will boot to a USB drive without any configuration needed. While in the BIOS setup, you might want to check that too. Pressing F12 on both Dell and Lenovo hardware will interrupt the boot sequence, and allow one to change the boot device for this particular boot, or enter the BIOS. Either way, boot to the USB to use a WinPE USB boot drive, or to the NIC for WDS. Also, keep in mind that complete network connectivity is required throughout the whole imaging process, from start to finish. If MDT’s WinPE volume cannot get an IP address, or see the computer/VM’s hard drive, the correct drivers need to be added. I think 85% of MDT imaging problems are driver-related.
I like to do my imaging off of the production network. First reason, is to not interfere with bandwidth that other computers may need during the day. However, MDT is a good network citizen. I’ve imaged dozens of computers over the production network, at the same time, without any negative impact. Second reason is that after imaging completes, you may have an unpatched copy of Windows on the network. This depends on the steps enabled in your task sequence, whether Windows Update is enabled or not, and how old the image being deployed actually is. Keeping the newly-imaged isolated from everyone else until it has had a chance to get the latest updates from WSUS, and get the latest virus definitions from SEP is a good idea. Since I am the only one using my MDT/WDS server, I keep that behind the NAT as well. My imaging traffic never even sees the production network, usually…
If MDT will deploy an image to a PC that already has a copy of Windows installed, and is not going to be performing an upgrade, wipe the target hard drive first. I use diskpart, and its “clean” command to quickly prepare disk drives on existing installations. Backup any and all data on the target PC before cleaning. If any doubt exists as to whether or not the data might be needed later on, back it up. Adding the following text to a simple txt file, called “clean.txt” will automatically clean any disk that is listed as disk zero.
From a Windows PE command prompt, run the script by executing:
diskpart.exe /s clean.txt > diskpart_log.txt
Boot the computer, and connect to the MDT server. If things start going wrong at this point, there are few things, which are most-likely the culprit.
Can’t boot to USB drive, or the NIC? Check the BIOS, and modify the boot sequence, if necessary. Most new PCs are not set to boot to the NIC in the BIOS, so if that is your goal, check that setting and enable it. While in the BIOS, make sure ALL USB ports are enabled, and configured to allow boot. If the PC is set to successfully boot to either option, check the USB flash drive by using it to boot a known-good PC, which has been demonstrated to boot to USB or NIC in the past. For the hell of it, try a different USB port. I’ve only ever had one USB flash drive completely die on me. If the PC will not boot to the NIC, make sure that option is enabled in the BIOS, and that DHCP is working on your network. Make sure the WDS server is available over the network through ping via IP address and host name.
New Image Drivers
Successfully booted into MDT WinPE, but cannot connect to the deployment share? Start simple, make sure the WinPE session has received an IP address from DHCP. Press F8, in WinPE, and run the usual ipconfig command from the resulting command prompt. If DHCP is not available, find out why and fix it, or enter a static IP address at BDD Welcome screen (The first MDT screen, asking what is to be done). If a static IP address doesn’t work, then the problem is probably driver related. Add the drivers for the target hardware to the MDT driver store, and update the deployment share with complete regeneration (not the default option). Then, re-copy the WinPE ISO the USB flash drive, or replace the boot WIM on WDS with the updated copy, and restart WDS services on the server.
If the deployment share is accessed through a username and password, then make sure the correct set of credentials is being used. For domain use, I create a global group in active directory, and add those users that require access to the deployment share. Test access by having those users connect to the deployment share from Windows Explorer via:
server.domain.comDeploymentShare$
If they cannot do that, they’ll never get in through Windows PE. Check the permissions… If the BDD Welcome screen, or a login prompt for the deployment share are not being displayed, the BootStrap.ini file is configured to bypass the welcome screen and automatically log users into the deployment share. That has to be done intentionally, and is not a default. Whether or not this is desired is up to the administrator of the deployment share. Having these steps pre-configured is essential for automating the imaging process, but not required for every MDT scenario.
Choose the option to deploy a new operating system on the BDD Welcome page, and select the desired task sequence. The steps given will all depend on how the deployment share’s CustomSettings.ini file is configured. I have one deployment share that is completed automated, without prompts. All the tech or whomever is imaging the computer sees is the actual process of MDT imaging the computer.
If the task sequence fails before it can re-partition and format the internal disk drive, there is most-likely a driver issue with either the chipset or storage controller in Windows PE. Again, add the latest WinPE drivers for your particular hardware. Even if you updated the drivers last week, check again. There may be an even newer update waiting. If that does happen, restart the image deployment from the beginning. Reboot the computer and “clean” the disk again with diskpart, or the new deployment will produce an error stating that a deployment is already in progress, and ask if you would like to continue that deployment, or start a new one. Chances are if the internal disk drive can be accessed, from Windows PE, by diskpart, and cleaned, there will be no issues accessing that drive to re-partition and format.
Once the task sequence has started, it will run by itself until something breaks, or asks for input. This again depends on the CustomSettings.ini, and specifically how the task sequence is configured. By default, all task sequences have an “Install applications” step, which will prompt the user to select which applications should be installed during deployment. Some task sequences will prompt for user data backup and restore, and some will prompt to capture an image of the computer, after deployment has finished. It all depends on how MDT is configured. If the deployment is running, just leave it alone and wait. Do not use either the computer receiving the image, or the one providing the image. For the wallpaper I use on my MDT Windows PE boot volumes, I have a Penn logo with a detailed inscription of what the computer is currently doing, and my contact information. The wallpaper image also asks that the computer not be used while the sign is present, and that interrupting the imaging process would require it to start all over again. Depending on network speed, the speed of the hardware at both ends, and the image size, the whole deployment process could be relatively quick, or could last a few hours. Just wait, and see until something breaks. If the task sequence fails in deploying Windows to that computer, MDT will indicate that with a pink-colored window. Completion, but with errors is indicated by a yellow-colored window, and success is indicated by a white window, indicating such. The MDT error messages are completely nondescript and far from helpful. The true key to identifying and fixing problems with MDT are the copious log files it generates.
-->A common deployment scenario is to capture a single Windows image from a reference computer and then apply the image to a group of destination computers that have identical hardware configurations.
To save time during installation and to speed up the out-of-box experience (OOBE) for end users, you can instruct Windows Setup to maintain the driver configurations from the reference computer as part of the Windows image. You should do this only when the hardware on the reference computer and the hardware on the destination computers are identical. When you do this, Windows Setup maintains driver configurations during image capture and deployment.
Instructing Windows Setup to Maintain Driver Configurations
Before you capture an image, generalize the computer by using an answer file that instructs Windows Setup to maintain the driver configurations.
To maintain driver configurations by using an answer file
On your technician computer, open Windows System Image Manager (Windows SIM). Click Start, type Windows System Image Manager, and then select Windows System Image Manager.
Create a new answer file, or update an existing answer file. For more information, see Create or Open an Answer File and Best Practices for Authoring Answer Files.
Add the Microsoft-Windows-PnpSysprep/PersistAllDeviceInstalls setting. For more information, see the Overview section in this topic.
If the computer has undetectable hardware, include the Microsoft-Windows-PnpSysprep/DoNotCleanUpNonPresentDevices setting. For more information, see the Undetectable hardware section in this topic.
Generalize the computer by using the answer file. For example:
Overview
The Windows in-box driver packages include device drivers that support a wide variety of popular hardware. If your specific hardware requires additional device drivers to boot, you can preinstall additional device drivers on your Windows image. Independent Hardware Vendors (IHVs) often supply these additional device drivers together with their device hardware. For more information about how to add device drivers, see Add a Driver Online in Audit Mode.
To prepare a Windows image for deployment to multiple computers, you must use the System Preparation (Sysprep) tool to generalize the Windows image. Generalizing a Windows image removes the computer-specific information and prepares the device drivers for first boot. This preparation includes these steps:
Device state for hardware is removed.
Boot-critical driver settings are reset to their default values.
Device log files are deleted.
When you generalize the computer, use an answer file that has the Microsoft-Windows-PnpSysPrepPersistAllDeviceInstalls setting to save time. This setting prevents Windows Setup from removing and reconfiguring the device state for identical hardware. On first boot, the detected device drivers are already preconfigured, potentially enabling a quicker first-boot experience.
Important Avoid using the PersistAllDeviceInstalls setting when the hardware and the hardware configuration on the reference computer are not identical to those of the destination computers. Even seemingly minor differences in hardware or hardware configuration can cause severe or easily overlooked problems. For more information, see the Troubleshooting Hardware Configuration Differences section of this topic.
It's a good practice not to use the PersistAllDeviceInstalls setting on your primary reference image. Instead, for each group of computers that have a different hardware configuration, first load your primary reference image onto a new reference computer that has the planned hardware configuration. Next, capture a new image of this setup and use the PersistAllDeviceInstalls setting.
For more information about how to generalize the Windows image, see Sysprep (Generalize) a Windows installation.
Best Practices for Driver Revisions and Driver Ranking
Don't maintain multiple versions or revisions of the same driver package in the same image. Use offline or online servicing tools to update drivers.
Normally, when Windows Setup boots a computer and multiple versions of a driver package exist on that computer, Setup determines which driver to install by using driver ranking. But when you use the PersistAllDeviceInstalls setting, the normal driver-ranking processes don't occur. So, devices that use outdated drivers may remain installed. For more information about driver ranking, see How Windows Ranks Drivers on MSDN.
If you must add a device driver to an image that uses the PersistAllDeviceInstalls setting, you can update your device drivers by using one of the following methods:
Use offline servicing tools, like the Deployment Image Servicing and Management (DISM) tool or an unattended answer file. For more information, see Add and Remove Drivers to an Offline Windows Image.
Use online servicing methods or tools, like an unattended answer file. For more information, see Add a Driver Online in Audit Mode.
Troubleshooting Hardware Configuration Differences
For the PersistAllDeviceInstalls setting to work correctly, the hardware configuration must be identical on the reference computer and on the destination computers. Hardware configuration includes the following components:
Hardware make and model.
Firmware. Updates, revisions, and configuration differences can cause some devices to report different criteria for matching device drivers or to use different resources. For example:
Peripheral Component Interconnect (PCI)–based devices can embed different subsystem revision numbers in their reported hardware IDs.
BIOS revisions can change the Advanced Configuration and Power Interface (ACPI) namespace. This causes Windows Setup to report existing devices differently or to introduce existing devices as new devices.
BIOS system configuration differences can cause system devices to claim different memory, I/O, direct memory access (DMA), or interrupt request (IRQ) resources.
Physical location. Hardware configurations must use the same slot, port, or socket numbers to connect to external devices. For example:
PCI expansion cards must be inserted in the same slot numbers.
USB devices must be connected or wired to the same port numbers on the same USB host controllers and integrated hubs.
Storage devices must be connected to the same storage controllers and channels.
Low-risk, medium-risk, and high-risk differences in hardware configuration
When you use the PersistAllDeviceInstalls setting, any hardware differences can potentially cause problems. But some differences are more likely to cause problems than others.
Low-risk differences
For the following types of hardware differences, you may be able to work around potential driver conflicts and still use the PersistAllDeviceInstalls setting:
CPU clock speed
Amount of memory
Hard disk capacity
External input devices, like keyboards and mouse devices
Monitors
Medium-risk differences
New Driver's License Image
For the following types of hardware differences, we recommend that you don't use the PersistAllDeviceInstalls setting:
Video cards
Storage drives and media readers, like optical drives and card readers
Internal or integrated bus devices, like USB or 1394 devices
When these types of hardware differences exist, using this setting may not reduce installation time, even if you work around potential driver conflicts.
High-risk differences
For major hardware differences, don't use the PersistAllDeviceInstalls setting. These differences include:
Motherboard chipset or CPU brand
Storage controllers
Form-factor differences, like a change from a desktop to a laptop or from a laptop to a desktop
Keyboard layout differences, like a change from a standard 101-key keyboard to a Japanese 106-key keyboard
Any other devices that are in the enumeration path of the Windows boot volume
Types of problems that can occur with a hardware configuration change
Even seemingly minor differences in hardware or hardware configuration can cause severe or easily overlooked problems, like these:
System instability
Inability to use some of the basic or extended functionality of a device
Extended boot times and extended installation times
Misnamed devices in the Devices and Printers folder, Device Manager, and other device-related user interfaces
Severe system problems that leave the computer in a non-bootable state
Hardware configuration differences that can cause system boot failures
When the boot-critical hardware is not identical on the reference computer and destination computers, using the PersistAllDeviceInstalls setting can cause severe system problems that can leave the computer in a non-bootable state.
Boot-critical driver packages can belong to any of the following Windows device setup classes, as identified by the ClassGUID directive in the <Version> section of the .inf files in their driver packages.
System-supplied device setup class | ClassGUID |
---|---|
System | {4D36E97D-E325-11CE-BFC1-08002BE10318} |
Computer | {4D36E966-E325-11CE-BFC1-08002BE10318} |
Processor | {50127DC3-0F36-415E-A6CC-4CB3BE910B65} |
PCMCIA | {4D36E977-E325-11CE-BFC1-08002BE10318} |
HDC | {4D36E96A-E325-11CE-BFC1-08002BE10318} |
SCSIAdapter | {4D36E97B-E325-11CE-BFC1-08002BE10318} |
DiskDrive | {4D36E967-E325-11CE-BFC1-08002BE10318} |
CDROM | {4D36E965-E325-11CE-BFC1-08002BE10318} |
FDC | {4D36E969-E325-11CE-BFC1-08002BE10318} |
FloppyDisk | {4D36E980-E325-11CE-BFC1-08002BE10318} |
Volume | {71A27CDD-812A-11D0-BEC7-08002BE2092F} |
USB | {36FC9E60-C465-11CF-8056-444553540000} |
SBP2 | {D48179BE-EC20-11D1-B6B8-00C04FA372A7} |
1394 | {6BDD1FC1-810F-11D0-BEC7-08002BE2092F} |
Enum1394 | {C459DF55-DB08-11D1-B009-00A0C9081FF6} |
Keyboard | {4D36E96B-E325-11CE-BFC1-08002BE10318} |
Mouse | {4D36E96F-E325-11CE-BFC1-08002BE10318} |
HIDClass | {745A17A0-74D3-11D0-B6FE-00A0C90F57DA} |
Ports | {4D36E978-E325-11CE-BFC1-08002BE10318} |
For more information about these device setup classes, see System-Supplied Device Setup Classes on MSDN.
Undetectable hardware
New Image Driver Software
When you deploy a new computer to an end user, some hardware, like a removable device or a device that has an on/off switch, may not be present or detected during first boot. By default, on first boot, Windows Setup removes the preconfigured device state for undetected hardware.
To deploy hardware that may not be present or detected on first boot, add any applicable device drivers to the reference image, connect or turn on the applicable devices so that Windows can install them, and use the Microsoft-Windows-PnpSysprep/DoNotCleanUpNonPresentDevices setting when you capture the image.
Important Using the DoNotCleanUpNonPresentDevices setting can lead to the unnecessary storage of excess device states and contribute to slower boot times.
Troubleshooting Driver Conflicts
To avoid driver conflicts between independent boot-critical driver packages, the IHV must make sure that each device driver uses different service names, registry key values, and binary file names.
Example of a potential driver conflict
In the following example, a fictitious IHV named Fabrikam produces two types of storage controllers: StandardController and ExtremeController. Fabrikam assumes that only one type of storage controller is installed at a time on a particular computer.
The driver package defines the StandardController and ExtremeController configurations to use the same driver service name, storctrl. The storctrl driver service uses different service settings that change depending on which hardware (StandardController or ExtremeController) is installed. Because both StandardController and ExtremeController use the same service, they cannot coexist.
This sample shows the contents of the driver package file Storctrl.inf:
If StandardController is on the reference computer and its settings are maintained during image capture, the storctrl driver service is preconfigured. If ExtremeController is on the destination computer, Windows may use the preconfigured settings and files that are intended for StandardController. This can cause unexpected results.
The IHV can help resolve the conflict by using one of these options:
- Create separate driver packages that have separate .inf files for each configuration, and import only the required driver package into the Windows image during deployment. For example, split Storctrl.inf into two separate .inf files, one version for StandardController and one version for ExtremeController, and import only the required driver package into the Windows image.
- Create another service in the driver package for each configuration. Give each service a different name (for example, storctrl and storctrlx) and point to a different binary image file (for example, Storctrl.sys and Storctrlx.sys).