En algunas ocasiones, hay máquinas que presentan problemas para la detección del servidor de WSUS, y por lo tanto, no son capaces de actualizarse.
Una vez que hemos comprobado que el cliente de WSUS tiene forzada la política de seguridad y que apunta correctamente a un servidor de WSUS, debería aparecer en la consola de administración, desde donde se pueden configurar las actualizaciones necesarias.
Si la política no está aplicada o la máquina no pertenece a un dominio, es posible añadir las siguientes claves de registro, para que se comunique con el servidor WSUS que queramos:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\windows\WindowsUpdate]
"WUServer"="http://lean01076:8530"
"WUStatusServer"="http://NUESTRO SERVIDOR WSUS:PUERTO CONFIGURADO"
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\windows\WindowsUpdate\AU]
"UseWUServer"=dword:00000001
"NoAutoRebootWithLoggedOnUsers"=dword:00000001
"DetectionFrequencyEnabled"=dword:00000001
"DetectionFrequency"=dword:00000001
"NoAutoUpdate"=dword:00000000
"AUOptions"=dword:00000002
"ScheduledInstallDay"=dword:00000000
"ScheduledInstallTime"=dword:00000009
En el caso de clientes, que no reportan a la consola de WSUS, lo primero es ejecutar el comando: wuauclt /resetauthorization /detectnow
Si esto no funciona, entonces podemos probar a reinstalar el cliente de WSUS en la máquina cliente. Se puede descargar aquí.
Antes de volver a instalar, a veces es conveniente borrar los ficheros ejecutables del cliente wsus, que se encuentran en la ruta %windir%\system32: Wuauclt1.exe y Wupdmr.exe
Si con estos sencillos pasos no conseguimos que el cliente aparezca en la consola de WSUS, tendremos que investigar los logs en la ruta %windir%\WindowsUpdate.log.
Además, existe una herramienta que nos facilitará la tarea en la detección de errores, llamada ClientDiag.
Una vez ejecutada en el cliente, obtendremos una salida parecida a esta:
El significado de cada línea es el siguiente:
Checking for admin rights to run tool: Permiso para ejecutar esta herramienta.
Automatic Updates Service is running: El servicio de actualizaciones automáticas está corriendo.
Background Intelligent Transfer Service is running: Comprueba que el servicio BITS está corriendo.
Wuaueng.dll version 7.6.7600.256: Versión de la DLL de Automatic Updates. Este dato es muy importante, si hay problemas de actualización podemos probar a actualizar el cliente a la última versión disponible.
Checking AU Settings: La configuración que tiene el cliente de WSUS en el equipo y si es por política o local. En este caso “Scheduled Install”.
Checking for winhttp local machine Proxy settings: Si el proxy está activado y también si la conexión es directa al servidor (hablaré más adelante sobre errores en esta configuración).
Checking User IE Proxy settings: La configuracion de Proxy en el equipo.
Checking Connection to WSUS/SUS Server: La configuración del servidor de WSUS. Los parámetros que tiene configurados el cliente. Si tiene errores de conectividad, se puede comprobar que tenga conexión al puerto configurado del servidor que aparece en esta línea (en este caso, TCP 8530).
UseWuServer is enabled: Si el cliente está configurado para utilizar un servidor WSUS.
Connection to server: Si el equipo se conectó al servidor que está previamente definido.
SelfUpdate folder is present: Si el directorio necesario para el Update local está creado o no.
Si nos muestra un error de "WinHttpDownloadFileToMemory”, y además en el log de WindowsUpdate.log tenemos un warning de “WinHttp: SendRequestToServerForFileInformation failed with 0x80190194”, el problema se encuentra en la configuración del proxy winhttp:
Debemos ejecutar en la línea de comandos proxycfg.exe.
Si está configurado, éste es el origen de nuestro problema, y obtendremos una salida parecida a esta:
Una vez borrada la clave de registro a la que hace referencia, la salida del comando debe ser:
Para forzar la comunicación con el servidor después de realizar el cambio, debemos ejecutar: wuauclt /resetauthorization /detectnow.
Otro de los errores más comunes es: Error VerifyProxy() failed with hr=0x80070002.
El problema radica en los sufijos del dominio. Para solucionarlo tenemos que cambiar la siguiente clave de registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
Es necsario añadir un "String Value", con nombre Domain y en el campo datos, el nombre FQDN de nuestro dominio.
Una vez realizado este paso, iremos a las propiedades de la tarjeta de red de la máquina con problemas, para asegurarnos la correcta configuración de los sufijos DNS.
Posteriormente, hay que reiniciar el servicio de actualizaciones automáticas y comprobar si ahora reporta correctamente a la consola de WSUS.
Existen más problemas relacionados con las actualizaciones, y normalmente se pueden solucionar con la ejecución de algunos comandos, que he incluido en ficheros de procesos por lotes, para que sea más cómodo su uso.
Cuando una máquina no reporta a la consola, se puede ejecutar el siguiente script:
net stop wuauserv
REG DELETE "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v LastWaitTimeout /f
REG DELETE "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v DetectionStartTime /f
REG DELETE "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v NextDetectionTime /f
net start wuauserv
regsvr32 /s wuapi.dll
regsvr32 /s wuaueng.dll
regsvr32 /s wuaueng1.dll
regsvr32 /s wucltui.dll
regsvr32 /s wups.dll
regsvr32 /s wuweb.dll
regsvr32 /s jscript.dll
regsvr32 /s alt.dll
regsvr32 /s msxml3.dll
regsvr32 /s softpub.dll
regsvr32 /s wups2.dll
regsvr32 /s Mssip32.dll
regsvr32 wuweb.dll /s
regsvr32 msxml.dll /s
regsvr32 msxml2.dll /s
regsvr32 initpki.dll /s
regsvr32 wintrust.dll /s
regsvr32 dssenh.dll /s
regsvr32 rsaenh.dll /s
regsvr32 gpkcsp.dll /s
regsvr32 sccbase.dll /s
regsvr32 slbcsp.dll /s
regsvr32 cryptdlg.dll /s
regsvr32 jscript.dll /s
regsvr32 alt.dll /s
wuauclt /resetauthorization /detectnow
Para máquinas que han sido clonadas, es neceario generar un nuevo ID para el cliente de WSUS:
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v AccountDomainSid /f
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v PingID /f
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v SusClientId /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SUSClientIDValidation /f
cls
net stop wuauserv
net start wuauserv
wuauclt /resetauthorization /detectnow
Por último, si a pesar de haber realizado los anteriores pasos, el cliente aún no reporta a la consola, empleo el siguiente script, que detiene el servicio de WMI, mueve algunos log y fuerza las políticas:
net stop wuauserv
net stop winmgmt
copy %systemroot%\softwaredistribution\reportingevents.log %homedrive%\
del /f /q %systemroot%\softwaredistribution\*.*
move %homedrive%\reportingevents.log %systemroot%\softwaredistribution
SET WU_KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate
reg delete %WU_KEY% /v SusClientID
reg delete %WU_KEY% /v AccountDomainSid
SET WU_KEY=
net start wuauserv
net start winmgmt
gpupdate /force
wuauclt /resetauthorization /detectnow
Espero sea de utilidad.
Gracias por leer mi blog.
No hay comentarios:
Publicar un comentario