Windows Vista: Cannot install Service Pack 2

Hello,

a customer had the problem that he couldn’t install the Windows Vista Service Pack 2 on his Laptop. Service Pack 1 seems to be installed, but the Service Pack 2 Setup says it isn’t.

Service Pack 2 Setup do not recognize Service Pack 1
Service Pack 2 Setup do not recognize Service Pack 1

I processed a query by using the WMI Command line tool and filtered for Service pack 1 (Hotfixnumber KB936330).

wmic qfe|findstr /I 936330

But in the list of installed hotfixes KB936330 is not listed. WinVer.exe reports a Vista with Service Pack 1 installed.

WinVer report


I was confused. Maybe Service Pack 1 wasn’t installed properly. I started the Service Pack 1 installation again but Microsoft do not provide any command line option for repairing a corrupt or incomplete service pack installation. Setup simply says that Service pack 1 is already installed. Also a deinstallation is impossible because the Hotfix is not listed in the installed update list.

I had to determine on which basis the service pack 2 installer recognize an installed service pack 1.

I started Microsofts ProcessMonitor and traced what happen when the Service Pack 2 Setup starts to see which values were requested. A simple filter set to 936330 lists 2 suspicious registry keys:

Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\KB936330~31bf3856ad364e35~x86~~6.0.1.18000]

"CurrentState"=dword:00000004
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\KB936330~31bf3856ad364e35~x86~en-US~6.0.1.18000]
"CurrentState"=dword:00000004

In both keys there is the value “CurrentState” which is set to 4. I took a look on other Packages and their CurrentState is 7.

Trying to change he values returned access denied. So I had to take over the ownership of both keys and subcontainers and grant full control permissions to me.


Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\KB936330~31bf3856ad364e35~x86~~6.0.1.18000]
"CurrentState"=dword:00000007
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\KB936330~31bf3856ad364e35~x86~en-US~6.0.1.18000]
"CurrentState"=dword:00000007

I changed both values to 7 and started the setup again. Now Service pack 1 was recognized as installed and service pack 2 was applied successfully:-)

Michael

Leave a Reply Cancel reply