Issue with MDT 2010 Update 1 and Windows AIK for Windows 7 SP1 Supplement

With the release of the Windows AIK for Windows 7 SP1 supplement (see https://blogs.technet.com/b/mniehaus/archive/2011/02/17/windows-aik-for-windows-7-sp1-released.aspx for details), there is a new version 3.1 version of Windows PE available.  If you plan to install this update, you need to be aware of an issue when using this with MDT 2010 Update 1.

To explain the issue, first you need to understand the way the MDT boot image creation process works.  Fortunately, I explained that almost two years ago (https://blogs.technet.com/b/mniehaus/archive/2009/06/27/mdt-2010-new-feature-7-boot-image-creation-optimized.aspx):

With MDT 2010, Deployment Workbench will look for a “boot.wim” file from one of the imported operating systems that has the same build number as Windows AIK (e.g. “boot.wim” from a Windows 7 RC, build 7100, operating system to go with the Windows AIK for Windows 7 RC). If it finds a match, it will use that WIM instead. Why do we do this? Because the “boot.wim” contains the Windows Recovery Environment (Windows RE), a component that isn’t available in Windows AIK. 

That’s kind of high level, so let’s get a little more specific.  First, some background details:

  • The build number for the RTM version of Windows 7 is 6.1.7600.16385.
  • The build number for Windows AIK for Windows 7, released with Windows 7 RTM, is also 6.1.7600.16385.  This is stored in the registry.
  • The build number for Windows 7 SP1 is 6.1.7601.17514.
  • The build number for the files included in the Windows 7 AIK for Windows 7 SP1 supplement, including Windows PE 3.1 and all the Windows PE feature packs, is also 6.1.7601.17514.  But since this supplement is installed by replacing files in the Windows AIK installation directory using XCOPY, the registry isn’t updated so MDT still thinks the Windows 7 RTM version (6.1.7600.16385) of Windows AIK is installed.

Now, let’s assume that you have Windows 7 RTM x86 installation files present in your deployment share, and you haven’t installed the Windows 7 AIK for Windows 7 SP1 supplement.  MDT’s processing when creating a boot image will look like this:

  • Is there a boot.wim available with the same version number as Windows AIK (6.1.7600.16385 = 6.1.7600.13685)?  Yes, copy it to a temporary folder and mount it.
  • Inject the required Windows PE optional components from the Windows AIK installation directory into this mounted boot image.
  • Inject the needed MDT scripts.
  • Commit the changes to the WIM file and copy it to the deployment share.

Now, install the Windows 7 AIK for Windows 7 SP1 supplement and update the deployment share:

  • Is there a boot.wim available with the same version number as Windows AIK (6.1.7600.16385 = 6.1.7600.13685)? Yes (because MDT doesn’t know that Windows AIK has been updated, the registry still says it is version 6.1.7600.16385), copy it to a temporary folder and mount it.
  • Try to Inject the required Windows PE feature packs from the Windows AIK installation directory into this mounted boot image.  All fail, because they are for Windows PE 3.1 and won’t work with the Windows PE 3.0 boot image copied from the Windows 7 RTM files.
  • Stop.

The actual error will look something like this (repeated for each Windows PE feature pack):

Deployment Image Servicing and Management tool
Version: 6.1.7600.16385
Image Version: 6.1.7600.16385
Processing 1 of 1 - Adding package WinPE-HTA-Package~31bf3856ad364e35~x86~~6.1.7601.17514
Error: 0x800f081e
The specified package is not applicable to this image.
The DISM log file can be found at C:\Windows\Logs\DISM\dism.log
Exit code = –2146498530
DISM /Add-Package failed for component C:\Program Files\Windows AIK\Tools\PETools\amd64\WinPE_FPs\winpe-hta.cab, rc = -2146498530.

Uh oh – you can’t get past this error to generate boot images.  So what should you do?  There are two options:

  • Reinstall Windows AIK for Windows 7 RTM (version 6.1.7600.16385) so that the Windows PE 3.0 feature packs are again used.

  • Modify the Settings.xml file in the deployment share’s “Control” folder to tell MDT to never use the boot.wim.  The settings look like this:

    <Boot.x86.UseBootWim>True</Boot.x86.UseBootWim>
    <Boot.x64.UseBootWim>True</Boot.x64.UseBootWim>

    They should be changed to instead say:

    <Boot.x86.UseBootWim>False</Boot.x86.UseBootWim>
    <Boot.x64.UseBootWim>False</Boot.x64.UseBootWim>

    As a result of this change, MDT will no longer use the boot.wim from the Windows 7 RTM installation files.  Instead, it will always use the winpe.wim from Windows AIK.  And since the Windows PE feature packs in Windows AIK should always match the winpe.wim in Windows AIK, this will always work.

There is one downside to the second option, which goes back to why MDT attempts to use the boot.wim in the first place:  The winpe.wim doesn’t contain Windows RE.  Since there’s no way to add Windows RE to a Windows PE image built from the Windows AIK winpe.wim, that means the resulting Lite Touch boot WIM won’t have Windows RE.  If you aren’t using Windows RE, that doesn’t matter.

Let’s look at some other scenarios too to see what will happen:

  • You have installed the Windows AIK for Windows 7 SP1 supplement, added Windows 7 SP1 source files to your deployment share, and removed the Windows 7 RTM source files from your deployment share.
    • In this case, MDT won’t find a boot.wim whose version matches the registry version for Windows AIK (6.1.7600.16385).  So everything will work, using winpe.wim and feature packs from the Windows AIK supplement.
  • You have generated Lite Touch boot images in the past without issue.  Now you install the Windows AIK for Windows 7 SP1 supplement, but you don’t see any issues – you can still update your boot images.
    • This is because MDT sees that all the needed Windows PE feature packs are already present in the Lite Touch boot images on the deployment share.  It’s a temporary success though:  The next time MDT completely regenerates the boot images (which happens when MDT is upgraded or when you check the box in the “Update Deployment Share” boot image), the process will fail.
  • You have installed the Windows AIK for Windows 7 SP1 supplement.  You have Windows Server 2008 R2 RTM installation files in your deployment share, but no Windows 7 installation files.
    • This will result in the same error as above.  The boot image generation process will try to use the boot.wim from Windows Server 2008 R2, just like it tries to use one from Windows 7 RTM.
  • You have installed the Windows AIK for Windows 7 SP1 supplement.  You have Windows Server 2008 R2 SP1 installation files in your deployment, but no Windows Server 2008 R2 RTM installation files.
    • This is just like the Windows 7 SP1 scenario above:  the update process will work fine, using the Windows AIK SP1 Windows PE 3.1 WIM and corresponding feature packs.

Note that this will never be an issue with MDT-generated boot images used with ConfigMgr 2007, as MDT will always use the winpe.wim from Windows AIK when generating these.  (ConfigMgr 2007 doesn’t yet support Windows PE 3.1, so don’t install the Windows AIK for Windows 7 SP1 supplement yet if you are using ConfigMgr.)

If there are any additional questions about this, let me know (mniehaus@microsoft.com).