UPDATE: Read this before installing Service pack 3.
I finished downloading service pack 3 about three weeks ago and waited another week to install. When I finally tried to install it, I got an ACCESS IS DENIED, Service Pack 3 installation did not complete error message. I wasn’t too bothered until yesterday when I decided to try again and failed again.
On the next try I ran an older version of process monitor in the background just before the error occurred, and ended the capture as soon as the error occurred. I then filtered the output according to process name (update.exe) and result (access denied). It made mention of some temp files with the name set***.tmp in windows\system32 that it was unable to access. I deleted these files. It also mentioned 4 registry keys in the HKCR\.rtf. I opened regedit and set the permissions for system and administrators for the .rtf tree to full access. I tried to install service pack 3 again and again access was denied. I then done it again using my process monitor method. This yielded no results.
Next I turned to the internet and found this fix at microsoft’s website. http://support.microsoft.com/kb/949377
I followed step number 3 after disconnecting my machine from the network and disabling my Anti-malware software. I downloaded Subinacl.MSI, installed it, created the reset.cmd file and executed it. It mentioned 6 failures and after about 5 minutes I got a bluescreen (I’ve set my pc not to automatically restart on system failure, automatic restarts on system failure makes troubleshooting difficult) mentioning REGISTRY ERROR some text and then Stop Error 0×53 (I left out a few zeros between the ‘x’ and the 53). Lovely. I tried the fix a second time. BSOD again.
I then downloaded Rootkit revealer as I suspected a root kit might be the cause. It found quite a few inconsistencies in the registry including 6 null-embedded keys in HKLM\Security\Policy\. I downloaded regdelnull.exe and scanned as follows (based on output from Rootkit revealer).
RegDelNull.exe -s hklm\security\policy\secrets
It deleted these 6 keys for me.
HKLM\SECURITY\POLICY\SECRETS\SAC*
HKLM\SECURITY\POLICY\SECRETS\SAI*
HKLM\SECURITY\POLICY\SECRETS\SCM:{6C736D4F-CBD1-11D0-B3A2-00A0C91E29FE}*
HKLM\SECURITY\POLICY\SECRETS\SCM:{C36729C6-65AB-4A6F-8B96-53FF94E3A8D2}*
HKLM\SECURITY\POLICY\SECRETS\SCM:{D0362CF9-9DAC-4898-8D1A-CC11034B1B68}*
HKLM\SECURITY\POLICY\SECRETS\SCM:{D1362CF9-9DAC-4898-8D1A-CC11034B1B68}*
I tried the Microsoft fix again, it mentioned no failures but I got the REGISTRY ERROR BSOD again, but this time Stop error 0×51.
I tried to install service pack 3 on my other hardly ever used machine this time. Access is denied. I tried the SP3 fix. It ran through without faulting. I rebooted and sure enough service pack 3 installed without any error.
I’m back to my machine again. I downloaded the Microsoft Malicious Software Removal Tool for May 2008 (version 1.41) and done a complete scan (my AV was up to date but I wanted another opinion). After four hours and 17 minutes, It found one file which contained W32/Trojan:Win32/Virtumonde.gen in C:\WINDOWS\Help\nvcpl\fontbas.dll. If the trojan was active on my system I would have know as I didn’t experience any of the symptoms that comes with this trojan. I ran the SP3 subinacl fix again and dammit I got the blue screen again.
Since the computer was blue screening while running subinacl on HKLM I decided to omit the HKEY_LOCAL_MACHINE line (second from the top) from reset.cmd and saved it as reset2.cmd. It should look something like this (Word press formating breaks each line into two lines in the display but copying and pasting from the page into notepad should work).
cd /d “%ProgramFiles%\Windows Resource Kits\Tools”
subinacl /subkeyreg HKEY_CURRENT_USER /grant=administrators=f /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=administrators=f /grant=system=f
subinacl /subdirectories %SystemDrive% /grant=administrators=f /grant=system=f
subinacl /subdirectories %windir%\*.* /grant=administrators=f /grant=system=f
secedit /configure /cfg %windir%\repair\secsetup.inf /db secsetup.sdb /verbose
Great stuff. The fix ran right to the very last line. I restarted, crossed my fingers and started the windows XP SP3 install again. Service pack 3 installed completely without displaying any on screen errors (there are a few in the log but they don’t seem serious).
Just by the way. While getting the necessary links for this blog article I took note of the heading at the MS page and took a look at my C:\WINDOWS\svcpack.log . Why didn’t I look at this file right in the beginning? Well, I didn’t know it existed and I didn’t do any planning before installing SP3 (I have NO critical unbacked up data, that’s planning enough). The idea behind installing SP3 was to check it out before I start recommending it to family, friends and enemies.
It seems 3 log files are modified/created in C:\WINDOWS during the update to service pack 3
· spupdsvc.log (Service Pack Update Service, I presume)
· spuninst.log (SP Uninstall, only when the SP3 update fails, I guess by looking at it’s content)
· svcpack.log (the actual log of what went on during the install)
Here is an extract from my svcpack.log file for the access denied part of the install (edited):
792.328: PruneCatalogsFromHotfixes:RegQueryValueEx Failed: 0×2
792.328: Num Ticks for Copying files : 320438
796.937: DoRegistryUpdates:UpdSpInstallFromInfSection Failed for ProductInstall.GlobalRegistryChanges.Install error: 0×5
796.937: INF_REGISTRY Failed
796.937: DoInstallation:DoRegistryUpdates failed
805.609: Unregistration of sprecovr successful
805.625: Access is denied.
808.625: Message displayed to the user: Access is denied.
808.625: User Input: OK
808.625: Service Pack 3 installation did not complete.
Windows XP has been partially updated and may not work properly.
1249.203: Message displayed to the user: Service Pack 3 installation did not complete.
1249.203: Update.exe extended error code = 0×5
1249.203: Update.exe return code was masked to 0×643 for MSI custom action compliance.
Shutdown Initiated in Self Extractor
Yes, It took a long time to get it done but I did not want to format my system.