Security Update for SQL Server 2000 Service Pack 4 (KB960083) fails to install

Not many of you will see this, problem manifests if a SQL instance service is set to Disabled.

Client System EventLog:

Installation Failure: Windows failed to install the following update with error 0x80070643: Security Update for SQL Server 2000 Service Pack 4 (KB960083).

Client WindowsUpdate log:

Handler :: START ::  Handler: Command Line Install
Handler :::::::::
Handler   : Updates to install = 1
Handler   : WARNING: Command line install completed. Return code = 0x00002b33, Result = Failed, Reboot required = false
Handler   : WARNING: Exit code = 0x8024200B
Handler :::::::::
Handler ::  END  ::  Handler: Command Line Install
...
...
...
COMAPI   - WARNING: Exit code = 0x00000000; Call error code = 0x80240022
REPORT EVENT: {B3B18A60-1D96-4D2B-A657-E4CDD945C7B0} <TRIMMED OUT THIS DATA} 101 80070643 CcmExec Failure Content Install Installation Failure: Windows failed to install the following update with error 0x80070643: Security Update for SQL Server 2000 Service Pack 4 (KB960083).

Lovely errors! Pass those 3D-Glasses over the error above, and you should see hidden text saying "You have a service that is disabled".  If only!

Hop on to the target, find the patch in the ConfigMgr CACHE and manually run it. The Wizard will prompt you to select the instances to patch. Click on any Instances listed and it'll tell you what is wrong, that in this case, the service is disabled. Quit the patch when you've spotted the culprit.

To install it manually:

  • Enable the service (MANUAL best choice if it's already been disabled for a reason)
  • Apply the patch
  • Set the service back to DISABLED
  • Job done!

How much impact is this to us? Well that depends, as you know everything in life, even stuff as sublime as "Should you have Milk in your tea?" really depends on your tastes and preferences, and in this case you may have a taste for disabling SQL Instances. If you do, then those clients will play dumb when it comes to applying the patch.

The KB Article does indeed talk about Disabled Services:

Q. Will the updates be applied to disabled instances of SQL Server 2000, MSDE 2000, and SQL Server 2005?

A. No. Only those instances of SQL Server 2000, MSDE 2000, and SQL Server 2005 that do not have a Startup type of disabled will be updated by the installer. For more information on disabled services, see Microsoft Knowledge Base Article 953740.

I just whipped this SQL Query up to identify ConfigMgr clients out there that meet the following: 

  • A) Have a service registered with a name that begins with "MSSQL$"
  • B) Has the service type set to Disabled

SELECT     v_GS_SERVICE.DisplayName0, v_GS_SERVICE.StartMode0, v_R_System.Name0 AS Expr1
FROM         v_GS_SERVICE INNER JOIN
                      v_R_System ON v_GS_SERVICE.ResourceID = v_R_System.ResourceID
WHERE     (v_GS_SERVICE.DisplayName0 LIKE 'MSSQL$%' and V_GS_SERVICE.StartMode0 = 'Disabled')