SP1 Language packs do not show up or get installed in Microsoft Deployment Toolkit 2010 Update 1 Task Sequence


Symptoms


When executing a task sequence in Microsoft Deployment Toolkit (MDT) 2010 Update 1 to deploy a Windows 7 SP1 or Windows Server 2008R2 SP1 image you do not get the packages page or the language packs you have imported into the MDT workbench.

Cause


This issue occurs due to a change in the way language packs are named in Windows 7 Service Pack 1 or Windows Server 2008 R2 Service Pack 1.

Resolution


To workaround this issue you must edit the following files:
  • %DeployRoot%\Scripts\DeployWiz_Initialization.vbs 
  • C:\Program files\Microsoft Deployment Toolkit\Templates\Distribution\Scripts\DeployWiz_Initialization.vbs
Note: %DeployRoot% is the path you specified when the deployment share was created.


Locate the Function ConstructLPQuery ( isLangPack ) in DeployWiz_Initialization.vbs and replace the following code:

ElseIf isServer and left(ImgBuild,4) = "6.0." then
' All Windows Server 2008 Language Packs use Product Version 6.0.6001.18000
LPQuery = "PackageType = 'LanguagePack' and ProductName = 'Microsoft-Windows-Server-LanguagePack-Package' and substring(ProductVersion,1,8) = '6.0.6001' "
ElseIf left(ImgBuild,4) = "6.0." then
' All Windows Vista Language Packs use Product Version 6.0.6000.16386
LPQuery = "PackageType = 'LanguagePack' and ProductName = 'Microsoft-Windows-Client-LanguagePack-Package' and substring(ProductVersion,1,8) = '6.0.6000' "
ElseIf isServer then
LPQuery = "PackageType = 'LanguagePack' and ProductName = 'Microsoft-Windows-Server-LanguagePack-Package' and substring(ProductVersion,1,7) = '" & left(ImgBuild,7) & "' and substring(ProductVersion,5,4) >= '" & mid(ImgBuild,5,4) & "'"
Else
LPQuery = "PackageType = 'LanguagePack' and ProductName = 'Microsoft-Windows-Client-LanguagePack-Package' and substring(ProductVersion,1,7) = '" & left(ImgBuild,7) & "' and substring(ProductVersion,5,4) >= '" & mid(ImgBuild,5,4) & "'"
End if
With the following new code:
ElseIf isServer and left(ImgBuild,4) = "6.0." then
' All Windows Server 2008 Language Packs use Product Version 6.0.6001.18000
LPQuery = "PackageType = 'LanguagePack' and (ProductName = 'Microsoft-Windows-Server-LanguagePack-Package' or ProductName = 'Microsoft-Windows-Server-Refresh-LanguagePack-Package') and substring(ProductVersion,1,8) = '6.0.6001' "
ElseIf left(ImgBuild,4) = "6.0." then
' All Windows Vista Language Packs use Product Version 6.0.6000.16386
LPQuery = "PackageType = 'LanguagePack' and (ProductName = 'Microsoft-Windows-Client-LanguagePack-Package' or ProductName = 'Microsoft-Windows-Client-Refresh-LanguagePack-Package') and substring(ProductVersion,1,8) = '6.0.6000' "
ElseIf isServer then
LPQuery = "PackageType = 'LanguagePack' and (ProductName = 'Microsoft-Windows-Server-LanguagePack-Package' or ProductName = 'Microsoft-Windows-Server-Refresh-LanguagePack-Package') and substring(ProductVersion,1,7) = '" & left(ImgBuild,7) & "' and substring(ProductVersion,5,4) >= '" & mid(ImgBuild,5,4) & "'"
Else
LPQuery = "PackageType = 'LanguagePack' and (ProductName = 'Microsoft-Windows-Client-LanguagePack-Package' or ProductName = 'Microsoft-Windows-Client-Refresh-LanguagePack-Package') and substring(ProductVersion,1,7) = '" & left(ImgBuild,7) & "' and substring(ProductVersion,5,4) >= '" & mid(ImgBuild,5,4) & "'"
End if



More Information


Before Service Pack 1, the name for a language pack used the following syntax:

Windows Server 2008 R2
"Microsoft-Windows-Server-LanguagePack-Package"

Windows 7
"Microsoft-Windows-Client-LanguagePack-Package"

With Service Pack 1, the name for language packs have changed to the following:

Windows Server 2008 R2 SP1
"Microsoft-Windows-Server-Refresh-LanguagePack-Package"

Windows 7 SP1
"Microsoft-Windows-Client-Refresh-LanguagePack-Package"

The DeployWiz_Initialization.vbs script in MDT, queries for the language packs using the older naming format so it fails to detect the SP1 language packs.