El mensaje de RunDLL al iniciar sesión, Autoruns y su solución

Desde octubre pasado que Microsoft liberó la actualización a Windows 8.1, son ya bastantes las personas que lo han ido adoptando, sea porque realizó la instalación a través de la Tienda, de forma corporativa se empezó a probar o se adquirieron equipos nuevos con 8.1 ya preinstalado. La parte fea, es que los problemas no se harán empezar y es ahí cuando se llenan los Foros oficiales de Microsoft, o de cualquier tercero de inconvenientes que van siendo recurrentes conforme va aumentando la cantidad de usuarios con la actualización.

*Nota: Decidí documentar el comportamiento que voy a exponer a continuación, porque ha sido bastante recurrente y la solución pasa por el mismo proceso.

El problema

Centrándome en este caso en particular, un usuario estaba viendo tres mensajes de error bastante molestos, por lo general cuando iniciaba sesión aunque en ocasiones salía mientras estaba operando el equipo. Los mensajes contenían un texto muy similar y hacían referencia a una DLL que el sistema operativo no podía encontrar con un título de “RunDLL”:

Rundll

Mensaje:

Problema al iniciar C:PROGRA~1COMMON~1SystemSysMenu.dll. No se pudo encontrar el módulo especificado.”

Aunque después de aceptar los tres mensajes el error no regresaba, era, naturalmente, demasiado molesto.

La causa

Cuando iniciamos Windows, como parte del proceso de Logon, el sistema operativo debe ejecutar o inicializar todo lo que tiene programado previamente, por ejemplo servicios, aplicaciones, controladores, extensiones, etc.

Este tipo de mensajes de error al iniciar sesión, aparecen cuando Windows intenta ejecutar alguna aplicación, o un proceso intenta llamar a algún recurso y éste no existe.

Hasta Windows 7, es posible que alguna vez hayan manejado la herramienta de MSCONFIG, específicamente, la pestaña de Inicio donde podían ver – según Windows- todo lo que estaba arrancando con la sesión. Esta configuración pasó al Administrador de Tareas desde Windows 8, con la misma pestaña de Inicio, pero un poco más “flexible”:

image

Volviendo al caso, el usuario no pudo encontrar nada referente a este mensaje o DLL en la pestaña de Inicio del Administrador de Tareas. ¿Qué hacer entonces?

Pues bien, para poder bien realmente todo lo que esté iniciando con Windows, es necesario recurrir a una herramienta mucho más poderosa, y me refiero por supuesto a alguna de la suite de Sysinternals. Para estos casos, la herramienta es Autoruns.

Recordemos que Autoruns me permite ver de una forma detallada y ordenada lo que está corriendo una vez se inicie sesión; se pueden ver los procesos reales e incluso realizar tareas desde allí. Más detalle en el libro oficial de Windows Sysinternals.

Normalmente hay que recurrir a la pestaña de Logon, pero para este caso no es así, pues tampoco se veía nada referente a esta DLL:

image

Sin embargo, y como dije, Autoruns va mucho más allá así que podemos ver otras cosas que estén iniciando. Explorando un poco entonces, encontré tres de las entradas bastante llamativas en la pestaña de Scheduled Task:

image

Y un poco más abajo:

image

*Nota: El color amarillo indica entradas que Windows está referenciando pero que ya no puede encontrar en la ubicación que tiene asociada. Es normalmente el color en que nos debemos concentrar si estamos trando de hacer diagnóstico con Autoruns.

Para el caso, las tres entradas eran llamadas por SMupdate1, SMupdate2 y SMupdate3, y utilizaban precísamente el SysMenu.dll.

No estoy seguro de dónde proviene, pero seguramente hace parte de algún Crapware.

La solución

Una vez se descubra el posible causante, la solución es realmente sencilla y se hace claro está, desde el mismo Autoruns.

Bastó entonces con hacer clic derecho en cada una de estas entradas y seleccionar Delete:

image

Con esto, Windows ya no volvería a buscar el recurso que pide la entrada y por ende, no saldrían más mensajes molestos de error.

¡Caso solucionado!

*Nota final: En el foro he resuelto otros problemas muy parecidos, pero que llaman a otra DLL. Lo importante es mirar con Autoruns y eliminarlas. He visto además que casi siempre la entrada está apareciendo en la pestaña de Scheduled Task.

PD. No olviden seguirme en Twitter: www.twitter.com/secalderonr

Saludos,

Checho

Crear y predeterminar una imagen de Refresh en Windows 8.1

Hace más de un año, cuando Windows 8 aún estaba en su fase de Consumer Preview (conocida normalmente como Beta), escribí acerca de Reset y Refresh, característica integrada con el fin de sustituir las antiguas soluciones de recuperación en Windows.

