Depending on your imaging method some clients may not show up on your WSUS console, and refuse to check for updates. Since starting my new job I’ve seen this occur on machines which have been imaged with a non-sysprepped image. I quickly whipped up a script to reset some settings and forcing the machine to contact your WSUS server and retrieve a new Client Id and thus show up in your console.
Dim objShell, strKeyPath, strValueName,strComputer
set objShell = wscript.createObject("wscript.shell")
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate"
strValueName = "SUSClientIdReset"
objRegistry.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, dwValue
IF (dwValue = "1") Then
'do nothing
Else
objRegistry.DeleteValue HKEY_LOCAL_MACHINE,strKeyPath,"SusClientId"
objRegistry.DeleteValue HKEY_LOCAL_MACHINE,strKeyPath,"SusClientIdValidation"
Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where Name = 'wuauserv'")
For Each objService in colServiceList
If objService.State = "Running" Then
objService.StopService()
Wscript.Sleep 10000
objService.StartService()
End If
Next
objShell.Run("wuauclt /resetauthorization /detectnow ")
Wscript.Sleep 10000
objShell.Run("wuauclt /r /reportnow")
'Set reg value for SUSClientIdReset for checking against later.
dwValue = "1"
objRegistry.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, dwValue
End If
Run that on the effected machine with Admin Rights and the client will eventually appear in your WSUS Console.
As for the cause, the master image was joined to the domain and tested. During that time received group policy settings which included WSUS and contacted the server settings it’s clientId.
Hope that helps.

Leave a Reply