If you have an environment that that does not use SYSPREP you have a good chance that you will have duplicate WSUS IDs on your network and alot of system not patching properly.
These pair of scripts will query your WSUS DB and if the computer name does not match the WSUS id in the database it will reset the WSUS ID on the workstation.
wsusclientid.asp -> install on WSUS server
<% susid = Request.QueryString("susid") suscname = Request.QueryString("suscname") connstring = "Driver={SQL Native Client};Server=localhost;Database=SUSDB;UID=wsusid;PWD=DBPASSWORD" Set objConn = Server.CreateObject("ADODB.Connection") objConn.ConnectionString = connstring objConn.Open Set rs = objConn.execute ("select COUNT(ComputerTargetId) AS records from PUBLIC_VIEWS.vComputerTarget where (ComputerTargetID = '" & susid & "' and Name Like '" & suscname & "%');") response.write rs("records") rs.close %>
susCLientID.vbs -> run as Startup Script
'stephen 'Check and correct duplicate sus client ids on the network 'this has a sister script on the wsus server to talk to. 'get susclientid Set objRegistry = CreateObject("Wscript.shell") Set WshNetwork = WScript.CreateObject("WScript.Network") set oxmlhttp=createobject("msxml2.xmlhttp") suscname = WshNetwork.ComputerName susclientid = objRegistry.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\SusClientID") oxmlhttp.open "GET", "http://wsus.SERVER.local/wsusclientid.asp?susid=" & susclientid & "&suscname=" & suscname, false oxmlhttp.send "" response = oxmlhttp.responseText if (response = 0 ) then objRegistry.regdelete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\SusClientID" objRegistry.regdelete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\SusClientIdValidation" WScript.Sleep 10000 objRegistry.run "net stop wuauserv" WScript.Sleep 10000 objRegistry.run "net start wuauserv" WScript.Sleep 10000 objRegistry.run "wuauclt /resetauthorization /detectnow" WScript.Sleep 10000 objRegistry.run "wuauclt /r /reportnow" WScript.Sleep 10000 end if