Menu

Error 0x80070490 en Windows Update y Server Manager en Windows Server 2008

26/02/2010 - Troubleshooting

El problema
Un cliente me notifica que en un Windows 2008 no se podía instalar service pack 2 debido a un error en Windows Update. El error era 0x80070490. Adicionalmente, cuando se abría Server Manager y se trataban de listar los roles o featues del servidor aparecía el mismo error.

El Desarrollo de la solución
Luego de investigar el varios foros llegué al artículo KB958044. En este artículo se describen dos soluciones para Windows 2008, Windows 2008 R2, Windows Vista o Windows 7, la primera es correr el aplicativo checksur.exe (Check System Update Readiness Tool) o … reparar la instalación de Windows 2008… :S.
Como obviamente no iva a reparar el sistema operativo, y menos en un servidor de producción… aunque hosteaba un par de máquinas virtuales de Desarrollo (je)… me decidí por probar con la primera opción :D.
Luego de descargar la actualización del artículo, en la carpeta C:windowslogscbs encontré el archivo checkSUR.log con el siguiente contenido:
=================================
Checking System Update Readiness.
Binary Version 6.0.6002.22285
Package Version 7.0
2010-02-11 09:18
Checking Windows Servicing Packages
Checking Package Manifests and Catalogs
Checking Package Watchlist
Checking Component Watchlist
Checking Packages
(f) CBS Registry Error 0x80070002 Package_for_KB948610~31bf3856ad364e35~amd64~~6.0.6001.2123 failed to get CurrentState
(f) CBS Registry Error 0x80070002 Package_for_KB948610~31bf3856ad364e35~amd64~~6.0.6001.2123 failed to get Visibility
Checking Component Store
Summary:
Seconds executed: 215
Found 2 errors
CBS Registry Error Total count: 2

Teoricamente CeckSUR resuelve problemas conocidos de errores de Windows Update (ver el artículo KB947821 para ver una lista completa) pero como siempre ocurre, el número de error que tenemos no está dentro de la lista… con lo cual volví a sumergirme en las entrañas del guguel en busca de más respuestas o soluciones.
Este error puede darse por varios motivos y como es lógico, hay varias soluciones, pero ninguna aplicaba (algunos recomendaban renombrar la carpeta de cache de downloads de Windows Update, otros revisar si existían los archivos en la carpeta C:WindowsservicingPackages y reemplazar o copiar los archivos faltantes por otra instalación). Por ende volví a las bases… es decir… a leer el artículo descriptivo de checkSUR como corresponde 😀

La solución
La respuesta vino por asociación, luego de leer el artículo obtuve la siguiente entrada de la registryHKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionComponent Based Servicing
Entonces… como el error 0x80070002 en el artículo apunta a File not Found (cosa que no era así ya que los archivos de servicing tanto en la carpeta de Windows Update como los .cat y .mum existían) se me ocurrió pensar que podía faltar una entrada de la registry…. De hecho… el archivo CheckSUR.log me lo indica clarito desde el primer momento!.

Finalmente dentro de la clave HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionComponent Based ServicingPackage_for_KB948610~31bf3856ad364e35~amd64~~6.0.6001.2123 no había datos. La clave estaba creada pero no existía ningún registro dentro de la clave. Entonces, como precaución, exporte la clave vacía (si.. siempre hacer backup de lo que uno toca, ya sea archivo de texto, registry, o lo que sea!!) y me fui a un Windows 2008 con la misma versión del que tenía el problema. Exporte la clave de registro y la importe en el servidor con el problema…
Y voilá… probé correr Service Pack 2 y funcionó (excepto cuando llego a la comprobación de espacio… el servidor tenía poco espacio… por lo que quedó pendiente la instalación, pero ya este no era mi problema!)