Friday, June 26, 2015

Windows Could Not parse or process unattend answer file for pass [specialize] in MDT

Here is an issue that took me a while to track down and resolve. Scenario is a small MDT2013 environment that has been upgraded from MDT 2012 Update 1 and MDT 2012 before that. It has a few TS but the two used mostly are to Deploy Windows 7 64-Bit and Build and Capture. 

Each quarter I do a B&C via this second TS. Nothing has changed in years for this TS. It applies install.WIM (from DVD source), disables System Restore and patches from WSUS. This image is then used in the Deploy TS as the base. So imagine my surprise when it goes through the B&C and I swap it into production and do testing and I get this informative dialog:

“NOOOOOOO” -Darth Vader

Wait, that didn't happen, I'm a despecialized camper. So I do what anyone does, rinse and repeat and create a new patched WIM. Ugg same error. Do a deploy from the previous quarter WIM and that works so nothing else was changed. Just not the new B&C WIM. What changed? Checking %WINDIR%\Panther\Unattend.XML, this section looks fine without any common problems. Parsing the panther logs didn't really pull up anything other then that there was a syntax error. Back in Unattend.XML start looking closer. Computer name is under 15 characters (its a VM that gets set to 'VMHost'), No illegal characters in the computer name, serial key is correct, CS.INI is still good, etc. I bet it was something WSUS was giving it. Hmm, back to unattend.xml to do a diff of the unattend.xml against one used for Windows 8.1 as that did a quarterly update process fine. Found one difference under specialized other then the serial key:


Deleted this line and problem solved. Took a while to diagnose and fix this issue so thought I'd share. Searching for this setting, others have encountered it and some just comment it out like this.

 <!-- <IEWelcomeMsg>false</IEWelcomeMsg> -->  

There are several ways to fix it. I just modified unattend.xml in \\MDTSERVER\DeploymentShare\Control\TaskSequenceID. I also changed each XML for each TS.

Another way is to go into the Deployment Workbench and right click your task sequence and goto the OSInfo tab and select edit unattend.xml. Wait a while for it to process as it extracts the WIM. Then use windows system image manager (WSIM) and find (ARCHITECTURE)_Microsoft-Windows-IE-InternetExplorer. Then look for IEWelcomeMsg and right click and disable "write image value", or delete it. Save the unattend and your good to go.  Or open the Unattend.XML in the Control folder directly with WSIM. It was just quicker to edit it with Notepad etc.

Looking at the MDT 2013 templates under %ProgramFiles(x86)%Microsoft Deployment Toolkit\Templates it does not have this setting so MDT 2013 will not create new TS unattends with this and this only affects existing TS created in older versions of MDT. Another reason to create a new TS and migrate steps I suppose. I do that in ConfigMgr each Release or SP and sometimes CU if I suspect it will impact built in Task Sequence steps.

Turns out what the root cause was is they moved from IE9 to IE11 by approving it in WSUS. Starting with IE10, MS deprecated this IEWelcomeMsg setting and replaced with DisableWelcomePage. Additionally, Its deprecated in Windows 8 and up. This is why I deleted it from the XML.

-Kevin Fason