Hola a todos,
De nuevo vuelvo por aquí, pero esta vez quiero compartirles otra vez una solución a un problema que podría ser común y que surgió de los estupendos Foros de Answers y que gracias a Process Monitor llegamos a la solución.
*Nota: En este artículo al igual que los anteriores mostraré el Problema y la Solución pero esta vez con el paso a paso de cómo llegué a ésta utilizando Process Monitor con el fin de compartir un poco de lo que he logrado aprender manejándola.
Finalmente dejaré la descarga del Registro en la última parte del artículo que soluciona el inconveniente para las personas que lo tengan.
El problema
El inconveniente diferente a los dos casos anteriores que he mostrado este Blog era que al ir a las Opciones de carpeta y búsqueda en Windows 7 (Puede darse también en Vista y XP) al acceder a cambiar cualquier opción dentro de la pestaña de “Ver” no se visualizaba nada debajo de Configuraciones avanzadas:
Como ven, bastante interesante el hecho de que no aparezca nada y además que no entregue ningún tipo de error al consultar dentro de “Ver” (View), sobre todo porque las pestañas de General y Buscar funcionaban bien, es decir, todo se visualizaba.
En primera instancia no sabía qué podría realizar el usuario para intentar solucionarlo porque al no haber mensaje de error se podría descartar que se deba a alguna aplicación adicional, pero además el restablecer los valores predeterminados tampoco funcionaba.
Lo que hice fue entonces recurrir a lo que pensé sería la mejor opción, el extraordinario Process Monitor nuevamente de Sysinternals, y la razón es que con Process Monitor podría ver qué estaba sucediendo a nivel de registro y quizás encontraría una solución (¡Así fue!).
La solución
Lo primero que tenemos que hacer es descargar Process Monitor, descomprimirlo y ejecutarlo. El problema está en que como Process Monitor registra absolutamente toda la actividad que se hace en el sistema a nivel de disco, registro, librerías, etc, y pasan cientos de eventos el poder seguir lo que nosotros queremos puede ser muy complejo, por lo que tenemos es que “Filtrar” lo que necesitamos o que más se acerca.
En primera instancia debemos detener el monitoreo que está realizando, lo que nos asegurará de que después de aplicado el filtro sólo se verán los eventos hasta la “Reproducción del problema”. Para esto entonces presionamos dentro de Process Monitor la combinación de teclas CTRL + E o bien vamos al menú File y seleccionamos Capture events:
Ahora, para aplicar los Filtros de monitoreo presionamos la combinación de teclas CTRL + L o bien clic en el Menú Filter y seleccionamos Filter que abrirá la ventana de Process Monitor Filter:
En la ventana de Filtros podemos establecer unas condiciones de monitoreo, sea para que se muestren (Include) o para que no se visualicen (Exclude), pero lo importante es determinar qué queremos que se muestre o se excluya, para esto tenemos tres “List Box” de izquierda a derecha que especifican el tipo de identificación del filtro que voy a seguir (Proceso, ID, Arquitectura, etc), una serie de condicionales sobre el Proceso o filtro que se está monitoreando (Is, Is not, etc) y finalmente el nombre o valor dependiendo de lo que se especificó.
La forma más fácil cuando se está iniciando es buscar diréctamente por el Nombre de proceso (Process Name) que es quizás el que más rápido identificaremos, y para este caso en particular como estamos trabajando sobre el Explorador de Windows que incluye Carpetas y ventanas tenemos que seguir al Proceso padre Explorer.exe.
El Filtro sería entonces “Process Name”, “Is” “explorer.exe”.
Para que el filtro quede guardado, hacemos clic en el botón “Add”, posteriormente en el botón “Apply” y “OK”.
Todo quedaría así:
Antes de iniciar de nuevo el monitoreo, presionamos la combinación de teclas CTRL + X para limpiar la lista actual y que empiece sólo desde donde se lo indiquemos.
Siguiendo la Traza…
Todo está listo, lo siguiente es proceder a reproducir el problema para que Process Monitor pueda mostrarnos qué sucede “por debajo” cuando se realiza la tarea de abrir las opciones de carpeta y específicamente la pestaña “Ver”.
Iniciamos de nuevo el Monitoreo del Process Monitor presionando la combinación de teclas CTRL + E ó en el menú File y Capture Events. Posteriormente en cualquier ventana del Explorador de Windows clic en el botón “Organizar” (Organize) de la barra de comandos y clic en el menú “Opciones de carpeta y búsqueda” (Folder and Search options):
En la ventana de Opciones de carpeta abrimos la pestaña “Ver” (View) haciendo clic sobre ella, a continuación abrimos Process Monitor y detenemos el monitoreo presionando CTRL + E ó menú File y Capture Events.
Lo más seguro es que van a ver cientos de resultados (En sólo esos pequeños pasos):
La primera pregunta que yo me hago es ¿Y por dónde empiezo? y lamentablemente no tiene una respuesta certera puesto que depende de lo que haya sucedido, por ejemplo si el problema es un error de asociación de archivos se podría empezar determinando qué pasa con los resultados que arrojan las claves en el Registro que administran esto (HKCR.<Extensión>), pero si es otro tipo de errores (Desconocidos), se podría ver dónde podría estar dándonos Process Monitor resultados similares a “Access Denied” ó “Name not found” por ejemplo.
Como bien dice el experto Daniel Martín, la cantidad de veces que se haya seguido este procedimiento con los diferentes problemas irá dando la experiencia en su manejo y claro un filtro más rápido.
La recomendación directa de Windows Internals es que el análisis de la Traza se empiece a realizar desde la última fila, y la razón es que si ustedes se dan cuenta al iniciar el monitoreo mientras se empieza a reproducir el problema suceden muchísimos eventos antes por lo que buscar de arriba hacia abajo puede ser un poco más complejo, aunque el error o el patrón del error por lo general se repetirá durante toda la Traza registrada (Las aplicaciones pueden hacer mútiples consultas y tareas en el registro incluso sólo para verificar que la llave exista).
Para este caso como yo no presentaba el error en principio tenía que empezar a analizar pero sin tener en cuenta el resultado sino más bien las consultas.
En la Traza del equipo en que funcionaba (En mi equipo) subiendo un poco encontré las primeras llamadas a unas llaves dentro de HKCU (HKEY_CURRENT_USER) y HKLM (HKEY_LOCAL_MACHINE) que parecían muy interesantes:
Como mostré en los anteriores artículos relacionados con Process Monitor, esta herramienta incluye una opción dentro del menú contextual al darle clic derecho sobre la llave para hacer un “Jump to” y que me llevará diréctamente a esa llave en el Regedit (Si es una operación sobre el registro, sino será a la ubicación de donde proviene).
Entré entonces a las dos llaves (Las de HKCU y HKLM):
Dentro de HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced me encontré con todas las claves que determinan la configuración de la pestaña de “Ver” en las Opciones de carpeta:
Me di cuenta por las claves binarias como "”HideFileExt” que si se traduce y se cambia el valor a “0” por ejemplo la visualización de extensión de archivos conocidos para Windows se verá.
Esto es apenas normal porque por lo general lo que hay dentro de HKCU determina la configuración propia de todas las aplicaciones y funciones de Windows por usuario (El que ha iniciado sesión).
Esto indica que si se borra el contenido o la llave simplemente podría volver a la aplicación “afectada” al estado predeterminado (Recién instalado o ejecutado), igual borré la llave (Bastante novato estoy en esto) pero la ventana de Opciones de carpeta seguía mostrando el contenido de la pestaña “Ver”.
*Nota: Como no sé específicamente qué puede ocultar la configuración habilitada en la pestaña tenía que dañar para tratar de reproducir el problema, si lo intentan es importante que si el sistema está funcional crear puntos de restauración y Backup de las claves que se vayan a afectar.
Como esta clave no funcionó, simplemente la volví a importar, regresé a Process Monitor y continué con la siguiente que hacía referencia ahora a HKLM, igualmente clic derecho y “Jump to”.
*Nota: La ruta del registro es muy similar, la diferencia entre HKCU y HKLM es que esta segunda contiene todas las configuraciones a nivel de Equipo (Entre otras cosas), por lo que cada cambio o daño que se haga aquí afectará a todos los usuarios de la máquina (¡En general a todo el equipo!).
El problema aquí es que la Advaned contenía dos subllaves de registro (DelayedApps, Folder), pero para fortuna Process Monitor ya me había dicho a cuál estaba accediendo:
Lo que hice entonces fue Exportar toda la llave de “Advanced” para mantener el respaldo y procedí a borar la subllave “Folder”.
Ahora, volví a Opciones de carpeta y para mi alegría ahora la pestaña de ver no mostraba nada (Ver primera captura en el artículo), por lo que había logrado reproducir el problema.
La seguridad de que el equipo donde se había reportado el problema (El del Foro) tenía perdida o corrupta la llave de Folder es porque si se empieza a borrar las subclaves que contiene esta llave en la Pestaña de “Ver” empezarán a desparecer las opciones, además de que Process Monitor registra varias operaciones sobre esta llave, la mayoría con resultado Satisfactorio:
Finalmente, ejecuté de nuevo la llave para importar estas llaves, revisé que todo funcionara y se la proporcioné al usuario, y gracias al feedback entregado el problema en efecto se solucionó!
Descarga de la llave:
Para todas las personas que entren a este artículo buscando esta solución porque presentan el mismo inconveniente, les dejo la descarga para que la descompriman y la ejecuten asegurándose de que importe bien (Aviso de confirmación) y puedan tener solución:
Espero que esto pueda ser útil tanto para las personas que buscaban la solución como para las que se tomaron el tiempo de leerlo.
Realmente, ¡Process Monitor es increible!
¡Comentarios bienvenidos!
-Checho-