WSUS Missing/Vanished Computer in Managemt Console

Posted on 7 settembre 2012 di

0


Può succedere che nella console di amministrazione di WSUS un computer precedentemente presente scompaia ed al suo posto si presenti un altro computer. Questo avviene soprattutto quando si lavora con le macchine virtuali (clonate) o con i sistemi deployati da immagini template. La causa principale di questo malfunzionamento è che sotto:

HKLM\Software\Microsoft\Windows\CurrentControlVersion\WindowsUpdate

viene settata una chiave di registro che identifica il computer quindi anche facendo un newsid del pc clonato la modifica non viene recepita da WSUS.

Per ovviare a questo malfunzionamento:

  1. Eliminare le chiavi persenti sotto il percorso di registro precedentemente citato.
  2. Stoppare e Riavviare il servizio degli aggiornamenti (wuauserv).
  3. Riautorizzare il server con il comando: wuauclt.exe /resetauthorization /detectnow

Volendo farlo via script:

 

‘——————–8<———————-
Set oShell = CreateObject(“WScript.Shell”)

sRegKey = “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate”

On Error Resume Next
‘ Delete registry values
oShell.RegDelete sRegKey & “\AccountDomainSid”
oShell.RegDelete sRegKey & “\PingID”
oShell.RegDelete sRegKey & “\SusClientId”

‘ Stop and start the Automatic updates service
oShell.Run “%SystemRoot%\system32\net.exe stop wuauserv”, 0, True
oShell.Run “%SystemRoot%\system32\net.exe start wuauserv”, 0, True

‘ Run wuauclt.exe with resetauthorization
sCmd = “%SystemRoot%\system32\wuauclt.exe /resetauthorization /detectnow”
oShell.Run sCmd, 0, True

MsgBox “Finished!”, vbSystemModal+vbInformation

‘——————–8<———————-

o in alternativa se si vuole implementarlo via policy e farlo eseguire una sola volta lo si modifica con un controllo ulteriore:

 

‘——————–8<———————-
Set oShell = CreateObject(“WScript.Shell”)

sRegKey = “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate”

‘ suppress error in case values does not exist
On Error Resume Next

‘ check for marker
sIDDeleted = oShell.RegRead( sRegKey & “\IDDeleted”)

‘ to be sure values is only deleted once, test on marker
If sIDDeleted <> “yes” Then
‘ delete values
oShell.RegDelete sRegKey & “\AccountDomainSid”
oShell.RegDelete sRegKey & “\PingID”
oShell.RegDelete sRegKey & “\SusClientId”

‘ Stop and start the Automatic updates service
oShell.Run “%SystemRoot%\system32\net.exe stop wuauserv”, 0, True
oShell.Run “%SystemRoot%\system32\net.exe start wuauserv”, 0, True

‘ Run wuauclt.exe with resetauthorization
sCmd = “%SystemRoot%\system32\wuauclt.exe /resetauthorization /detectnow”
oShell.Run sCmd, 0, True

‘ create marker
oShell.RegWrite sRegKey & “\IDDeleted”, “yes”
End If
‘——————–8<———————-

Fonte Script

 

Annunci
Messo il tag:
Posted in: Microsoft, scripting