miércoles, 5 de septiembre de 2012

Cruces rojas en lugar de las imágenes de cuentas de usuario en Windows XP

Un problema que si bien no es grave sí es molesto. Me topé con esto hace poco y decidí dedicarle una entrada en el blog.

Síntomas:

En el applet de Cuentas de usuario en Panel de control las imágenes de cuenta de uno o varios usuarios no se muestran y en su lugar hay cruces rojas muy similares a las que veríamos en Internet Explorer si navegamos a una página con imágenes que no se pueden cargar. Además, el cuadro donde deberían estar las imágenes predeterminadas que vienen con Windows está vacío.

La imagen de la cuenta no aparece a la izquierda del nombre de usuario cuando damos clic en Inicio.

En la pantalla de inicio de sesión no tiene por qué haber problemas. La imagen puede mostrarse correctamente allí. O bien puede mostrarse una imagen que no es la que recordamos haber seleccionado.

Posibles soluciones:

¿Están las imágenes de cuenta de usuario predeterminadas en el directorio donde el sistema espera encontrarlas?

Comprobamos que las imágenes de cuenta de usuario están en el directorio: C:\Documents and Settings\All Users\Application Data\Microsoft\User Account Pictures\Default Pictures (para sistemas en inglés)

C:\Documents and Settings\All Users\Datos de programa\Microsoft\User Account Pictures\Default Pictures (para sistemas en español)

La lista de archivos que deberían estar allí es esta:

Para Windows en inglés

  • airplane.bmp
  • astronaut.bmp
  • ball.bmp
  • butterfly.bmp
  • cat.bmp
  • fish.bmp
  • pink flower.bmp
  • guitar.bmp
  • snowflake.bmp
  • beach.bmp
  • car.bmp
  • chess.bmp
  • dirtbike.bmp
  • dog.bmp
  • drip.bmp
  • duck.bmp
  • frog.bmp
  • horses.bmp
  • kick.bmp
  • liftoff.bmp
  • palmtree.bmp
  • redflower.bmp
  • skater.bmp

Para Windows en español

  • Acrobacia en moto.bmp
  • Ajedrez.bmp
  • Arte marcial.bmp
  • Astronauta.bmp
  • Auto.bmp
  • Avión.bmp
  • Caballos.bmp
  • Copo de nieve.bmp
  • Despegue.bmp
  • Flor roja.bmp
  • Flor rosa.bmp
  • Gato.bmp
  • Guitarra.bmp
  • Mariposa.bmp
  • Palmeras.bmp
  • Patín.bmp
  • Pato.bmp
  • Pelota.bmp
  • Perro.bmp
  • Pez.bmp
  • Playa.bmp
  • Rana.bmp
  • Reflejo.bmp

Si no están allí deberemos copiarlas. Si tenemos a mano el CD de Windows XP, estas imágenes se encontrarán en el directorio i386 y se llamarán igual que los archivos en la lista de más arriba solo que la extensión no será .bmp sino .bm_, el guión bajo indica que están comprimidos y por lo tanto deberán ser expandidos para poder usarse.

Por ejemplo para expandir el archivo astronaut.bmp, asumiendo que D: es la letra de la unidad óptica que ya tiene el CD de Windows puesto. Inicio->Ejecutar, escribir "cmd" y presionar Enter. Primero debemos asegurarnos de que el directorio de trabajo sea Default Pictures o de lo contrario tendríamos que escribir rutas muy largas cada vez que ejecutamos el comando:

cd "C:\Documents and Settings\All Users\Datos de programa\Microsoft\User Account Pictures\Default Pictures"
expand "D:\i386\astronaut.bm_" "astronaut.bmp"

Habrá que hacer lo mismo por cada archivo que falte. Excepto que si ya ejecutamos el comando cd no será necesario volver a ejecutarlo al menos que hayamos cerrado la ventana de la terminal.

