La perdida de asociación de accesos directos y ejecutables en Windows 7

download La perdida de asociación de accesos directos y ejecutables en Windows 7

of 14

Transcript of La perdida de asociación de accesos directos y ejecutables en Windows 7

La perdida de asociacin de accesos directos y ejecutables en Windows 7. Process Monitor, Process Explorer, PsExec y su solucin.Hola,En artculos anteriores ya hemos visto problemas relacionados conAsociacin de iconosen Windows 7 oAsociacin de Carpetas y Directoriospero, Windows maneja internamente distintos tipos de asociacin y aun nos falta la de archivos o extensiones en general pues estn implicadas diferentes claves o subclaves de Registro.En este post exploraremos uno de los problemas ms frecuentes con respecto a la Asociacin de archivos que se refieren a losAccesos directos (.lnk),Ejecutables (.exe)y diferentes formas de solucionar el inconveniente que van desde la ms fcil hasta la que se vuelve un poco ms compleja acudiendo a Sysinternals.*Nota:El Artculo puede estar extenso por lo que se plantear cada solucin al detalle posible, la idea es que puedan encontrar diferentes caminos para solventar el problema.El problemaCada aplicacin que se instala en Windows puede manejar un tipo de extensin de archivo propia para identificar que los archivos se ejecutan y trabajan con esa aplicacin, por ejemplo la extensin PDF es propia de Adobe Reader aunque la extensin puede estar dentro de un estndar general para que otras aplicaciones tambin puedan administrar estos archivos como la misma .PDF o por ejemplo .ISOCuando se instala el Software, automaticamente toma posesin de sus extensiones pero, Windows puede cambiar este comportamiento para nosotros decidir con qu aplicacin queremos abrir el archivo determinado. El problema est cuando por accidente o desconocimiento cambiamos una extensin que administra Windows por ejemplo o que es desconocida para la plicacin como la de los Accesos directos (.lnk).El resultado ser entonces que los iconos cambian al de la aplicacin seleccionada y adems todo lo que tenga esa extensin .lnk intentar abrirlo sin resultado.Si por ejemplo, afectamos la asociacin de accesos directos (.lnk) para que se abra con Windows Media Player, podremos tener una visualizacin de nustros accesos as:Al ejecutar el archivo, a menos de que sea de tipo audio o video (Para este caso), recibiremos un mensaje de error que nos indica que no se puede reproducir esa extensin:

El archivo seleccionado tiena una extensin (.lnk) que no reconoceLa causaEl primer paso si no se sabe qu est sucediendo sera recurrir aProcess Monitorde Sysinternals y a continuacin comparar el comportamiento de un equipo que est funcional con respecto al equipo del problema cuando se trata de abrir el Acceso directo.Analizando con calma, podemos ver una gran diferencia en una operacin relacionada con la clave de Registro:HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk\UserChoiceEquipo Funcional:

Equipo NO Funcional:

Como ven, en el Equipo funcional trata de abrir la clave de registroHKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk\UserChoice, al obtener como resultadoNAME NOT FOUND (La clave no existe)procede a cerrarla, mientras que en el equipo NO funcional, a parte de que s obtiene un resultado exitoso indicado conSUCCESS(La clave existe)hace una consulta a una de las subclaves Progid tambin con un resultado exitoso y finalmente cierra la operacin.En definitiva, esta clave tiene que ver con el problema, si vamos ms a fondo con el Process Monitor haciendo clic derecho yJump Topara abrir el registro, la agradable sorpresa sobre el valor Progid es:

Progid(Identificador de aplicacin)es el valor que se encarga de asociar la aplicacin que se haya seleccionado accidental o no accidentalmente (UserChoice) por el usuario para que abra esas extensiones, en este caso la de los Accesos directos.Para este artculo, el afectado fue elWindows Media Player (wmplayer.exe).*Nota 1:La clave implicada ser la misma, lo unico que variar para cada persona con el problema ser el programa asociado.*Nota 2: Este tipo de problemas por lo general afectan slo por configuracin de usuario, por eso estn ubicados en la ruta deHKEY_CURRENT_USER (HKCU)Primera solucin Para accesos directos (.lnk) -Si slo tenemos afectados los Accesos directos, el procedimiento para volver a las asociaciones funcionales y originales es:- En el EquipoNOfuncional, clic en el botn Inicio, teclearRegedity sobre el resultado, clic derecho yEjecutar como Administrador:

- En el Registro de Windows, navegar hasta la clave:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk

- Expandimos la clave .lnk (>), clic derecho sobre la subclaveUserChoicey seleccionamosEliminar:

- Despus de eliminar la subclave, reiniciamos el sistema y los Accesos directos deberan estar funcionales nuevamente.El problema extendido Con perdida de asociacion de ejecutables (.exe)-Recordemos que cuando algo est mal, Se puede poner mucho peor!Para este caso, se da mucho que al perder la asociacin de los Accesos directos tambin se pierde la de los ejecutables (.exe) y es ah cuando surgen preguntas como Y cmo entro al Registro si no puedo abrir ningun ejecutable? Cmo lo soluciono?

De lo que podemos estar en la mayora de las ocasiones seguros es de que la causa no cambia, y en trminos generales la solucin tampoco ya que, se trata de eliminar la asociacin que sea crea en el registro pero adems de la de accesos directos diriginos a la de ejecutables que est ubicada en:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exeEl problema ya mencionado por supuesto, es que al estar afectada la asociacin de ejecutables (.exe) no se puede entrar ni siquiera al Registro de Windows Recordemos que es Regedit.exe-La solucin extendida Para Accesos directos (.lnk) y Ejecutables (.exe)-No todo est perdido y es que si en la solucin anterior aprovechamos el buen estado de la asociacin de ejecutables para arreglar la de accesos directos, en este caso aprovecharemos la asociacin de la que quizs sea una de las mejores herramientas que integra Windows: El blog de Notas (Notepad) en conjunto con los archivos de registro (.reg).Si bien tambin es un ejecutable (Notepad.exe), para crear un archivo de texto plano no es necesario invocar a la aplicacin, aprovecharemos esto entonces para generar una clave de registro desde el texto plano (Cambiando a extensin .Reg) para borrar las claves de registro implicadas en el problema (Aunque suene un poco contradictorio).Cmo hacerlo?- Sobre el Escritorio o cualquier directorio de preferencia del equipo NO funcional hacemos clic derecho y seleccionamosNuevo>Documento de texto

*Nota:La estructura general de un archivo de Registro se compone de la siguiente forma:versinEditorRegistrolnea en blanco[rutaRegistro1]"nombreDato1"="tipoDatos1:valorDatos1"nombreDato2"="tipoDatos2:valorDatos2"lnea en blanco[rutaRegistro2]"nombreDato3"="tipoDatos3:valorDatos3"Por ejemplo, si quisieramos crear una nueva clave llamada Demo dentro deHKEY_CURRENT_USERteniendo en cuenta la versin del Registro en Windows 7 y la ruta, quedara as:Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Demo]Se guarda con el nombre que se quiera y la extensin .REG y al ejecutarlo e importarlo la clave quedar creada.As mismo, como se puede crear generando la clave, se puede eliminar claves, subclaves y valores, slo se debe anteponer el signo de menos (-) dependiendo de lo que se quiera quitar.Por ejemplo, si quisiera quitar la Clave que acab de crear previamente Demo dentro de la rama de registro HKEY_CURRENT_USER quedara as:Windows Registry Editor Version 5.00[-HKEY_CURRENT_USER\Demo]Igualmente, se guardara con extensin .REG y al ejecutarlo e importarlo ya no existira esa clave den el Registro de Windows.

En este orden de ideas, para eliminar la clave que nos est generando el problema en las dos asociaciones (.lnk y .exe) debemos agregar el signo de menos (-) antes de toda la clave correspondiente, como podemos de una vez integrar las dos ejecuciones en un mismo archivo, nuestro Blog de notas tendra que quedar as:Windows Registry Editor Version 5.00[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk\UserChoice]

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe\UserChoice]

Ahora, clic en Archivo, Guardar como, le pones cualquier nombre y no podemos olvidar la extensin .REG, para este artculo yo le puse FixLNKEXE.REG:

*Nota:Si no se le pone el signo de menos (-), lo que har es crear otra vez la clave de registro (Cosa que no nos servir).Si desean, pueden descargar el Fichero de Registro que realiza esta operacin (Eliminar las claves afectadas) desde aqu:*Nota:Este fichero de registro es vlido para reparar el problema con slo una de las dos asociaciones afectadas tambin, por ejemplo la de Accesos directos (.lnk) por lo que lo pueden descargar y ejecutar en vez de seguir la solucin manual documentada anteriormente.Al ejecutar el fichero, importarlo y reiniciar o cerrar sesin en el equipo, los iconos y las aplicaciones deberan volver a su estado funcional nuevamente.El problema en el peor de los casosPor lo general, este problema no llega hasta este punto pero por supuesto Se puede dar! y, Cul es el peor de los casos?Qu sucede si adems de losAccesos directos (.lnk)y losEjecutables (.exe)ni siquiera la extensin deTexto plano (.txt)y deRegistro (.reg)estn funcionales?

