/build/static/layout/Breadcrumb_cap_w.png

IE 10 silent install with updates

IE 10 requires a few updates to have already been installed as a pre requisite. It is documented here :

http://support.microsoft.com/kb/2818833

I created the package for IE 10 which installs fine silently. The issue I am facing now is that this IE 10 package fails if the pre requisite .msu updates are not installed. 

I created a script in which I installed all these updates one after the other and IE 10 at the end.

But this too does not work as the machine has not been rebooted and IE 10 package does not recognize the .msu to be installed. So after the reboot, the installation works fine and IE 10 requires another reboot before the users can see the change.

 

I want to know if someone has implemented this solution with one reboot only rather than 2 reboots.

 

Cheers,

Piyush


0 Comments   [ + ] Show comments

Answers (3)

Answer Summary:
http://technet.microsoft.com/en-us/library/jj822354.aspx
Posted by: EnigmaV8 10 years ago
Senior Yellow Belt
8

And now for me to blow all your minds!   lol  Okay well maybe not but you'll still like it...

 

So of course anyone deploying where the System account cannot get to the Internet or anyone with Internet restrictions will run into this issue.  Piyush, you were real close!

The trick is to first extract the files from the factory EXE (you need two separate for 32-bit/64-bit installers), for example:   

IE10-Windows6.1-x86-en-us.exe /x:C:\temp\IE10_x86

Now for the magic.  Here is your command to run to truly install IE wihtout the pre-req checks:

dism.exe /online /add-package /packagepath:C:\Temp\IE10_x86\IE-Win7.CAB /quiet /norestart /logpath:C:\Windows\Logs\Microsoft_IE_10.log

My script I'm using in SCCM with decent logging (you'll see my use of SysNative in the script; that's to account for the 32-bit SCCM client running this to install 64-bit apps):

 

OptionExplicit
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objShell : Set objShell = CreateObject("WScript.Shell")
Dim objEnv : Set objEnv = objShell.Environment("Process")
objEnv("SEE_MASK_NOZONECHECKS") = 1
Dim strScriptPath : strScriptPath = objFSO.GetParentFolderName(Wscript.ScriptFullName)
Dim LogFile : Set LogFile = objFSO.OpenTextFile("C:\Windows\Logs\Microsoft_Internet_Explorer_10_VBscript.log", 8, True)
Dim Return, KBname

'Determine OS Bit Level
Dim OSBitLevel
IfGetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'").AddressWidth = 32Then
    OSBitLevel = 32
ElseIfGetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'").AddressWidth = 64Then
    OSBitLevel = 64
EndIf

LogFile.WriteLine(vbCrLf & "---------------------------------------------------------------------------------------------------------------------" & vbCrLf)

'64-bit installs
If    OSBitLevel = 64Then
    'install 64-bit patch for KB2670838 (graphics and imaging issues fix)
    LogFile.WriteLine(Now & "  -  Installing update KB2670838_x64 for graphics and imaging issues fix...")
    Return = objShell.Run("wusa.exe " & strScriptPath & "\Windows6.1-KB2670838-x64.msu /quiet /norestart /log",0,True)
    Results("KB2670838_x64")
    
    'install 64-bit patch for KB2729094 (Segoe font fix)
    LogFile.WriteLine(Now & "  -  Installing update KB2729094_x64 for Segoe font fix...")
    Return = objShell.Run("wusa.exe " & strScriptPath & "\Windows6.1-KB2729094-v2-x64.msu /quiet /norestart /log",0,True)
    Results("KB2729094_x64")
    
    'install 64-bit patch for KB2731771 (local/UTC time conversion)
    LogFile.WriteLine(Now & "  -  Installing update KB2731771_x64 for local/UTC time conversion fix...")
    Return = objShell.Run("wusa.exe " & strScriptPath & "\Windows6.1-KB2731771-x64.msu /quiet /norestart /log",0,True)
    Results("KB2731771_x64")
    
    'install 64-bit patch for KB2533623 (Insecure library fix)
    LogFile.WriteLine(Now & "  -  Installing update KB2533623_x64 for Insecure library fix...")
    Return = objShell.Run("wusa.exe " & strScriptPath & "\Windows6.1-KB2533623-x64.msu /quiet /norestart /log",0,True)
    Results("KB2533623_x64")
    
    'install 64-bit patch for KB2786081 (IE credentials retention fix)
    LogFile.WriteLine(Now & "  -  Installing update KB2786081_x64 for IE credentials retention fix...")
    Return = objShell.Run("wusa.exe " & strScriptPath & "\Windows6.1-KB2786081-x64.msu /quiet /norestart /log",0,True)
    Results("KB2786081_x64")
    
    'install Internet Explorer 10 for 64-bit (includes 32-bit)
    LogFile.WriteLine(Now & "  -  Installing Internet Explorer 10 for 64-bit...")
    LogFile.WriteLine(Now & "  -       Install log:  C:\Windows\Logs\Microsoft_IE_10.log")
    'Factory installer:  Return = objShell.Run(strScriptPath & "\IE10-Windows6.1-x64-en-us.exe /quiet /update-no /closeprograms /norestart /log:C:\Windows\Logs\",0,True)
    If objFSO.FolderExists("C:\Windows\SysNative") Then
        'run non-redirect to 64-bit DISM
        Return = objShell.Run("C:\Windows\SysNative\dism.exe /online /add-package /packagepath:" & strScriptPath & "\IE10_x64\IE-Win7.CAB /quiet /norestart /logpath:C:\Windows\Logs\Microsoft_IE_10.log",0,True)
    Else
        Return = objShell.Run("dism.exe /online /add-package /packagepath:" & strScriptPath & "\IE10_x64\IE-Win7.CAB /quiet /norestart /logpath:C:\Windows\Logs\Microsoft_IE_10.log",0,True)
    EndIf
    If Return = 3010Then
        LogFile.WriteLine(Now & "  -  WARNING: Installation of Internet Explorer 10 has completed successfully, however, required reboot was suppressed!")
        WScript.Quit(0)
    ElseIf Return <> 0Then
        LogFile.WriteLine(Now & "  -  ERROR: Installation of Internet Explorer 10 has failed with error: " & RETURN)
    Else
        LogFile.WriteLine(Now & "  -  Installation of Internet Explorer 10 has completed successfully.")
    EndIf
    
'32-bit installs    
ElseIf    OSBitLevel = 32Then
    'install 32-bit patch for KB2670838 (graphics and imaging issues fix)
    LogFile.WriteLine(Now & "  -  Installing update KB2670838_x86 for graphics and imaging issues fix...")
    Return = objShell.Run("wusa.exe " & strScriptPath & "\Windows6.1-KB2670838-x86.msu /quiet /norestart /log",0,True)
    Results("KB2670838_x86")
    
    'install 32-bit patch for KB2729094 (Segoe font fix)
    LogFile.WriteLine(Now & "  -  Installing update KB2729094_x86 for Segoe font fix...")
    Return = objShell.Run("wusa.exe " & strScriptPath & "\Windows6.1-KB2729094-v2-x86.msu /quiet /norestart /log",0,True)
    Results("KB2729094_x86")
    
    'install 32-bit patch for KB2731771 (local/UTC time conversion)
    LogFile.WriteLine(Now & "  -  Installing update KB2731771_x86 for local/UTC time conversion fix...")
    Return = objShell.Run("wusa.exe " & strScriptPath & "\Windows6.1-KB2731771-x86.msu /quiet /norestart /log",0,True)
    Results("KB2731771_x86")
    
    'install 32-bit patch for KB2533623 (Insecure library fix)
    LogFile.WriteLine(Now & "  -  Installing update KB2533623_x86 for Insecure library fix...")
    Return = objShell.Run("wusa.exe " & strScriptPath & "\Windows6.1-KB2533623-x86.msu /quiet /norestart /log",0,True)
    Results("KB2533623_x86")
    
    'install 32-bit patch for KB2786081 (IE credentials retention fix)
    LogFile.WriteLine(Now & "  -  Installing update KB2786081_x86 for IE credentials retention fix...")
    Return = objShell.Run("wusa.exe " & strScriptPath & "\Windows6.1-KB2786081-x86.msu /quiet /norestart /log",0,True)
    Results("KB2786081_x86")
    
    'install Internet Explorer 10 for 32-bit
    LogFile.WriteLine(Now & "  -  Installing Internet Explorer 10...")
    LogFile.WriteLine(Now & "  -       Install log:  C:\Windows\Logs\Microsoft_IE_10.log")
    'Factory installer:  Return = objShell.Run(strScriptPath & "\IE10-Windows6.1-x86-en-us.exe /quiet /update-no /closeprograms /norestart /log:C:\Windows\Logs\",0,True)
    Return = objShell.Run("dism.exe /online /add-package /packagepath:" & strScriptPath & "\IE10_x86\IE-Win7.CAB /quiet /norestart /logpath:C:\Windows\Logs\Microsoft_IE_10.log",0,True)
    If Return = 3010Then
        LogFile.WriteLine(Now & "  -  WARNING: Installation of Internet Explorer 10 has completed successfully, however, required reboot was suppressed!")
        WScript.Quit(0)
    ElseIf Return <> 0Then
        LogFile.WriteLine(Now & "  -  ERROR: Installation of Internet Explorer 10 has failed with error: " & RETURN)
    Else
        LogFile.WriteLine(Now & "  -  Installation of Internet Explorer 10 has completed successfully.")
    EndIf
    