¿Las imágenes están allí pero el problema no se soluciona?

Debemos estar seguros de que no hay 2 copias del directorio "Datos de programa", esto puede darse en algunos casos de los que hablaré más abajo. Por ejemplo, una puede estar en inglés y la otra en español, o las dos pueden estar en español (ya que la que está en inglés puede estar siendo mostrada en español por el explorador de Windows).

Si hay dos copias del directorio Datos de programa dentro de C:\Documents and Settings\All Users\, debemos comprobar que las imágenes estén en ambos, si faltan en una de sus apariciones, entonces ese puede ser el problema. Copiamos las imágenes de una de las apariciones de Datos de programa a la otra, respetando la ruta.

Las imágenes están en su sitio, y no hay dos copias del directorio Datos de programa.

Entonces probemos a registrar dos archivos dll que pueden ocasionar este problema. Para ello usaremos el comando regsvr32.

regsvr32 shimgvw.dll
regsvr32 mshtml.dll

Y reiniciamos el equipo. Comprobamos al volver al escritorio si el problema está resuelto.

Trato de registrar los archivos dll indicados en el paso anterior pero me sale el siguiente mensaje [Se descargó mshtml.dll, pero no se encontró el punto de entrada DllRegisterServer. No se puede registrar este archivo].

Esto no tiene por qué significar ni virus, ni archivo corrupto.

El comando regsvr32 finalizará con éxito para el archivo mshtml.dll si es la versión que viene con Internet Explorer 6. Pero a partir de la versión del archivo que se instala con Internet Explorer 7 o superior, este dll ya no es auto registrable. Para que los programas que dependen de él funcionen correctamente basta con que esté presente en "C:\Windows\System32" asumiendo, claro, que Windows está instalado en C:

Para los más paranóicos, al final de esta entrada dejo el hash del archivo, así pueden comprobar que no se trata de un virus y que no está corrupto.

Si nos encontramos con este caso, no insistimos, seguimos con la siguiente solución.

Además de las imágenes de cuenta de usuario, también salen cruces rojas en los íconos a la izquierda de los enlaces en el applet de Cuentas de usuario.

Esto puede deberse a una asociación de archivo rota en el registro de Windows. Específicamente la extensión ".ico". Normalmente afecta sólo a los íconos a la izquierda de los enlaces en el applet de Cuentas de usuario, mientras que las imágenes de las cuentas no presentan problemas.

Para reparar las entradas del registro asociadas a esta extensión usar el siguiente archivo reg: http://windowsxp.mvps.org/redxaccounts.htm

El enlace está debajo de la sección "Resolution", es el que dice "fix_redx_useracc.reg". No coloco el enlace directamente aquí por respeto al otro sitio. Si damos clic en el enlace y en vez de salir el diálogo de descarga nos muestra el texto del archivo directo en el navegador, entonces volvemos atrás y damos clic secundario sobre el enlace y esta vez elegimos "Guardar enlace como", algunos navegadores pueden decir "Guardar destino como".

Descargamos el archivo al escritorio y luego damos clic secundario sobre él y clic en "Combinar".

Se nos pedirá confirmación para continuar.

He probado todo lo sugerido en esta entrada y todavía sigo con el problema

Haga clic aquí

La anécdota que no podía faltar

Como ya es habitual en mi blog, dejo las explicaciones largas para lo último. Si eres de los que no les basta con un tutorial paso a paso entonces te invito a seguir leyendo.

Mencioné algo de tener el directorio "Datos de programa" repetido, ¿verdad? ¿Cómo puede ser posible?

Hace poco estuve frente a un PC de escritorio que tenía el problema de mostrar cruces rojas en lugar de las imágenes de cuenta de usuario, y además, en el applet de Cuentas de usuario en panel de control no aparecían las imágenes predeterminadas de Windows, el cuadro donde deberían estar estaba vacío.

Queriendo solucionar este problema probé a registrar de nuevo algunas librerías y el fix de la extensión de archivo y nada funcionaba. Por último extraje las imágenes del CD de Windows XP y las pegué donde se suponen deben ir, aunque ya se encontraban allí supuse que algunas podrían estar corruptas. Esto tampoco resultó.

A la carpeta donde van las imágenes de cuenta de usuario llegué escribiendo su ruta en el diálogo de "Ejecutar", ya que es más rápido eso que estar habilitando que se muestren las carpetas ocultas para poder llegar navegando con el explorador de Windows. Así que la primera vez no lo noté.

Después de probar varias cosas se me da por mostrar las carpetas ocultas e ir con el explorador de Windows a la carpeta "All users", allí noté que "Datos de programa" existía dos veces. Al entrar en cada una, vi que eran distintas. Ambas carpetas parecían estar en uso todavía, como si algunos programas usaran una y otros usaran la otra.

Noté también que una de las dos, si bien contenía la ruta completa de la carpeta donde deben estar las imágenes de cuenta de usuario, no contenía las imágenes dentro, mientras que la otra aparición de "Datos de programa" sí las contenía. Copié las imágenes de una a la otra y el problema quedó solucionado.

Hechos

Este sistema originalmente estaba en inglés y se le instaló un mui para dejar la interfaz en español. El directorio "Datos de programa" probablemente siguió estando en inglés en el sistema de archivos (si iniciáramos con un Live CD de Linux y navegáramos hasta él seguro lo encontramos en inglés) pero el explorador de Windows lo muestra en español precisamente porque ese es el idioma en que configuramos la interfaz. Lo mismo ocurre con directorios como "My Documents" que es mostrado como "Mis documentos" pero en el sistema de archivos sigue estando en inglés.

Ambas apariciones del directorio "Datos de programa" contienen subdirectorios y archivos que sugieren que ambas apariciones siguen en uso, como si algunos programas usaran la versión en inglés y otros la versión en español. En ese momento no se me ocurrió fijarme en la fecha de último acceso y de modificación de los archivos.

Teorías

Creo que en algún punto una actualización o algo ocasionó que se creara el directorio "Datos de programa" pero escrito en español en el sistema de archivos y que se actualizaran variables de entorno y entradas de registro para apuntar a este nuevo directorio. Aunque hasta ahora ningún otro programa parece tener problemas debido a esto, sólo era el problema de que las imágenes no se mostraban en el applet de "Cuentas de usuario" en "Panel de control".

Otra posibilidad es que se corriera algún programa que busca errores en el registro de Windows y que este programa haya actualizado alguna clave del registro para apuntar a la segunda aparición del directorio "Datos de programa". Aunque esto debería provocar también otros errores en el sistema además del problema de las imágenes de cuentas de usuario. Y hasta ahora no se ven otros errores.

Hash del archivo mshtml.dll

  • Versión: 8.0.6001.19298
  • Hash (SHA-1): BE04C68A312097915747B30726403D6591EB45AC

Esta versión la tendremos si tenemos el sistema operativo actualizado. No es la versión que viene con el CD de instalación. Nota: esa es la versión del archivo más actual cuando yo escribí esta entrada, pero con el tiempo esta información pasará a estar desactualizada. En el futuro pueden salir más actualizaciones de seguridad de Windows que incrementen el número de versión del archivo y por lo tanto su hash será distinto del mostrado aquí. Esta versión del archivo arrojará el error indicado anteriormente si se lo intenta pasar al comando regsvr32.

  • Versión: 6.0.2900.5512
  • Hash (SHA-1): 3428998F629EED0437FEDB582DC463A262F1D124

Esta otra versión es la que viene con el CD de Windows. Esta versión sí se puede registrar con el comando regsvr32. No es recomendable tener el sistema sin actualizar, por favor, considera activar las actualizaciones automáticas de Windows.

0 comentarios:

Publicar un comentario