UDI fails to read or set task sequence variables on a ConfigMgr 2012 64-bit Platform

If you are running MDT 2012 UDI on a 64 bit OS and are using System Center 2012 ConfigMgr (64-bit ConfigMgr client) then you may be running into an issue in which none of the task sequence variables get read or set from the UDI wizard. This problem occurs due to the wrong version of the UDI wizard being launched and therefore the wizard does not have access to the task sequence environment. This is happening because the UDIWizard.wsf script is setting the wrong working directory, but luckily is an easy fix. You will simply need to modify the section of the UDIWizard.wsf that sets the working directory.

In the UDIWizard.wsf script change the following:

' Set the working directory

'If oEnvironment.Item("OSVersion") = "WinPE" then
If ucase(oEnvironment.Item("Architecture")) = "X64" then
sWorkingDir = oEnvironment.Substitute("%TOOLROOT%")
Else
sWorkingDir = oEnvironment.Substitute("%DEPLOYROOT%\Tools\x86")
End if
oLogging.CreateEntry "Working directory: " & sWorkingDir, LogTypeInfo
oShell.CurrentDirectory = sWorkingDir

To:

' Set the working directory 

'If oEnvironment.Item("OSVersion") = "WinPE" then 
If UCase(oEnv("PROCESSOR_ARCHITECTURE")) = "AMD64" then 
sWorkingDir = oEnvironment.Substitute("%DEPLOYROOT%\Tools\x64") 
Else 
sWorkingDir = oEnvironment.Substitute("%DEPLOYROOT%\Tools\x86") 
End if 
oLogging.CreateEntry "Working directory: " & sWorkingDir, LogTypeInfo 
oShell.CurrentDirectory = sWorkingDir

You should make this change in the Scripts directory on the machine in which you installed MDT as well as any MDT Toolkit package that you are using.

Note that this problem only occurs when running MDT 2012 UDI on a machine which has a ConfigMgr 2012 64-bit client. This problem does not occur while in WinPE or when deploying via ConfigMgr 2007. Additionally this does not happen with MDT 2012 Update 1 a Beta of which can be found here.