2

Windows 7 x64 fails at boot after sysprep when Internet Explorer 10 is installed. Many posts, like this one posted by sgennadi, give a registry workaround.

Using WIM installation in Microsoft Development Toolkit (along with Package update in Unattend.xml), how can I apply the change before the generalize step or just after IE10 Update package installation?

1 Answer 1

1

I managed to get it to work.

In the Lite Touch Installation, you must have an Install Operating System task sequence. This TS is processed by the LTIApply.wsf file located in your SCRIPTROOT folder. To make Internet Explorer 10 x64 to work with Sysprep, you have to add some VBScript code just after the DISM.exe process:

Function ApplyUnattend

    Dim iRC
    Dim sFileName
    Dim oFile


    ' Create the scratch folder (needed for servicing)

    oUtility.VerifyPathExists oUtility.LocalRootPath & "\Scratch"
    oLogging.CreateEntry "Created scratch folder.", LogTypeInfo


    ' Copy the unattend.xml into the Panther folder (looks like DISM doesn't do this)

    oUtility.VerifyPathExists sDestinationDrive & "\Windows\Panther\Unattend"
    oFileHandling.CopyFile oUtility.LocalRootPath & "\unattend.xml", sDestinationDrive & "\Windows\Panther\Unattend.xml", true
    oLogging.CreateEntry "Copied unattend.xml to " & sDestinationDrive & "\Windows\Panther for image apply.", LogTypeInfo


    ' Apply the unattend.xml.  This takes care of driver injection and servicing (patch, LP, etc.)  Do this from the Panther folder
    ' so that the \Drivers relative path in the unattend.xml works properly.

    oLogging.ReportProgress "Applying unattend.xml with DISM.EXE.", 80
    iRC = oUtility.RunWithConsoleLogging("dism.exe /Image:" & sDestinationDrive & "\ /Apply-Unattend:" & sDestinationDrive & "\Windows\Panther\Unattend.xml /ScratchDir:" & oUtility.LocalRootPath & "\Scratch")
    TestAndFail iRc, 5627, "Run DISM.exe"


    '''''''' Internet Explorer x64 Sysprep Fix ''''''''


    oLogging.ReportProgress "Applying IE10 x64 registry hack.", 80

    ' Loads SOFTWARE hive into registry
    '
    oUtility.RunWithConsoleLogging(sDestinationDrive & "\Windows\System32\reg load HKLM\TempHive " & sDestinationDrive & "\Windows\System32\config\SOFTWARE")

    ' Create a temp file with the script that regini.exe will use
    '
    sFileName = oFSO.GetTempName
    set oFile = oFSO.CreateTextFile(sFileName)
    oFile.WriteLine "HKEY_LOCAL_MACHINE\TempHive\Microsoft\Windows\CurrentVersion\Setup\Sysprep\Cleanup [1 5 7 11 17]"
    oFile.WriteLine "HKEY_LOCAL_MACHINE\TempHive\Microsoft\Windows\CurrentVersion\Setup\Sysprep\Generalize [1 5 7 11 17]"
    oFile.WriteLine "HKEY_LOCAL_MACHINE\TempHive\Microsoft\Windows\CurrentVersion\Setup\Sysprep\Specialize [1 5 7 11 17]"
    oFile.Close

    ' Change registry permissions with regini.exe
    '
    oUtility.RunWithConsoleLogging(sDestinationDrive & "\Windows\System32\regini " & sFileName)

    ' Fix registry paths
    '
    oShell.RegWrite "HKLM\TempHive\Microsoft\Windows\CurrentVersion\Setup\Sysprep\Cleanup\{EC9FE15D-99DD-4FB9-90D5-5B56E42A0F80}", "C:\Windows\System32\iesysprep.dll,Sysprep_Cleanup_IE"
    oShell.RegWrite "HKLM\TempHive\Microsoft\Windows\CurrentVersion\Setup\Sysprep\Generalize\{EC9FE15D-99DD-4FB9-90D5-CE53C91AB9A1}", "C:\Windows\System32\iesysprep.dll,Sysprep_Generalize_IE"
    oShell.RegWrite "HKLM\TempHive\Microsoft\Windows\CurrentVersion\Setup\Sysprep\Specialize\{EC9FE15D-99DD-4FB9-90D5-676C338DC1DA}", "C:\Windows\System32\iesysprep.dll,Sysprep_Specialize_IE"

    ' Delete temp file
    '
    oFSO.DeleteFile sFileName

    ' Unloads SOFTWARE hive from registry
    '
    oUtility.RunWithConsoleLogging(sDestinationDrive & "\Windows\System32\reg unload HKLM\TempHive")


    '''''''' Internet Explorer x64 Sysprep Fix ''''''''




End Function

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .