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
Answers (3)
http://technet.microsoft.com/en-us/library/jj822354.aspx
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):
Option Explicit
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
If GetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'").AddressWidth = 32 Then
OSBitLevel = 32
ElseIf GetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'").AddressWidth = 64 Then
OSBitLevel = 64
End If
LogFile.WriteLine(vbCrLf & "---------------------------------------------------------------------------------------------------------------------" & vbCrLf)
'64-bit installs
If OSBitLevel = 64 Then
'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)
End If
If Return = 3010 Then
LogFile.WriteLine(Now & " - WARNING: Installation of Internet Explorer 10 has completed successfully, however, required reboot was suppressed!")
WScript.Quit(0)
ElseIf Return <> 0 Then
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.")
End If
'32-bit installs
ElseIf OSBitLevel = 32 Then
'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 = 3010 Then
LogFile.WriteLine(Now & " - WARNING: Installation of Internet Explorer 10 has completed successfully, however, required reboot was suppressed!")
WScript.Quit(0)
ElseIf Return <> 0 Then
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.")
End If
End If
LogFile.Close
'Functions
'---------------------------------------------------------------------------------------------------------------------
Function Results(KBname)
Select Case Return
Case 9009
LogFile.WriteLine(Now & " - WARNING: " & KBname & " is already installed; skipping installation.")
Case 2359302
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.")
Case Else
LogFile.WriteLine(Now & " - Install of " & KBname & " has completed with return code: " & RETURN)
End Select
End Function
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 10 years ago
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 11 years ago-
do you have already an answer? - xxMBxx 11 years ago
-
http://technet.microsoft.com/en-us/library/jj822354.aspx - joshuaaluke 11 years ago
-
How does this article solve the need of restart after kb2786081 ??? - xxMBxx 11 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 11 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 11 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 11 years ago
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