Para recordar un poco, Reset hace una restauración de todo el sistema operativo usando los medios de instalación sin conservar nada; Refresh por el contrario, hace la misma restauración, pero mantiene todo el perfil y archivos almacenados hasta el momento, además de ser personalizable el punto y no tener que depender de lo que provee el fabricante del equipo.

En este artículo veremos una funcionalidad adicional de Refresh, muy útil cuando deseemos sacar provecho de la característica y estandarizar todos los puntos de restauración con una sola imagen. Básicamente, crearemos una imagen de Refresh, la copiaremos a un nuevo equipo y utilizando la herramiente de RECIMG de Windows 8/8.1, estableceremos esa imagen como predeterminada para cuando el usuario requiera restaurar el equipo.

Requerimientos

– Un equipo técnico donde se configure la imagen al punto que se desea predeterminar.

– Uno o varios equipos de referencia donde se copiará la imagen y se establecerá como predeterminada para hacer el Refresh.

Creando punto de restauración

El punto de restauración para el Refresh, consiste en una imagen de Windows (.wim) tal y como la conocemos cuando hacemos por ejemplo una captura maestra utilizando DISM o PowerShell desde un Windows PE. La diferencia es que además funciona con una tecnología similar a la de USMT para poder migrar perfiles y archivos.

Para crear la imagen, desde el equipo técnico, hacemos clic derecho sobre el botón de Inicio y seleccionamos Símbolo del Sistema (administrador):

2

Desde la consola, ejecutamos:

Recimg /CreateImage <DirRecovery>Recovery

Donde <DirRecovery> es la unidad o ruta de red donde deseamos guardar la imagen; por ejemplo, para este artículo lo haré en la del sistema operativo (C:) así que el comando sería:

Recimg /CreateImage C:Recovery

image

*Nota: Es normal que en el 1% se pueda quedar varios minutos, el resto del tiempo dependerá de la velocidad de escritura y lectura en disco.

Al final deben tener un .WIM llamado CustomRefresh creado en el directorio de Recovery:

image

Después de creada, se debe copiar (de la forma que deseen) al equipo de referencia donde se le predeterminará. Aunque no es del todo necesario, es preferible que esté la imagen localmente para que Windows no tenga ningún problema cuando la consulte.

Recomiendo crear la misma carpeta en la unidad C: o en otra partición y copiar la imagen:

image

Estableciendo imagen de Refresh predeterminada

Nuesto siguiente paso, es indicarle a Windows que esa imagen copiada será de ahora en adelante el punto de restauración para cuando se requiera recuperar sin perder perfil ni archivos.

Para hacer esto, en el equipo de referencia, hacemos clic derecho en el botón de Inicio y seleccionamos Símbolo del Sistema (administrador):

2

Ejecutamos lo siguiente:

Recimg /Setcurrent <DirRecovery>Recovery

Nuevamente, como deseo que el equipo adicional que utilizará la imagen para recuperación también la tenga disponible en la unidad “C:”, el comando sería:

Recimg /Setcurrent C:Recovery

image

Probando el Refresh

El último punto es por supuesto probar que nuestro equipo haga la restauración manteniendo el perfil, archivos y utilice la imagen que se estableció copiada de otra máquina.

Para realizar la restauración, presionamos las teclas Windows + C, o situamos el cursor en la esquina inferior derecha y luego en Configuración > Cambiar configuración de PC

image

En Configuración de PC, hacemos clic en Actualizar y recuperar en la parte inferior, y clic en el nodo de Recuperación. Veremos las opciones de recuperación que realizan el Refresh o el Reset:

image

Hacemos clic en el botón Comenzar, debajo de Restaurar tu PC sin afectar a tus archivos y clic en el botón Siguiente del asistente:

image

En la página de Listo para restaurar tu PC, clic en el botón Actualizar (Refresh):

image

Se reiniciará el equipo y el proceso de Refresh iniciará:

image

*Nota: El tiempo en general es mucho más rápido que hacer una instalación desde cero, aunque puede variar dependiendo de qué tanto tenga la imagen que se está aplicando.

*Importante:

1. Aunque se puede pasar una imagen entre equipos diferentes, siempre debe ser la misma imagen, así que si en uno la instalación es otra edición o idioma, no funcionará.

2. El estado de activación no suele respetarse.

3. Algunas carpetas importantes como las de Usuarios, Archivos de Programa, o ProgramData deben estar en la misma unidad de Windows.

4. Se respeta el perfil y archivos en la misma ubicación, pero se genera la carpeta del Windows.old, donde probablemente se almacenen cosas que no se podían tener en la restauración, como aplicaciones nuevas. Se puede borrar la carpeta utilizando las herramientas de Windows como lo expliqué en un artículo anterior.

Espero sea de utilidad.

Saludos y ¡feliz año nuevo!

Checho