If you are working with Windows 8.1 and ConfigMgr/MDT, you may run into the Windows Wireless screen prompting you to connect to a wireless network in the middle of your deployment.
It’s a relatively easy fix, you need to modify your unattend.xml and add the following 3 sections.
Add the following section to the Unattend:
Enable the following sections for True:
If your goal is to very quickly have a nice fully automated Windows 7 setup, including drivers, application etc. – This article is not for you. If that’s your goal, you should download the free Microsoft Deployment Toolkit (MDT) 2010, and use that as your deployment solution.
That being said, if you rather is a hardcore geek who wants to build everything yourself from scratch, instead of using the standard tools that Microsoft recommends, this article will help you create your own answer files to automate the core Windows 7 setup.
This is also your chance to challenge the 20+ people strong deployment team at Microsoft, showing them that you are better building deployment solutions than they are. Why use a standard solution that 300.000 other people on this planet are already using when you can re-invent what they have done and build it your self.
So here is the text to get in touch with your inner deployment geek…
One of the components of System Center Configuration Manager 2007 (SCCM 2007) Operating System Deployment (OSD) is boot images. Boot images in SCCM are really just WinPE images and are used during the operating system deployment process to boot computers so that an operating system can be loaded.
For more information about boot images and WinPE, see the following links:
Typically, the standard boot images included in SCCM will provide enough functionality needed to deploy an Operating System, (outside of possibly adding drivers). In some cases, it may be required for administrators to have a script or a command run when the boot image boots and WinPE is started. As an example, one customer, due to specific network restrictions, had to run a command when WinPE started so that a specific route could be added in order for the client to reach the server. The customer created a batch file to run the command and configured WinPE to execute it at every start time, before WinPE started the task sequencing process.
Out of the box, it is not very straightforward to add such customizations to your boot images, so the purpose of this article is to provide information on how to add a batch file or command so that it is executed when your boot image starts.
As a note, there was an article provided in TechNet which describes the process of modifying WinPE to add a script or batch file so that it would be executed when WinPE started. Unfortunately, in SCCM, when boot images are updated so that drivers can be injected or settings are modified, the update process is automated so there isn’t an opportunity to make other customizations. The article I am referring to is http://technet.microsoft.com/en-us/library/cc766521(WS.10).aspx, which provides three ways to add a command to WinPE. The first two methods, using Winpeshl.ini, or Startnet.cmd, don’t work in SCCM. The third method, creating an unattend.xml, will work fine.
This article describes how to create an unattend.xml so that specific commands or scripts can be executed every time your WinPE boot image starts.
This is basically the result of the the system coming up in an OS it didn’t expect. For example WinPE instead of XP/Win7. Commonly, you might be testing and have restarted the box in the middle of the Task Sequence running. Or perhaps you did a deployment and didn’t click “Finish” on the summary screen.
The appropriate action is to either click “Finish” or reboot into the appropriate OS. You can also hit F8 at this point and format the drive and then restart or manually kick off the Lite Touch process again.
If you want an automated way to deal with this, which is most likely unsupported, read on!
Normally when you click “Finish” the Task Sequence will exit and clean up after itself. There is a script called LTICleanup that runs. What we came up with at a recent client of mine, was developed for a lab environment. To avoid this pesky screen, we added the LTICleanup script to to the WinPE load process to automatically clean up the drive for us every time we load WinPE. The obvious advantage is that we will never seen the above error. However you will also lose all your log files if you just had a failed deployment. To counter that, I always recommend you take advantage of SLShare (logs copied at end of deployment) and SLShareDynamicLogging (logs copied during deployemnt) so that you have copies of what happened and can still troubleshoot the process. See the MDT documentation for more information on these properties.
First what you need to do is pull the unattend.xml from the boot image. You will need one for each architecture x86 and x64. You can use imagex to mount the litetouchpe_x64 or litetouchpe_x86 and then extract the unattend.xml.
Once you have this, you will want to place it in your Extrafiles directory. This allows us to make changes without having to manually mount the boot media everytime. When changes are made, the boot media will be updated and the unattend.xml injected into the boot media. The unattend.xml will go in the root of your Extrafiles directory.
Next we need to open the unattend.xml with Windows System Image Manager. What you’ll see is that there is a RunSynchronous that calls the LiteTouch.wsf script to start the process. What we want to do is add a step right before that to call LTICleanup.wsf before LiteTouch.wsf attempts to load.
First change the Order to “2” on the existing step.
Next add a new step that calls LTICleanup.wsf
Do this for both the x86 and x64 unattend.xml files to ensure this process works on both platforms. Now every time WinPE loads, it will first run LTICleanup, then it will launch the wizard.
If you want to test this solution, just restart in the middle of a Task Sequence, and then immediately boot to WinPE. You should receive the welcome screen instead of the “This Task Sequence has been suspended” error message.