EndIf

LogFile.Close



'Functions
'---------------------------------------------------------------------------------------------------------------------
Function Results(KBname)
    SelectCase Return
        Case9009
            LogFile.WriteLine(Now & "  -  WARNING: " & KBname & " is already installed; skipping installation.")
        Case2359302
            LogFile.WriteLine(Now & "  -  WARNING: " & KBname & " is already installed; skipping installation.")
        Case -2145124329
            LogFile.WriteLine(Now & "  -  WARNING: " & KBname & " is not required for this system; skipping installation.")
        CaseElse
            LogFile.WriteLine(Now & "  -  Install of " & KBname & " has completed with return code: " & RETURN)
    EndSelect
EndFunction
 

 


Comments:
  • Cheers thx for this Enigma, it all worked for me deploying through SCCM 2007 for users with lockdown internet access. - darkgen 10 years ago
  • Thanks for your post.. I had not checked this in a while until now when I have to package IE 11..
    Can I extract the CAB file after the customizations i have made in IE through IEAK? - piyushnasa 9 years ago
Posted by: rileyz 11 years ago
Red Belt
1

I would advise using WSUS for this type of thing as it managed te clients better.

But if you really wan to do it via a script, check out the link below.
http://technet.microsoft.com/en-us/library/cc164360(v=exchg.80).aspx

This is the key which registers weather a reboot is pending or not. You could change this to state no reboot is pending, then the update should install. Do prope testing though, as you dont know what the effects it will have, normally when a reboot is pending - some file renaming actions need to take place etc.


Comments:
  • "Weather" is what makes us wet.
    "Whether" is the choosing to take a raincoat or not. - anonymous_9363 11 years ago
  • Yeah, I have terrible grammar/spelling, my flatmate tells me all the time :P
    Thanks though, I need to learn (: - rileyz 11 years ago
  • Thanks.. but I was looking for some other solution rather than this work around.
    Was thinking if someone has deployed IE 10 in their organization and how. - piyushnasa 10 years ago
    • do you have already an answer? - xxMBxx 10 years ago
  • http://technet.microsoft.com/en-us/library/jj822354.aspx - joshuaaluke 10 years ago
    • How does this article solve the need of restart after kb2786081 ??? - xxMBxx 10 years ago
  • Thanks joshuaaluke.. I really hope I had got this solution earlier from you.. :(
    We just broke it down in 2 parts and pushed it. - piyushnasa 10 years ago
    • Were the 2 parts KB and IE10? Can you see a possibility now to rollout it at once without restart? KB+IE10+branding? - xxMBxx 10 years ago
      • I just saw this and it looked like it will work, but have not tested it since we had already rolled out.. - piyushnasa 10 years ago
Posted by: Nostromo 10 years ago
White Belt
1

uncompresse .msu :

expand -F:* update.cab C:<target_dir>

************************************

Mount image : Create c:\Mount

dism /Mount-Wim /WimFile:c:\temp\name.wim /Index:1 /MountDir:c:\Mount

************************************

Add IE packages : 

01_Windows6.1-KB2533623-x86

02_Windows6.1-KB2670838-x86.cab

03_Windows6.1-KB2729094-v2-x86.cab

04_Windows6.1-KB2731771-x86.cab

05_Windows6.1-KB2786081-x86.cab

dism /Image:c:\Mount /Add-Package /PackagePath:<package_path_and_filename>

************************************

Record + Unmount image :

dism /Unmount-Wim /Commit /MountDir:c:\Mount

************************************

Then install ie10 with :

IE10-Windows6.1-x86-fr-fr.exe /update-no /passive /norestart

 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