miércoles, abril 13, 2011

Solución al error de instalación de KB2446704 en Windows XP

En la entrada anterior comenté que he tenido dos problemas con la última actualización para XP SP3 mediante Windows Update. Habiendo resuelto la primera, quedaba por resolver el problema correspondiente a KB2446704 (De Microsoft .NET 2.0 SP2 y 3.5).

Opero de la misma forma que antes. Descargo directamente el paquete KB2446704 desde los servidores de Microsoft, en mi caso el archivo NDP20SP2-KB2446704-v2-x86.exe.

Ejecuto el archivo y comienzo el proceso de instalación, que acaba en error, diciendo “Error grave durante la instalación”. Pincho de nuevo en el botón “Ver el archivo de registro” para ver el log de la instalación.

Abriendo el registro obtengo el siguiente error:

Returning IDOK. INSTALLMESSAGE_ERROR [El instalador encontró un error inesperado al instalar este paquete. Esto puede indicar un problema con este paquete. El código de error es 2721. ]

En el registro también aparece un enlace a un fichero de texto Msi Log, el cual abro. Buscando errores (Error, Failure,…) veo líneas que apuntan a errores aplicando parches, encontrando versiones de ficheros diferentes a las esperadas.

Al no encontrar errores de permisos u otros fallos obvios me decido a desinstalar los paquetes de .NET relacionados con la actualización. Por tanto, me voy al panel de control, agregar o quitar programas y busco todas las actualizaciones relacionadas con lo siguiente:

  • .NET 2.0
  • .NET 3.0
  • .NET 3.5

Las desinstalo todas, una a una.

Una vez concluida la instalación abro Windows Update de nuevo. Y me muestra una instalación para .NET 3.5. Esta vez se instala sin problemas.

Cierro Windows Update y lo vuelvo a abrir, me muestra ahora varias actualizaciones relacionadas con .NET, algunas de alta prioridad y otras opcionales.

Aplico las de alta prioridad, que son para los .NET que he eliminado y le doy a instalar. La instalación finaliza con éxito.

Vuelvo a reiniciar Windows Update para aplicar las actualizaciones opcionales de .NET, son básicamente para incluir ficheros de idiomas. Esta vez me muestra dos grupos de opcionales. El primer grupo es más moderno e incluye las actualizaciones del segundo, por tanto me decido por este. Le doy a instalar y lo hace correctamente.

Abro de nuevo Windows Update y compruebo que ya no hay más actualizaciones pendientes.

De esta forma he resuelto el problema de instalación.

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.