miércoles, abril 13, 2011

Solucionando errores de actualizaciones de Windows

Hoy me he encontrado con una serie de actualizaciones disponibles para Windows XP. En fin, utilizo WindowsUpdate y comienza la instalación, sin embargo me devuelve un error de instalación en las siguientes:

  • KB2446708 : Actualización de seguridad para Microsoft .NET Framework 4
  • KB2446704 : Actualización de seguridad para .NET Framework 2.0 SP2 y 3.5 SP1 en Windows Server 2003 y Windows XP x86

El instalador de WindowsUpdate no devuelve ninguna información relevante sobre el error, y tras hacer varios intentos opto por realizar la instalación a mano y resolver los problemas uno a uno. Lo comparto por si es de utilidad a otras personas.

Investigo el log de la instalación, ubicado en C:\WINDOWS\, en un archivo llamado WindowsUpdate.log, donde encuentro una línea que hace referencia al paquete que estaba instalando avisando de Errer (Installation Failure) y con código de error 0x80070643. Pues bien, vamos a buscar una solución a ese error.

Empiezo solucionando el primer error, el de KB2446708.

Lo primero que hago es bajarme el paquete KB2446708 directamente de la web de Microsoft. Como tengo Windows XP, opto por el archivo NDP40-KB2446708-x86.exe.

Ejecuto la instalación y me devuelve el mismo error. Una vez que devuelve el error el instalador, aparece una pantalla en la que te da la posibilidad de acceder al log de registro (archivo de registro) de la instalación, que va a ser uno de los ficheros que le envíe a Microsoft para informarles del fallo en el caso de que decidamos enviarlo. Abro el archivo (que se abre en un navegador) y marco todos las opciones de Message Types (Errors, Verbose, Messages) y Message Details (Date Time) que ofrece. Desplazándome por el texto del log, encuentro un texto resaltado en rojo claro, el cual incluye el primer error. En este caso se puede leer lo siguiente:

4/13/2011, 11:57:44] Returning IDOK. INSTALLMESSAGE_ERROR [No se puede abrir la clave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security\ServiceModel 4.0.0.0. Compruebe que dispone de suficientes derechos de acceso a esa clave o póngase en contacto con el personal de soporte técnico. ]

Bien, ya tenemos identificado el error en ese paquete, se trata de un fallo de permisos en el registro de windows. La solución es sencilla:

  • Inicio->Ejecutar->regedit (esto último tengo que teclearlo)
  • En el registro voy buscando en el árbol la clave que cita el error: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security\ServiceModel 4.0.0.0.
  • Pincho con el botón derecho del ratón y selecciono la opción Permisos.
  • En la pestaña de seguridad, compruebo que el único grupo de usuarios que aparece es SYSTEM, lo cual indica que no hay permisos de administrador y es lo que causa el fallo.
  • Pincho en el botón Agregar y tecleo el nombre Administradores. Pulso aceptar.
  • Ahora en el panel de Permisos de Administradores marco los checkboxes de Permitor en los permisos “Control Total” y “Leer”. Pulso en aceptar.
  • Con esto ha quedado solucionado el error detectado y por tanto ya puedo cerrar la pantalla del registro.

Ahora vuelvo a arrancar el instalador de la actualización KB2446708. Esta vez la instalación acaba con éxito.

Más adelante publicaré cómo resolver el siguiente error.

2 comentarios:

Anónimo dijo...

esa solucion tambien se aplica a Windows 7??

airon dijo...

No poseo Windows 7 y no lo he trasteado a ese nivel. Aún así, la forma de instalar actualizaciones, uso del registro, logs y más es muy parecido en todas las versiones de Windows recientes. Puedes probar a seguir los pasos descritos. Si desinstalas una actualización el sistema te la volverá a mostrar si es necesaria, etc. Lo de reparar el registro también funciona, eso sí, tienes que mirar en los logs el fallo que te da. En el registro tienes que ser cuidadoso con lo que tocas, ya que si se eliminan o alteran ciertas entradas por error puede volverse inestable el sistema.