Windows Update, o Actualizaciones Automáticas en español, es quizá, una de las características más importantes de un sistema operativo Windows, ya que desde aquí, es donde podemos conectarnos cada segundo martes del mes a descargar los nuevos parches y fixes de seguridad que provee Microsoft desde sus servidores; aunque también suelen salir actualizaciones más importantes denominadas ‘Fuera de banda’, que solucionan algún agujero detectado y que puede ser vital para la integridad del sistema operativo.
Hasta aquí todo perfecto, puesto que si mantenemos las actualizaciones activas, y las unimos con algunas buenas prácticas, podemos estar bien protegidos, el problema está cuando Windows Update no funciona correctamente.
Como con cada producto de Microsoft, hay diferentes códigos de error que suelen decir poco o nada, aunque definitivamente, dan una referencia en la gran mayoría de veces precisa hacia dónde puede estar el problema.
Windows Update tiene múltiples código de error que pueden surgir si hay inconvenientes buscando, o instalando actualizaciones, algunos muy bien documentados en las KB de Microsoft, algunos como el de este post, aunque populares e identificados con posibles causas, no lo están.
El problema
En los Foros de Microsoft TechNet, se ha vuelto muy popular un error en Windows Update en Windows 7 (Aunque no necesariamente ligado a esta versión), básicamente, se buscan y listan bien las actualizaciones, pero al momento de darle ‘Instalar ahora’, Windows Update presenta un error muy similar a la siguiente captura de pantalla:
El código de error que referencia es: “80246008”, y su mensaje suele ser: “Windows Update encontró un error desconocido”.
Si se le da al enlace de ‘Obtener ayuda con este error”, no es mucho lo que se pueda ver tampoco, sólo un código que referencia al error como: "WindowsUpdate_80246008" "WindowsUpdate_dt000" y algunos problemas relacionados, nada más.
No importa qué actualización se seleccione, siempre dará el mismo mensaje de error, y no se podrá instalar nada.
La causa
Si se busca por el código de error “80246008” en los sitios web de Microsoft, podremos encontrar una documentación en el sitio de Windows, y una KB que hace referencia al problema.
Ambas documentaciones hacen referencia a un Servicio llamado ‘Servicio de Trasnferencia Inteligente en Segundo Plano’ (Background Intelligent Transfer Service (BITS) debe estar presente y funcionando. En términos básicos, este servicio tiene como función de trasnferir en segundo plano archivos de descarga o carga entre el Cliente y el Servidor, además de proveer información sobre el progreso. En otras palabras, vemos este servicio cuando ponemos a instalar las actualizaciones y nos muestra tanto la información de la descarga que está haciendo, como el progreso general con la barra de color verde.
En este orden de ideas, es necesario tener el servicio corriendo, el problema está, en que con este código de error, lo más probable es que al buscar el Servicio, sea en inglés o en español (De acuerdo al idioma del sistema operativo), no lo encontraremos:
En resumen, Windows Update requiere tener el Servicio registrado y corriendo para poder hacer la trasnferencia, pero para este caso, el Servicio ni siquiera se encuentra visible en la Consola, por ende, tampoco está ejecutándose. Ese error suele presentar dos problemas, aunque bajo una misma raíz, es decir, el Servicio de Transferencia Inteligente en Segundo Plano (BITS).
La solución
La Consola de Servicios, presenta un lugar central donde se pueden visualizar todos los Servicios, su estado, sus dependencias, usuarios, y además, se pueden modificar para que inicie, se detenga, o se reinicie, entre otras cosas.
Sin embargo, cada Servicio que se visualiza allí, es porque está funcionando y registrado correctamente en una clave central del Registro para todo el equipo ubicada en:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
Aquí aparecen con su nombre real, que se puede ver en las Propiedades del Servicio en la Consola; para este caso, el nombre es: BITS.
Los que tengan este error sin embargo, notarán que la clave del Servicio sí aparece en el Registro de Windows:
¿Por qué si está la clave, no se registra en la Consola de Servicios? Pues bien, la respuesta es, que el hecho de que la clave y algunos valores existan, no quiere decir que esté bien, es decir, pueden haber valores y claves faltantes, o corruptos que impidan el funcionamiento del servicio, incluso, puede estar tratando de utilizar su DLL correspondiente que esté dañada también.
La forma más eficiente para detectar daños en las claves de Registro, es comparar con un fichero de Registro que se extraiga de un equipo funcional (Que el Serivicio aparezca y esté funcionando). Hasta el SDK para Windows 7, la herramienta por excelencia para hacer esta comparación, se llamaba WinDiff, pero, ya se descontinuó en la última versión del SDK que funciona para Windows 8 y versiones anteriores, por lo tanto, para este problema, recurrí a una herramienta fantástica llamada: KDiff3, disponible gratuitamente aquí: http://sourceforge.net/projects/kdiff3/
En este caso entonces, exporté la clave de BITS tanto del equipo que no funcionaba, como de un equipo que estaba en perfectas condiciones, después, desde KDiff3, se deben abrrir ambos archivos y él hará el trabajo de comparar y mostrar diferencias, esto fue lo que encontré:
Como lo muestra la captura, comparé el .REG bueno (El de la izquierda), contra el del equipo no funcional (Derecha), y la diferencia con respecto a valores y claves faltantes era inmensa.
Como hay dos claves que no se pueden eliminar en este Servicio (A menos que se cambien los permisos), el primer paso fue simplemente importar el fichero de Registro correcto al equipo no funcional, reiniciar para que Windows registrara nuevamente el servicio, y este fue el resultado:
¡Problema solucionado! =)
Si tienen este mismo problema, pueden descargar el fichero de registro BITS desde aquí:
Este es el enlace directo: http://sdrv.ms/TrheG0
Deben descomprimirlo, importarlo, asegurarse que se completó satisfactoriamente, reiniciar el equipo, y poner a descargar e instalar actualizaciones nuevamente.
En caso de que tengan el mismo código de error, y no se les solucione con esto, les agradezco comenten aquí y tratamos de investigar el problema.
Saludos,
Checho