Home Articles FAQ Error Codes Downloads Links

Why won't update 816093 install?

Note: This first paragraph is inaccurate, but kept here for historical reasons. See the Addendum at the end of this article for an update.

The Microsoft VM was not originally installed on Windows 2000. It was added by IEv5.01, IEv5.01SP1, IEv5.5, and Windows 2000 SP1. If you skipped any of those updates, by installing SP2 or later directly to the RTM, using slipstream SP2 or later media, and/or upgrading to IEv6 from the RTM IEv5.0 package, then those systems might never have had the Microsoft VM installed.

The Microsoft VM was not originally installed on Windows XP. It was added by Windows XP Service Pack 1 (but not Service Pack 1a). In all likelihood, you do not have the Microsoft VM installed on Windows XP.

The update is also not applicable to MS VM systems have been upgraded to build 3810. The build 3810 MS VM was released eons ago, so there are probably even less of those systems that have managed to slip through that crack.

The WUA seems to have an issue with properly detecting the requirement for this update on certain systems, but the exact reasons have not been empirically determined. It shows as "Not Needed" on all of my XP SP2 systems.

Addendum: November 23, 2007

Pursuant to a revived discussion on this update, and in response to the possibility that the above statements and/or research was flawed, I got involved in four hours worth of new empirical research installing various combinations and orderings of service packs, IE5.5/IE6.0, and MSVM upgrades to a Windows 2000 RTM installation. The results were quite enlightenting, and are documented below.

First -- for those that really do want the Microsoft VM uninstalled, the uninstaller tool is still available from Mark Salloway's "Windows XP Resource Center" website at mvps.org.

A manual uninstallation procedure is also documented in a half dozen or more places, including java.com. I found it on the very first Google hit searching on the keyphrase "uninstall microsoft virtual machine"

But here's the catch.... this procedure will only work on Build 3805 or later... because it's dependent on the java.inf file which was not installed with Windows 2000 or any service pack thereof. And, because the Microsoft VM is protected by the Microsoft File Protection subsystem in Windows 2000 SP3 and earlier, you must have Service Pack 4 applied, in order to apply the Build 3805 installer (msjavx86.exe) which is what installs the java.inf file.

Alternatively, you can simply aqcuire the java.inf file from another system, a download site, or extract it from the msjavx86.exe installer package (msjavx86 /c /t:c:\temp) and place it in the %windir%\inf folder, and proceed with the manual uninstallation procedure. (I didn't think of this workaround until long after I had done all of this work the hard way.)

Side note: If you slipsteamed SP4 onto an RTM media kit, or applied SP4 directly to an RTM installation, you'll still have the RTM build 3229 of the Microsoft VM installed. This may account for why so many people are surprised at needing this update, even on Windows 2000 SP4 original installs!

After installing Service Pack 4 onto my Windows 2000 RTM installation, I then applied the msjavx86.exe installer to upgrade to Build 3805 and rebooted. This package created the missing java.inf file. I was still unable to install my MSVM Build 3810 installer -- getting a complaint that the MSVM was (still!) a protected system component. As an experiment, I reapplied Service Pack 4 (thinking that perhaps whatever it is in SP4 that was supposed to unprotect the MSVM files might have been build specific, and only unprotected the Build 3229 files). Sadly, this did not work. It seems that the only way to get Build 3810 on a Windows 2000 system is to use the msjavwu.exe package.

While researching this whole issue, I found this note in KB820101, which I got to from a link in the MS03-011 page:

======================================
Q6: When I install security update 816093 (MS03-011) on my Windows 2000 SP4-based computer, I receive an error message that indicates that my service pack version is newer than the update. Why?

A6: If you try to install the Windows 2000 Service Pack 3 (SP3) security update for 816093 (MS03-011) on a Windows 2000 SP4-based computer with the Microsoft VM installed, you receive the following error message:

Q816093 Setup Error
Setup has detected that the Service Pack version of the system installed is newer than the update you are applying to it. You can only install this update on Service Pack 3.

You cannot install previous Windows 2000 hotfix packages for the Microsoft VM on a Windows 2000 SP4-based computer. To obtain the 816093 security update for a Windows 2000 SP4-based computer, select Windows 2000 SP4, Microsoft Windows 98, or Microsoft Windows Millennium Edition for your operating system in the Windows Update Catalog. You can install this security update (Msjavwu.exe) on computers that run Windows 2000 SP4, Windows 98, Windows Millennium Edition, or Microsoft Windows NT 4.0 that already have the Microsoft VM installed.

For additional information about the 816093 security update, click the following article number to view the article in the Microsoft Knowledge Base: 816093 (http://support.microsoft.com/kb/816093/EN-US/) MS03-011: Flaw in the Microsoft VM Could Enable System Compromise
======================================

According to the "File Information" link of my WSUS (RTM) server which is not configured to synchronize for Windows 2000 (but the update shows up anyway for Windows XP/2003 systems), the package distributed in WSUS is the 'msjavwu.exe' package. But, on my freshly installed WSUS SP1 (Release Candidate) server, which is configured to synchronize for all platforms, there are actually TWO entries for 816093.

The first, which is the same entry on the WSUS (RTM) (WinXP/2003 only) server, is the 'msjavwu.exe' installer.

The second -- is the Q816093_W2K_SP3_X86_EN.exe package, which applies to Windows SP2/SP3 systems ONLY.

So.. the first is applicable to Windows 2000 SP4 systems; the second to Windows 2000 SP3 systems. Could it be that one or the other of these is incorrectly detecting the Service Pack level? Or, could it be that the msjavwu.exe installer is failing on SP4 systems with MSVM builds earlier than 38xx? These scenarios are still pending further testing.

Back to the successfully upgraded Build 3805 on Windows 2000 RTM/SP4. Having the java.inf file now in place, I was able to successfully perform the manual uninstallation procedure for the Microsoft VM. The whole twelve-step procedure to uninstall the MSVM, documented at the java.com site (and elsewhere), can be boiled down to this four step procedure:

[1] -- uninstall MSVM
RunDll32 advpack.dll,LaunchINFSection java.inf,UnInstall

[2] REBOOT

[3] -- clean up left over files, if necessary
if exists %windir%\system32\jview.exe delete %windir%\system32\jview.exe
if exists %windir%\system32\wjview.exe delete %windir%\system32\wjview.exe
if exists %windir%\inf\java.pnf delete %windir%\inf\java.pnf
if exists %windir%\java) rd /q %windir%\java

[4] -- remove registry key
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\JAVA_VM
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Java VM

You can obtaing REG.EXE for Windows 2000 from the installation media in the SUPPORT\TOOLS folder. For more information about the Support Tools see KB301423

Or you can manually edit the registry using REGEDIT.EXE