Para este punto, as se afecte uno de los dos (txt reg) ya se vuelve algo bastante complejo de solucionar y de hecho desde la cuenta de usuario afectada ya no se podra y es ah cuando uno podra en primera instancia pensar en restaurar sistema o hasta reinstalar Windows.Afortunadamente, como coment en el principio del artculo, el fallo de asociacin en la mayora de las ocasiones afecta por perfil slamente, es decir en la rama de registro que cada usuario nuevo creado tiene con configuraciones nicas (HKEY_CURRENT_USER).Lo que indica esto es que en la mayora de las veces, creando o accediendo a otra cuenta local, podremos tener acceso a la funcionalidad que debe tener Windows para abrir estos tipos de archivos.Esto sin embargo, no significa que ya nos resignemos y pasemos todo para la nueva cuenta,significa que podremos hacer uso de esta ventaja para acceder y reparar el registro de otro usuario local.Aqu es donde finalmente damos paso aSysinternals, especficamentePsExec.La solucin para el peor de los casosPsExecnos permite bsicamente ejecutar procesos y aplicaciones de forma remota en otros equipos o hasta en otras cuentas de usuario locales, lo interesante es que es portable y no es necesario instalar ni realizar configuraciones adicionales, slo ejecutar y trabajar!*Nota:PsExec requiere especficamente entregarle credenciales para darle los permisos de ejecucin de acuerdo a la tarea que se vaya a realizar.Volviendo al casoComo desde la cuenta NO funcional ya no se puede hacer nada ms, debemosCambiar de usuarioe iniciar con otra cuenta que pertenezca al Grupo de Administradores en modo Aprobacin de administrador.Lo que haremos es ingresar al Registro en la ramaHKEY_CURRENT_USERpero equivalente al usuario no funcional (De nuevo recordemos que elHKCUvara por usuario) y eliminar las claves deUserChoiceen todas la extensiones afectadas.En realidad, a parte delPsExec, hay otra forma para realizarlo directamente desde Windows por lo que a manera de conocimiento, explicar las dos aunque enfatizando y recomendando que es mucho ms fcil proceder directamente conPsExec.Forma manual:Entre todas las ramas que existen en el Registro, hay una especfica que contiene la deHKEY_CURRENT_USERentre otras por usuario, especficamente la rama deHKEY_USERS, el problema es que la identificacin por usuario lo hace con elSID(Identificador nico de usuario) por lo que a simple vista sera complicado determinar cul es la del perfil que necesitamos arreglar:

Cmo identificar entonces elSIDque pertenece a nuestra cuenta afectada?Aqu es donde entraProcess Explorerde Sysinternals!Como hicimos cambio de usuario (Si no fue as, entren a la cuenta afectada y hacen clic en Inicio, clic en la flecha del botn apagar y Cambiar de usuario) los procesos que estn activos en la cuenta NO funcional se visualizarn en Process Monitor, si no haban procesos abiertos, siempre se visualizar el proceso padre: Explorer.exe.Como predeterminadamente, el usuario al que pertenece no se visualiza debemos hacer clic en el menViewySelect Columns:

En la ventana deSelect Columnsen la pestaa deProcess Imagedebemos seleccionarUser Namepara poder ver esta informacin y clic enAceptarpara que se visualice en Process Explorer:

Ahora, en Process Explorer podremos ver en cul de los dos procesos de Explorer.exe corresponde al usuario afectado con la columna de User Name:

Hacemos doble clic sobre el proceso y nos abrir la ventana de Propiedades, all nos pasamos a la pestaa de Seguridad y podremos ver la informacin que necesitamos:

