Clients stop reporting after WSUS 3.0 is upgraded to SP1

Here's an interesting problem Mike Johnson, one of our top Support Escalation Engineers in the WSUS group found.  If you upgrade to WSUS 3.0 SP1 and notice a problem with your clients then this may be what you're running into:

========

Problem: After a WSUS 2.0 SP1 or WSUS 3.0 server is upgraded to WSUS 3.0 SP1, you may notice that clients no longer report into the server.  Additionally, you may notice that new clients show a reporting status of, "The computer has not reported status yet."  Your WSUS 3.0 SP1 Application log may also show the following warning:

Event ID 13042
Self-update is not working.

Cause: After the upgrade to Service Pack 1 the /SelfUpdate virtual directories on
port 80 and/or 8530 may be missing.

Resolution: You can manually re-create these virtual directories to resolve the issue or you can run the script below that will basically rerun the Selfupdate/Clientwebservice install the same way setup does. If you use the script just remember that you'll need to run it with cscript like this:

C:Program FilesUpdate Servicessetup>cscript rerunSelfupdateSetup.vbs

Here's the example script:

========

Option Explicit

Dim fileSystemObject, file, text, shell

Set fileSystemObject = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("WScript.Shell")
Set file = fileSystemObject.OpenTextFile("installselfupdateonport80.vbs")

' Read the script in, this causes the SxS code to run. This will end up getting run twice, but it is safe
text = file.ReadAll
file.Close
ExecuteGlobal text

' We need to overwrite this method or it will fail the script. We set the variables manually so its safe
text = "Sub ParseArguments" & vbCrLf & "WScript.Echo ""Skipping ParseArguments""" & vbCrLf & "End Sub"
ExecuteGlobal text

' Set the variables that ParseArguments would have
gWusWebSiteIndex = GetWUSWebSiteIndex
szTargetDirPath = shell.ExpandEnvironmentStrings("%programfiles%Update Services")

' Debugging, print them out
WScript.Echo "gWusWebSiteIndex: " & gWusWebSiteIndex
WScript.Echo "szTargetDirPath: " & szTargetDirPath

' Run the full SelfUpdate install
WScript.Echo "SetupSelfupdateTree returned: " & SetupSelfupdateTree

========

Hope this helps,

J.C. Hornbeck | Manageability Knowledge Engineer