Ran across a weird problem the other day where Windows 8 was not automatically applying the Language Packs that were auto injected from WinPE. After some digging around, I saw that the Unattended.xml was missing the UILanguage and other entries for the oobeSystem pass. This kind of behavior was not seen when I was deploying Windows 7, so it really got me thinking. Something was obviously destroying the XML when Windows 8 was the target OS, but which component? After some manual research I found that the ConfigMgr component that updates the Unattended.xml after applying the image had an error in it when deploying Windows 8.

The following error was clearly the problem, but why did it occur?

 

Successfully copied configuration file \\CM.ATEADEMO.LOCAL\SMSPKGC$\CEN00020\Unattend_X64.xml to D:\Windows\panther\unattend\unattend.xml
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)
Entering ReleaseSource() for \\CM.ATEADEMO.LOCAL\SMSPKGC$\CEN00020\
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)
reference count 1 for the source \\CM.ATEADEMO.LOCAL\SMSPKGC$\CEN00020\ before releasing
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)
Released the resolved source \\CM.ATEADEMO.LOCAL\SMSPKGC$\CEN00020\
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)
Setting %SystemRoot% to "D:\Windows"
ApplyOperatingSystem 2013−04−17 06:51:16 800 (0x0320)
Loading existing answer file "D:\Windows\panther\unattend\unattend.xml"
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)
FALSE, HRESULT=80220001 (e:\nts_sccm_release\sms\framework\osdcore\smiinterface.cpp,498)
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)
Failed to deserialize settings (0x80220001)
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)
pPassObj−>fromXml( m_spSettingsEngine, m_spTargetInfo, sXml ), HRESULT=80220001 (e:\nts_sccm_release\sms\framework\osdcore\smiinterface.cpp,1070)
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)
fromXml( oDoc ), HRESULT=80220001 (e:\nts_sccm_release\sms\framework\osdcore\smiinterface.cpp,963)
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)
Failed to load existing answer file "D:\Windows\panther\unattend\unattend.xml"
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)
Getting namespace "Microsoft−Windows-Deployment" for architecture "amd64"
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)
Getting namespace "Microsoft-Windows-Shell−Setup" for architecture "amd64"
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)
Getting namespace "Microsoft-Windows-International-Core" for architecture "amd64"
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)
Writing configuration information to D:\Windows\panther\unattend\unattend.xml
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)
Successfully saved configuration information to D:\Windows\panther\unattend\unattend.xml
ApplyOperatingSystem 2013-04-17 06:51:16 800 (0x0320)

 

What’s going on??? Clearly I cannot be the only one having these issues? So I basically started to dig into what XML element that was causing these issues? Sadly I saved the xml in Notepad, which saves files in ANSI format by default, and the XML has a header with the following entry in it:

This means that the XML parsers will read my ANSI saved unattended.xml in the wrong way, give me exactly the same error as above. After losing a few hours of my life, I started to realize that I was spending my time in the wrong space. I realized this when I removed the UTF encoding tag and it worked fine with my minimal Unattend.xml. I took a look in the Microsoft Deployment Toolkit Templates folder and clearly, I had missed that there are updated versions for Windows 8 in there:

So basically what happened what that I missed that I was using the default “Unattend_x64.xml” (Clearly only for Windows 7 and Server 2008 R2) as the base for my unattend file, when I should have been using the “Unattend_x64.6.2” file. After updating my Apply Steps for Windows 8 Images it all worked fine and the image was applies OK.

Lessons learned:

  • Don’t ever save UTF XML files with Notepad unless you save it as UTF (Save As and select UTF)
  • Use the new Unattend_.xml.6.2 files for Windows 8 deployments!
  • RTFM! J