Como ven, debajo de "User tenemos el SID correspondiente a ese proceso que previamente aseguramos que correspondiera alExplorer.exedel usuario NO funcional, especficamente el SID es:S-1-5-21-1231788061-2787996694-3405420119-1006Teniendo esto en cuenta, procedemos a solucionar el problema, para esto:Hacemos clic en Inicio, tecleamos Regedit y sobre el resultado clic derecho y Ejecutar como administrador.Expandimos la rama deHKEY_USERSy posteriormente expandimos la que corresponde al SID que nos entreg Process Explorer del usuario NO funcional. Pueden haber ms de 4 que correspondan con elSID, debemos buscar en la primera.Una vez hecho esto, smplemente buscamos la Clave que corresponde a cada asociacin como si lo estuviramos haciendo desde el Regedit del usuario en cuestin.Como hay varias extensiones afectadas, debemos ubicar la clave que contiene todas nuevamente y despus empezar a reparar una por una. Recordemos que la clave de Asociacin de archivos por usuario est en:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exePara este caso, variaran la primera porHKEY_USERSy a continuacin el SID, por ejemplo si fuera a buscar por elAcceso directo (.lnk)sera:HKEY_USERS\S-1-5-21-1231788061-2787996694-3405420119-1006\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk

Aqu de nuevo, procedemos por extensin afectada (Por ejemplo .lnk, .exe, .txt, .reg) a borrar la sublcave deUserChoicehaciendo clic derecho y Eliminar.Despus de esto, reinciamos el equipo y al entrar de nuevo pero en la cuenta NO funcional, todo debe estar asociado correctamente.Utilizando PsExec:Como escrib en la descripcin dePsExec, nos permite ejecutar procesos pensandos ms para una mquina remota pero como todas las herramientas de Sysinternals tiene sorpresas estupendas y es que tambin lo puedo utilizar para ejecutar procesos en otras cuentas locales.Desde aqu pueden descargarPsExecy adems ver una descripcin directa del autor:http://technet.microsoft.com/es-es/sysinternals/bb897553Si no queremos complicarnos ms de lo que ya estamos con este problema, debemos cerrar sesin desde la cuenta NO funcional (Tambin se puede cambiar de usuario), a continuacin Iniciar sesin con una cuenta que est en el Grupo de Administradores en modo aprobacin de administrador y all descargar PsExec en el Escritorio o en un Directorio de preferencia.Hacemos clic en Inicio, tecleamosCMDy sobre el resultado clic derecho yEjecutar como administrador:Desde la consola de Comandos debemos situarnos en el directorio donde se haya descargado PsExec utilizando el comando cd, por ejemplo, para este artculo que descargu la herramienta en el Escritorio, el comando sera:cd C:\Users\Administrador\Desktop donde Administrador es el nombre de usuario de la cuenta que iniciaron sesin yENTER:

Ahora, como PsExec est en este directorio, podremos conectarnos al Regedit del otro usuario NO funcional, para esto utilizaremos este comando:PsExec u \ p h i C:\Windows\Regedit.exeDondees la cuenta del Grupo de Administradores con la que iniciamos sesin y descargamosPsExec,es el nombre de la cuenta que tiene el problema de asociacin que deseamos corregir,es la contrasea del usuario NO funcional (El del problema),hes para que haga la elevacin del Token de usuario (Por el UAC) con las credenciales que le estamos enviando eies para que ejecute el programa con la ventana interactiva del usuario actual (Para que veamos el Regedit corriendo en el usuario Administrador).Para este caso por ejemplo sera:PsExec u Administrador\Demo p demopass h I C:\Windows\Regedit.exe

(Hacer clic para ver la captura para verla en tamao real)Sin darle mucha importancia al Acceso denegado, en unos pocos segundos se debe abrir una ventana de Regedit y para estar seguros de que pertenece al otro usuario NO funcional, podemos abrir Process Explorer, entrar en sus propiedades y ver que tanto el usuario como el SID pertenecen al perfil con problemas:

Desde la ventana de Registro ahora ya no tenemos que expandir HKEY_USERS sino que hacemos la bsqueda en la rama de HKEY_CURRENT_USER como si estuviramos logueados en la cuenta con el problema buscando las claves que originan el problema (Para este artculo por ejemplo .lnk, .exe, .txt, .reg):

Aqu, como en todo el artculo, clic derecho sobre la subclave UserChoice y seleccionamos Eliminar, hay que repetir todo esto para cada extensin afectada debajo de la clave:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExtsReiniciamos el sistema, volvemos a iniciar sesin pero desde la cuenta afectada y el problema ahora debera estar resuelto.Todo listo!La otra posibilidad de que se empeorara el problema es que afectara por mquina y eso sera a nivel deHKEY_CLASSES_ROOTcosa que en realidad ocurre poco.Espero les sea de utilidad y puedan ayudarse o disfrutar tanto como yo lo hice.Saludos,