Windows Media Player no abre y al ejecutar archivo indica “Error en la ejecución del servidor”. Process Monitor y su solución

imagesCAJZYYGO

Hola,

Navegando de nuevo un poco en los Foros, por los últimos días se ha vuelto más constante un problema con Windows Media Player 12 específicamente en Windows 7, a continuación como he tratado siempre les mostraré la reproducción del problema y el proceso a su posible solución.

*Nota: La llave de registro para solventar el inconveniente se puede descargar al final del artículo pero se DEBE seguir el procedimiento descrito en “La solución” dependiendo de la arquitectura que se tenga (32 ó 64 bits) antes de aplicar la llave para que pueda funcionar.

El problema

En Windows 7 al tratar de abrir Windows Media Player desde la barra de tareas (Predeterminádamente está anclado en la instalación del sistema operativo) o desde su ubicación en Todos los programas “trata” de abrir pero no muestra interfaz, y se desvanece:

MP3

Además de esto si se trata de reproducir un archivo de audio o video después de unos segundos Windows indica un error que indica error en la ejecución del servidor similar a este:

MP0

“Error en la ejecución del Servidor (Server execution failed)”

Indentificando la causa

En primera instancia como casi siempre es bastante complicado determinar qué está causando el problema y mucho menos el por qué.

Por lo general un buen camino es identificar qué se hizo antes cuando la aplicación funcionaba correctamente, algunas veces se debe a instalación de ciertas aplicaciones y se resuelve con sólo desinstalarlas.

Sin embargo en casos como este que puede no ser la solución desinstalar lo que había hay que indagar más a fondo puesto que el mensaje de error (Como muchas veces) no es muy claro en el problema. Para llegar al fondo por supuesto recurrí al famoso Process Monitor de Windows Sysinternals puesto que requería saber qué estaba sucediendo a nivel de entradas y salidas internamente cuando ejecutaba Windows Media Player.

Como Process Monitor identifica absolutamente todo lo que hay por debajo debemos “filtrar” lo que necesitamos, para esto al ejecutarlo, clic en el menú Filter y seleccionar Filter.. o símplemente la combinación de teclas CTRL + L

En la ventana de Process Monitor como estamos siguiendo al Windows Media Player debemos hacer el filtro Por proceso y especificando el del propio reproductor que es wmplayer.exe

En la primera columan seleccionamos “Process name” y en el cuadro de texto digitamos wmplayer.exe, posteriórmente clic en el botón Add, Apply y finalmente en el botón Ok para guardar los cambios.

MP1

Por último hay que detener el monitoreo actual que está haciendo Process Monitor con la combinación de teclas CTRL + E o en el menú File y seleccionar Capture Events…
Después de esto hay que limpiar los resultados actuales con la combinación CTRL + X para que todos los resultados al empezar el monitoreo pertenezcan sólo a la operación que se esté realizando.

Una vez limpio todo volvemos a ejecutar CTRL + E o Capture Events desde el menú File y a continuación “reproducirmos el problema”, pero como en este caso en principio no lo tenía lo que hice fue símplemente ejecutar el Windows Media Player así abriera normalmente para saber cuál era el proceso correcto de ejecución “por debajo”.

Al abrir el Media Player (o para otras personas al reproducir el error, es decir tratar de abrirlo) se debe volver a detener el monitoreo para poder tener el Log preciso desde que se inicio hasta que se terminó y que no registre más tareas, para esto basta con volver a presionar CTRL + E.

Ahora, personalmente como no tenía el error, para saber la solución primero tenía que reproducirlo por lo que la búsqueda se hace un poco más dificultosa.

Lo primero que tuve en cuenta en esta ocasión es que probáblemente no se refería a un problema de configuración ni de máquina ni de usuario del Media Player puesto que el proceso ejecutaría y aunque hubiera error la interfaz abriría por lo que quedaron descartadas todas las llaves que provinieran de HKCU (HKEY_CURRENT_USER) y HKLM (HKEY_LOCAL_MACHINE) que se refieren a configuración por usuario y por máquina respectivamente en cuanto a Windows y aplicaciones.

Para variar además no seguí el consejo y la mejor práctica que es empezar a analizar la Traza de abajo hacia arriba sino que esta vez fui bajando poco a poco hasta encontrar la operación en registro que no estuviera ligada a estas dos llaves, para mi fortuna o sorpresa lo que encontré:

MP2

Como ven la primera referencia diferente llevaba a: HKEY_CLASSES_ROOTInterface{00000134-0000-0000-C000-000000000046}

*Nota: Como ven hay referencias a HKCU (Que antes la había obviado) pero el resultado aquí si hacen el monitoreo verán que es NAME NOT FOUND por lo que no está creada esta llave en este directorio y pasa a la llave “Padre” HKCR que sí daba resultado SUCCESS.

Además de esto, tal cual sucede con un trabajo sobre una base de datos habían varias operaciones sobre una subclave en especial ProxyStubClsid32 que incluía abrir, consultar, validar y cerrar por lo que definitívamente algo bueno debía traer esta llave.

Para ir diréctamente a la llave basta con hacer clic derecho desde el Process Monitor y seleccionar Jump to…

Como en mi equipo estaba funcionando bien el Media Player tenía que buscar la forma de reproducir el error tal cual, por supuesto procedí a la forma más práctica, dañando!
Lo que hice fue borrar esa llave del Registro de Windows con el Media Player previamente cerrado y después tratar de ejecutar el Reproductor.

Para mi fortuna, ¡Problema reproducido! no me abría el reproductor y además al ejecutar archivos me encontraba con el error de fallo en la ejecución del servidor.

En conclusión la causa entonces podría ser falta de registro de esa interfaz del Media Player, o bien que ya se encontraba corrupta (Basta con cambiar algún parámetro en la clave).

*Importante:

Si buscan este mismo comportamiento en un equipo Windows 7 de 64 bits encontrarán que la ruta de registro varía un poco con respecto a la anterior agregando antes de Interface el Wow6432Node:

HKEY_CLASSES_ROOTWow6432NodeInterface{00000134-0000-0000-C000-000000000046}

La explicación es que Windows 7 de 64 bits utiliza el componente de WOW64 para virtualizar aplicaciones de 32 bits en sistemas de 64 bits, y aunque el sistema operativo predeterminádamente tiene el Reproductor y otras aplicaciones en 64 bits lo hace por temas de compatibilidad principalmente.

Teniendo en cuenta lo anterior, la solución a continuación va a tener un proceso similar pero unico dependiendo de si tienen sistema de 32 ó sistema de 64 bits.

La solución (Para sistemas de 32 bits):

1. Abrimos el Registro de Windows haciendo clic en inicio, tecleando Regedit y clic derecho sobre el ejecutable, “Ejecutar como administrador” o bien desde el Process Monitor vamos diréctamente a la llave haciendo clic derecho y Jump to.

– Navegamos hasta la llave:
HKEY_CLASSES_ROOTInterface{00000134-0000-0000-C000-000000000046}

2. Clic derecho sobre la llave y seleccionamos Permisos (Permissions):

image

3. En la ventana de Permisos hacemos clic en el botón Avanzado (Advanced):

image

4. En la ventana de Configuraciones avanzadas de seguridad clic en la pestaña Propietario (Owner) y debajo de Cambiar Propietario actual (Change Current owner) debemos seleccionar el usuario local nuestro que pertenece al grupo de administradores (Para este artículo DemoMig):

MP4

Clic en el botón Aplicar (Apply) para que se cambie el Propietario actual (Current owner) y posteriormente clic en el botón Aceptar (Ok) para guardar cambios y cerrar la ventana.

5. De vuelta en la ventana de Permisos seleccionamos el grupo de Administradores (Que es donde debe estar nuestra cuenta de usuario) y debajo de Permisos para los Administradores debemos seleccionar la ficha de Control total, luego el botón Aplicar y Aceptar para guardar los cambios:

image

6. Ahora que la llave principal tiene permisos totales debemos asegurarnos que las subllaves tengan los mismos permisos, es decir, control total.
Expandimos con el icono (>) sobre la llave de Interface en la que estamos y repetimos los pasos del 2 al 5 nuevamente.

*Nota 1: Puede que no tengan que cambiar permisos pero sí asegurarnos que el propietario sea el usuario actual, aunque en teoría modificando la llave primaria las demás obtienen los mismos permisos.

image

*Nota 2: Puede (Y sería normal) que algunas personas que tengan el problema no posean las mismas subllaves, en este caso el proceso se hace a las que hayan.

7. Ahora que tenemos el control total sobre la llave afectada debemos proceder a cambiarla para importar una que tenga los componentes de interfaz registrados corréctamente, para este caso de 32 bits he subido la llave de Registro a mi Skydrive para que la descarguen, descompriman y ejecuten, la pueden bajar desde aquí:

*Importante:

Para tener buenos resultados, al ejecutar la llave de registro les debe informar que se importó todo satisfactóriamente:

image

*La ruta que se muestra y nombre de registro varía en cada máquina.

Si les indica que NO se pudieron escribir registros correctamente deben repetir de nuevo los pasos anteriores para tomar propiedad sobre la llave y asignar permisos ya que indica que no todas las llaves obtuvieron los cambios, posteriormente volver a ejecutar la llave hasta que el resultado sea satisfactorio.

Después de esto ejecutamos nuevamente el Reproductor de Windows y esta vez debería abrir sin problemas =)

La solución (Para sistemas de 64 bits)

1. Abrimos el Registro de Windows haciendo clic en inicio, tecleando Regedit y clic derecho sobre el ejecutable, “Ejecutar como administrador” o bien desde el Process Monitor vamos diréctamente a la llave haciendo clic derecho y Jump to.

– Navegamos hasta la llave:
HKEY_CLASSES_ROOTWow6432NodeInterface{00000134-0000-0000-C000-000000000046}

2. Repetimos los mismos pasos especificados anteriormente en “La solución (Para sistemas de 32 bits)” desde el punto 2 hasta el punto 6

3. Ahora que tenemos el control total sobre la llave afectada debemos proceder a cambiarla para importar una que tenga los componentes de interfaz registrados corréctamente, para este caso de 64 bits he subido la llave de Registro a mi Skydrive para que la descarguen, descompriman y ejecuten, la pueden bajar desde aquí:

*Nota: Aunque es casi el mismo procedimiento los registros a descargar y a aplicar son diferentes!

*Importante:

Para tener buenos resultados, al ejecutar la llave de registro les debe informar que se importó todo satisfactóriamente:

image

*La ruta que se muestra y nombre de registro varía en cada máquina.

Si les indica que NO se pudieron escribir registros correctamente deben repetir de nuevo los pasos anteriores para tomar propiedad sobre la llave y asignar permisos ya que indica que no todas las llaves obtuvieron los cambios, posteriormente volver a ejecutar la llave hasta que el resultado sea satisfactorio.

Después de esto ejecutamos nuevamente el Reproductor de Windows y esta vez debería abrir sin problemas =)

Espero que les pueda ser de utilidad, si alguien entra aquí, sigue el procedimiento y puede solucionar el problema, así también como si no puede solucionar el problema ¡Comentarios bienvenidos!

Saludos,

Checho

Migrando desde Office 2003 / 2007 hacia Office 2010 utilizando Archivo de respuesta y MDT (Parte I)

migration

Empieza a llegar el tiempo en muchas organizaciones en el que deben pensar mantenerse o aprovechar los nuevos pilares de productividad y realizar migraciones e implementaciones tanto de estaciones de trabajo a nivel de sistema operativo como por supuesto, comunicaciones y productividad que se refieren específicamente a Microsoft Office.

Está claro que la preocupación principal aunque puede variar se enfoca mucho a ¿Cómo mitigar el impacto de la migración? y ¿Cuál es el mejor camino para realizar la migración? sobre todo cuando estoy varias versiones por debajo de las actual.

Partiendo desde ahí los Administradores de tecnología o la organización en general debe tratar de tomar las mejores decisiones para poder superarlo satisfactóriamente.

Centrándonos en Office 2010, quiero mostrarles en dos artículos cómo realizar una migración utilizando un Archivo de autorespuesta para Microsoft Office 2010 y desplegando la instalación sea manualmente o bien por medio de Microsoft Deployment Toolkit (Este último se tratará en un próximo artículo).

En el escenario que utilizaré para esto tengo:

Windows 7 Enterprise SP1
Microsoft Office 2003 Professional Edition con Service Pack 3

O2

Además de esto tengo una cuenta de Microsoft Exchange Online (BPOS) configurada en Outlook 2003, una cuenta de Windows Live ID (Checho’s Blog) y unos documentos de Word y Power Point en el sistema que deseo mantener:

O1

O3 O4 

Predeterminádamente el Asistente de instalación de Office 2010 detecta versiones pasadas de Office instaladas en el Equipo, por tal motivo ofrece hacer el Upgrade y a manera de configuración borra todas las versiones anteriores o bien se le puede especificar que mantenga las dos versiones (Vieja y nueva) instaladas o filtrar por aplicaciones.

La recomendación personal es que si se desea hacer la migración o el Upgrade a Office 2010 se haga eliminando las versiones pasadas (Predeterminádamente) y trabajar todo a partir de la nueva.

Para sacar provecho de esto utilizaremos el Archivo de autorespuesta propio para la instalación personalizada de Office 2010 para automatizar todo el proceso por lo que al ejecutar la instalación hará el Upgrade sin preguntar =)

*Nota: Recordemos que el concepto de Archivo de autorespuesta se refiere a un paquete o XML (Hablando de Windows) que le indica al asistente de instalación las configuraciones que tendrá (Que normalmente hacemos manualmente).

Requisitos

– Necesitamos tener todos los archivos de instalación de Office 2010 en un directorio local del sistema, para este artículo lo tendré en el escritorio dentro de la carpeta “Office10”. Si todavía no tienen Office 2010 pueden realizar la descarga del trial de evaluación desde Aquí.

– Los archivos de administración para crear el paquete de autorespuesta incluidos en el Office Customization Tool (OCT), si todavía no los tienen puede hacer la descarga desde Aquí.

*Nota 1: Deben descargar el Admin_Template de acuerdo a la arquitectura de instalación (32 ó 64 bits)

*Nota 2: Las plantillas administrativas sólo son necesarias si no se tiene la versión de Licenciamiento por volumen de Office 2010 (Que ya las incluye).

Preparando paquete de instalación

Una vez tengamos la carpeta con los archivos de instalación de Office, debemos ejecutar las plantillas administrativas (Admin_Templates) y descomprimir el contenido dentro de la carpeta donde tengamos los archivos de instalación de Office (Para este artículo en “Office10”):

O5

O6

*Nota: Realmente la carpeta importante y necesaria es la de Admin, pero la descompresión de todo el paquete ahorrará tiempo y es más fácil. =)

El resultado del contenido de la carpeta donde están los archivos de instalación de Office debe ser similar al siguiente:

O7

Una vez hecho esto ejecutamos una consola de comandos, nos vamos hasta el directorio de la carpeta con los archivos de instalación (Utilizando el comando "cd”), para este caso a C:UsersDemoMigDesktopOffice10 y ejecutamos:

Setup.exe –admin

O8

Se abrirá la ventana de Office Customization Tool, allí Seleccionamos la versión y arquitectura para el que queremos crear el paquete y clic en OK (Aceptar):

O9

A partir de aquí el proceso consiste en modificar nodo por nodo de la izquierda dependiendo de lo que queramos agregar, quitar o configurar en la instalación de Office.

No entraré en detalle puesto que anteriormente hice un artículo explicando a grandes rasgos los nodos que lo pueden ver desde Aquí.

Aquí veremos tres nodos que serán los que representen los cambios en cuanto al Upgrade que se hará:

Licencia e Interfaz de usuario:

Aquí es donde se especificará el método de activación (Muy necesario a la hora de pensar en un despliegue de sistema operativo y ahora Suite de Office 2010), y la interacción que se tendrá en la instalación.

Como se trata de que la instalación sea automatizada, indicaremos un código de licencia, seleccionaremos “Acepto los términos de licencia”, y en Display Level seleccionamos Basic (Básico) y activamos los items de Suppress modal (Suprimir modal) y No cancel (No cancelar):

O10

Eliminar instalaciones previas:

Aquí podremos decidir si queremos que se remueva la versión anterior de Office desde la que estamos haciendo Upgrade (En este caso 2003) o bien seleccionar qué aplicaciones dentro de la Suite anterior se desean quitar.

La decisión es muy libre, pero como recomendación nuevamente dejar que se elimine toda la suite anterior:

O11

Perfiles de Outlook:

En este nodo podremos especificar la configuración de nuestros perfiles de Outlook sea existentes o bien nuevos.

Como ya en nuestra organización, y para este artículo ya tenemos perfiles creados y deseamos manternerlos debejos dejar la opción predeterminada “Utilizar perfil existente” (Use existing profile)

O12

Todo está listo, nuestro último paso es guardar el Archivo de autorespuesta (Se le pueden agregar las otras características deseadas antes de guardar).

Para esto clic en Archivo (File) y Guardar como (Save as).

Lo importante aquí es que este archivo debemos guardarlo en la carpeta Updates dentro de los archivos de instalación de Office de la carpeta en la que previamente los copiamos, para este artículo Office10Updates:

O13

Realizando upgrade automatizado

Una vez creado y guardado el archivo de autorespuesta para la instalación de Office nuestro último paso será ejecutar la instalación de la Suite, para esto bastará con hacer doble clic en Setup.exe que se encuentra dentro de los archivos de instalación de Office que copiamos.

Como automatizamos todo el proceso, sólo se verá la pantalla de Progreso de instalación:

O14

*Nota: El proceso puede tardar varios minutos puesto que está eliminando archivos anteriores y al mismo tiempo realizando la nueva instalación. Al terminar hará un reinicio del sistema.

Sólo nos queda comprobar que tanto los archivos que teníamos creados como los perfiles agregados al Outlook continúen trabajando sin problemas para dar completado el proceso de migración.

La primera carga del perfil puede ser demorado mientras Outlook hace toda la migración y si es una cuenta de Exchange o Exchange Online (Como aplica en este artículo) podría pedir nuevamente las credenciales completas:

O16

O17

O18O4

*Nota: Sí habían iconos anclados a la barra de tareas (Como en este caso) no se actualizarán ya que al pertenecer a la versión anterior símplemente se quitan pero no se renuevan.

En el próximo artículo veremos cómo realizar este proceso esta vez con Office 2007 desplegando Office 2010 desde Microsoft Deployment Toolkit (MDT) lo que evitará la copia de los archivos de instalación localmente en cada estación y todos los equipos se podrán conectar simultáneamente al script de instalación.

Espero les sea de utilidad, ¡Comentarios bienvenidos!

 

Checho

Creando Perfiles de Usuario predeterminado para imagen maestra de Windows 7 con WAIK (Parte 1/2)

Hola a todos,

Durante todo este largo año que lleva el Blog hemos estado viendo diferentes métodos y escenarios de implementación entorno al flamante Windows 7, para fortuna hemos alcanzado a cubrir instalaciones desatendidas, personalizadas, migración y uso de diferentes herramientas como WDS y MDT pero se ha obviado algo importantísimo dentro del concepto de estandarización de imágenes a nivel de la organización y son los Perfiles de Usuario.

Básicamente, el concepto de Perfil de Usuario se puede ver como la configuración que tiene cada usuario que inicia sesión en una máquina sea localmente o a nivel de dominio (Sonidos, Temas, Fondos, etc).
Al realizar la instalación de Windows 7 (Y en general de cualquier versión anterior) se crea un primer perfil de usuario predeterminado que el sistema operativo ya ha construido previamente. Por esta razón es que siempre al implementar una imagen Retail (Caja o Suscripción) siempre veremos el fondo de pantalla con el logo de Windows, y unos colores y configuraciones ya definidas; de igual forma sucede con los equipos Preinstalados (OEM) aunque en este caso el perfil puede variar mucho dependiendo del fabricante.

Si fuéramos un poco más a fondo, Windows utiliza las configuraciones del directorio %SystemDrive%UsersDefault que a su vez desde la propia base de datos creada para él en el registro hace uso de lo que se especifica en la clave de HKEY_USERS.DEFAULT

*Nota 1: La variable “%SystemDrive%” se refiere a la unidad donde se encuentra instalado Windows, por lo general C:

*Nota 2: La carpeta “Default” predeterminadamente se encuentra oculta.

Por supuesto una empresa o en general todos los que estemos disfrutando aprendiendo estos procesos de implementación vamos a estar interesados en aprovechar esto y personalizar nuestro propio Perfil de Usuario predeterminado.

La ventaja de esto es que cada vez que se cree un usuario nuevo en la máquina mantendrá las configuraciones que se especifiquen en la creación del perfil y así por supuesto podremos asegurar un estándar por lo menos en lo que tenga cada usuario al entrar por primera vez.

Lo que haremos con ayuda de este artículo espero será aprender a crear nuestro propio Perfil de Usuario predeterminado a partir de una imagen maestra de Windows 7 que se capture (Lo más cercano tal vez a lo que se haría en una compañía).

Lo que necesitaremos será:

– Desplegar en un Equipo de referencia una instalación de Windows 7 incluyendo personalizaciones, pueden ver Este artículo para más información.

– Equipo técnico con el Kit de Instalación Automatizada para Windows 7 (WAIK) instalado. Pueden descargar la última versión del WAIK desde Aquí.

– Imagen de Windows PE para capturar la imagen personalizada (El proceso se hará aquí)

¡Empezemos!

El primer paso realmente no se detallará mucho aquí ya que se trata básicamente de instalar una imagen desatendida o que integre configuraciones propias especificadas en un Archivo de autorespuesta (Por ejemplo la página inicial de Internet Explorer), para ver todo el proceso pueden seguir Este artículo

Para los que deseen, pueden comparar sus personalizaciones con este archivo de autorespuesta que creé para el artículo (La instalación es completamente desatendia):


*Nota: Si desean utilizar este mismo archivo de Autorespuesta la recomendación es que lo abran con el System Image Manager y vea cada personalización para que no afecte en nada de los plantes que tienen. Además de esto deben cambiar las propiedades incluidas en el Subcomponente de MetaData dentro de:

x86_Microsoft-Windows-Setup_6.1.7600.16385
-ImageInstall
–InstallFrom
—MetaData

La propiedad “Key” y “Value” debe corresponder a la imagen que estén montando, por ejemplo en este artículo personalizaré Windows 7 Enterprise por lo que las propiedades serían
Key: /IMAGE/INDEX
Value: 1

MD1

La razón es porque estoy utilizando el índice interno que diferencia a la edición Enterprise, pero si están utilizando Professional o cualquier otra deben fijarse qué índice tiene (Para evitar fallos en la instalación).

También podrían cambiarlo por “/IMAGE/NAME” y en el Value poner el nombre de la edición por ejemplo Windows 7 PROFESSIONAL.


No necesáriamente deben especificarle configuraciones desde el Archivo de autorespuesta, para los que deseen (Para temas del artículo lo hice así), símplemente pueden hacer personalizaciones propias sobre el sistema ya instalado como la previsualización de los iconos en el Explorador de Windows, el Fondo de pantalla y características como la activación de los juegos (Recordemos que en Enterprise no están activados):

UP3

El siguiente paso una vez completadas las personalizaciones será resellar la imagen para que se limpie la información de Hardware y SID y posteriormente capturarla para desplegarla configurando el perfil.

Para esto ejecutamos una consola de Comandos con privilegios elevados yendo a Inicio, teclear CMD y sobre la Consola clic derecho y “Ejecutar como administrador

En la consola buscamos el Directorio de Sysprep, como predeterminadamente se queda al ejecutar como Administrador en C:WindowsSystem32 símplemente utilizamos “cd” para avanzar hasta la carpeta que buscamos, para esto tecleamos: cd sysprep

Una vez en el directorio Sysprep ejecutamos el siguiente comando para resellar:

Sysprep /oobe /generalize /shutdown

UP4

Capturando la imagen personalizada

Para poder capturar la imagen necesitamos una imagen de Windows PE que pueda incluir ImageX.
Para crear la imagen en el Equipo técnico vamos a Inicio > Todos los programas > Windows AIK > Clic derecho sobre Deployment Tools Command Prompt y “Ejecutar como administrador”

En la consola de comandos ejecutamos:

Copype.cmd <Arquitectura> <DirectorioPE>

Donde <Arquitectura> va a depender si se desea capturar una imagen de 32 o de 64 bits y <DirectorioPE> es donde se creará la carpeta con los archivos necesarios para crear el Windows PE.

Para este artículo que capturaré una imagen de 32 bits (x86) y que lo guardaré en el Disco D:, dentro de “WinPE” el comando sería:

Copype.cmd x86 D:7WinPE

UP5

*Nota: Si fuera para 64 bits no sería x64 sino AMD64, por ejemplo:
Copype.cmd AMD64 D:7WinPE

Ahora se debe copiar la herramienta de ImageX dentro del directorio ISO del Windows PE que será el que se capture, para esto ejecutamos:

Copy “C:Program FilesWindows AIKToolsx86Imagex.exe” <DirectorioPE>ISO

Por ejemplo, para este artículo sería:

Copy “C:Program FilesWindows AIKToolsx86Imagex.exe” D:WinPEISO

UP6

*Nota: El comando puede variar, si es x64 sería “C:Program FilesWindows AIKAMD64ToolsImagex.exe”

Por último debemos copiar el archivo .WIM de arranque “winpe.wim” al directorio Sources para que se pueda inicializar el Windows PE, para esto ejecutamos:

copy <DirectorioPE>winpe.wim <DirectorioPE>ISOSourcesBoot.wim

Para este artículo por ejemplo sería:

Copy D:WinPEwinpe.wim D:WinPEISOSourcesBoot.wim

UP7

Por último procedemos a crear la imagen de Windows PE utilizando la herramienta integrada en el AIK OSCDIMG, para esto ejecutamos:

oscdimg –b<DirectorioPE>etfsboot.com –u2 –h <DirectorioPE>ISO <DirectorioWIM>WinPE.iso

Donde <DirectorioWIM> es la carpeta o unidad en la que se almacenará la imagen creada.

Para este artículo por ejemplo sería:

oscdimg –bD:WinPEetfsboot.com –u2 –h D:WinPEISO D:WinPE.iso

UP8
A continuación, debemos grabar esa imagen que nos quedó sea en un DVD o USB.

Debemos arrancar el Equipo de referencia que se reselló con esa imagen para que entre al Windows PE que símplemente mostrará una consola de comandos:

UP9

Lo primero es ubicar la unidad virtual donde están los archivos agregados al Windows PE, y en este caso dependerá mucho de qué unidades hayan estado ocupadas en el Equipo de referencia por dispositivos y unidades.

El paso sería buscar en orden alfabético aunque más específicamente por las primeras que Windows entrega, pore ejemplo: D:, C:, E:, F:

El comando sería: <Unidad>, por ejemplo: E:

Para ver el contenido: dir

UP10

*Nota: Debemos hacer esto hasta encontrar donde esté la herramienta de Imagex.exe que identifica la unidad del Windows PE

Ahora debemos ubicar la unidad donde está instalado el sistema operativo resellado, por lo general será C: pero habrán ocasiones en las que puede variar y en ese caso la letra sería probablemente D: si no está ocupada.

El procedimiento es el mismo, y el identificador son los directorios comunes de Windows como Program Files, Windows, Users, etc, además de que indicará en la descripción que es Windows:

UP11

Sabiendo quién es el Windows PE y Windows (En mi caso E: y D: respectivamente) procedemos a capturar la imagen resellada utilizando Imagex.

*Nota: Antes de proceder a capturar, mi recomendación sería situarnos en la unidad donde está Imagex para que la referencia sea más sencilla, en este caso volver a E:

Ejecutamos:

Imagex /Capture <UnidadWindows> <UnidadWindows>install.wim “Nombre” “Descripción”

Donde <UnidadWindows> es la letra identificada previamente del sistema operativo.

Para este artículo sería:

Imagex /Capture D: D:install.wim “Windows 7 ENTERPRISE” “Windows 7 ENTERPRISE”

UP12

*Nota: El proceso puede tardar varios minutos dependiendo del tamaño de la imagen a capturar.

Cuando termine el proceso de captura (Verificamos que se complete satisfactóriamente) nos debemos conectar a un recurso compartido de red, que lo ideal sería que fuera el Equipo técnico o bien encender el equipo, esperar todo el proceso y grabar físicamente en algun dispositivo la imagen install.wim creada.

Para conectarnos al recurso compartido ejecutamos:

Net Use <RecursoCompartido> /User:<UsuarioRecurso> <Password>

Donde <RecursoCompartido> es la carpeta que tenemos a disposición para compartir en red, <UsuarioRecurso> es el nombre de usuario del recurso compartido y <Password> es la contraseña del usuario donde está el recurso compartido.

Para este artículo por ejemplo sería:

Net Use v: \Checho-pcv /User:Checho ms11

UP13

Posteriormente hacemos la copia al recurso compartido utilizando la herramienta de XCOPY ejecutando:

xcopy <UnidadWindows>install.wim <RecursoCompartido>

Para este artículo por ejemplo sería:

xcopy D:intall.wim v:

UP14

*Nota: El proceso puede tardar varios minutos dependiendo del ancho de banda y peso de la imagen.

¡Imagen capturada!

Copiando el Perfil de Usuario

En el Equipo técnico una vez tengamos la imagen “install.wim” capturada debemos crear una carpeta para guardar todos los archivos de instalación del medio de Windows 7.

Para este artículo yo creé una carpeta llamada “7” en la unidad D:

Copiamos todos los archivos de instalación del medio de Windows 7 o imagen ISO a la carpeta creada (En mi caso a D:7) manualmente en el explorador de Windows o bien en una consola de comandos con privilegios elevados ejecutamos:

xcopy <UnidadWindows>*.* /s/e/f <Carpeta7>

Donde <UnidadWindows> es la del medio de instalación y <Carpeta7> es la carpeta creada bajo la que vamos a trabajar.

Para mi caso sería:

xcopy E:*.* /s/e/f D:7

UP15

Cuando copien todos los archivos, vamos al directorio creado, y dentro de la carpeta Sources debemos eliminar:

Install.wim

ei.cfg

Todos los archivos de catálogo, que son los que tienen extensión .clg, por ejemplo: Install_Windows 7 ENTERPRISE.clg

Después de esto copiamos el archivo install.wim que capturamos previamente al mismo directorio Sources dentro de la carpeta donde pegamos todos los archivos de instalación (Por ejemplo para este caso sería a D:7Sources):

UP16

El siguiente paso por fin será indicar la copia del perfil de usuario integrado en la imagen maestra, para esto debemos utilizar un archivo de Autorespuesta nuevamente (Si es que utilizó en la primera instalación antes de capturar).

Clic en Inicio, Todos los programas, Windows AIK, Windows System Image Manager (Ejecutamos como administrador):

En el Windows System Image Manager (SIM) debajo del nodo de Windows Image hacemos clic derecho sobre Select a Windows Image or catalog file y en el menú contextual clic en Select Windows Image…

UP17

En la ventana de búsqueda nos dirigimos hasta la carpeta donde copiamos todos los archivos de instalación de Windows (Para este artículo D:7) y dentro de la carpeta Sources buscamos el install.wim que capturamos y remplazamos por el eliminado previamente:

UP18

Como es una imagen personalizada y además eliminamos los catálogos (.clg) nos pedirá crear uno nuevo para identificar esta imagen, clic en Sí y esperamos mientras se crea y se visualizan los componentes en el nodo de Windows Image:

UP19

UP20

*Nota: Puede tardar varios minutos sin avanzar, tendremos que ser pacientes =)

Al terminar, el siguiente paso es crear el Archivo de autorespuesta, para esto clic derecho sobre Create or open an answer file debajo del nodo de Answer file y seleccionar New Answer file…

UP21

Aquí desde ahora podríamos cambiar los parámetros ya incluidos en la imagen al desplegarla si utilizamos un archivo de Autorespuesta anterior y adicionalmente agregar el del objetivo del post para copiar el perfil de usuario capturado.

Lo que vamos a especificarle es que copie el Perfil de Usuario que tiene la cuenta creada y que lo copie al perfil predeterminado para que cada nuevo usuario creado se mantenga con las mismas configuraciones iniciales.

Para esto en los componentes debajo del nodo de Windows Image buscamos x86_Microsoft-Windows-Shell-Setup_6.1.7601.17514 (El número final varía si es o no SP1 de Windows 7), clic derecho y seleccionamos Add Settings to pass 4 specialize

UP22

Debajo del Nodo de Archivo de respuesta sobre el componente agregado veremos que despliegue en la parte derecha unas propiedades como las que hemos especificado o modificado normalmente creando archivo de autorespuesta o bien utilizando MDT.

En la que nos debemos concentrar es en CopyProfile, el valor se lo debemos establecer en True para que lo vuelva predeterminado:

UP23

*Nota: En la primera parte del artículo dejé un Archivo de autorespuesta utilizado para este post, se puede utilizar y modificar para agregar el CopyProfile =)

Una vez creado el archivo de autorespuesta (Lo primordial es no olvidar el CopyProfile ) revisamos que no tenga errores haciendo clic en el menú Tools, Validate Answer file y al correjir todo clic en el menú File y Save answer file as…

UP24

El nombre debe ser Autounattend y se debe guardar en la carpeta raíz de los archivos de instalación de Windows 7 (Para este artículo en la carpeta “7” de la unidad D:):

UP25

¡Listo!

Creando imagen de instalación

Ahora que la imagen está personalizada, agregada y ya tenemos los parámetros para copiar el perfil de usuario configurado como predeterminado sólo resta crear la imagen de instalación para desplegarla (Si no se está uitlizando WDS o MDT), para esto:

Clic en Inicio, Todos los programas, Microsoft Windows AIK, clic derecho en Deployment Tools Command Prompt y “Ejecutar como administrador”

En la consola de comandos tecleamos:

oscdimg –b<DirectorioWindows>Bootetfsboot.com –u2 –h <DirectorioWindows> <DirectorioImagen>NombreImagen.iso

Donde <DirectorioWindows> es la carpeta en la que se copiaron los archivos de instalación previamente, <DirectorioImagen> representa el directorio en el que se creará la nueva imagen .ISO y NombreImagen.iso es el nombre que le vamos a asignar a la imagen.

Para este artículo sería:

oscdimg –bD:7Bootetfsboot.com –u2 –h D:7 D:en_Win7_Default_Profile.iso

UP26

El siguiente paso es desplegar en el Equipo de referencia esta imagen y comenzar las pruebas!

Probando el nuevo Perfil de Usuario

Una vez instalado lo primero sería probar cómo se encuentra el primer perfil de la cuenta de Administrador o la que se haya creado (Preferible que sea la de Administrador integrada, la información de cómo habilitarla se encuentra en el enlace indicado al principio del artículo o en el archivo de autorespuesta referenciado también desde aquí).

Después de esto crear una nueva cuenta y ver qué configuraciones se mantuvieron como la página de inicio de Internet Explorer (Recordemos que había puesto este blog como página inicial) y las configuraciones como el habilitar los juegos:

UP27

UP28

En mi caso por más que cambie la página inicial del Administrador integrado u otros usuarios, cada que cree uno nuevo será la especificada previo a copiar el perfil de usuario que en este caso es Checho’s Blog.

*Nota: Habrían configuraciones que podrían mantenerse o no dependiendo de distintos factores, aquí una serie de artículos al respecto de Mitch Tulloch:
http://www.windowsnetworking.com/articles_tutorials/Customizing-Default-User-Profile-Windows-7-Part1.html

Estaré investigando qué tanto se puede lograr personalizar haciendo la tarea manualmente, aunque si alguien sigue el artículo y hace más pruebas, bienvenido será! 

Además de esto en un próximo artículo (Parte 2) al respecto estaré mostrando este proceso con MDT y cómo la automaitzación de todas estas tareas nos podrán ayudar.

Espero les sea de utilidad.

Saludos,

 

Checho

Al ejecutar Internet Explorer 9 se abren dos pestañas simultáneamente, Process Monitor y su solución.

Hola,

¡Seguimos trayendo problemas y soluciones!
Y realmente es fascinante porque no hay mejor forma de aprender Sysinternals que llevando la Suite a la acción.

El “problema”

Seguramente todos ya se dieron cuenta que hace unos días (Dos exáctamente) se lanzó a nivel mundial la última versión del navegador de Microsoft, Internet Explorer 9, en mi concepto siguiendo muy bien su estrategia de “La web más hermosa”.

Por ahorros de tiempo y facilidad decidí Integrar Internet Explorer 9 a una imagen de Windows 7 utilizando Dism para poder grabarla y que me incluyera tanto el SP1 como el IE9.

El “problema” por llamarlo así es que al ejecutar el Internet Explorer en esta instalación limpia, después del pequeño y renovado asistente que ahora sólo pide la activación o no activación del SmartScreen se abrían las dos pestañas, la primera que era mi página de inicio y la que lanza normalmente este asistente que se dirige a la página de Microsoft referente a IE9.

En esa primera ejecución es normal, pero seguía y seguía pasando sin importar que restableciera las configuraciones o bien que cambiara mi página de inicio:

IEE3

Como la imagen era personalizada, empecé a pensar que seguramente eso había sido la causa (Teniendo en cuenta que en otro equipo la instalación la había hecho actualizando y no inyectando IE) así que hice la más fácil pero lamentablemente la más larga.

Volví a bajar el sistema, el IE9, de nuevo monté la imagen, inyecté el IE y creé el .ISO que posteriórmente grabé para reinstalar.

Confiado de esto volví a probar pero, el problema no se solucionó.

Causa y solución

Como no sabía qué estaba sucediendo se empezaba a volver algo complicado, pero afortunadamente iba recogiendo pistas como un primer “descarte” de que la inyección de la actualización o la instalación hubiera quedado corrupta (Aunque la primera habría que validar más a fondo qué tanto pesa en el inconveniente).

La única forma de buscar qué estaba pasando era por supuesto seguir la traza en la ejecución de Internet Explorer 9 y buscar qué podría estar generando la doble instancia de pestañas repetidamente.

Para eso entonces ejecuté Process Monitor!

Como siempre lo que hice fue hacer un filtro sólo al proceso de Internet Explorer (iexplore.exe) yendo al menú Filter y seleccionando Filter, después hacer la relación “Process name”, “is” y “Iexplore.exe” y clic en los botones de Apply y OK para guardar los cambios:

P
Ahora, lo recomendable es borrar el monitoreo actual con las teclas CTRL + X, y reproducir el problema para que todo se haga siguiendo el proceso y que al terminar sea más cómodo (Entre tanto resultado!) poder encontrar el culpable.

Después de reproducir el problema no sabía la verdad cómo empezar a buscar el posible causante, aunque en principio podría imaginarme una doble llamada a páginas web desde el registro, pero es engorroso buscar entre tanto cuando no hay certeza de dónde empezar!

Para mi fortuna antes de buscar seguí un poco de consejos de Windows Internals referentes a Process Monitor y de Daniel Martín que se referían a utilizar un poco el sentido lógico, y empezar del último registro hacia el primero (Abajo hacia arriba).

El sentido común de esto estaba en que la unica forma de que Internet Explorer (En esta y desde IE 7) muestre la página principal del navegador era cuando corría el Primer asistente que permitía configurar características como SmartScreen, Proveedor de búsqueda, etc.

En IE9 aunque sólo se configura el filtro, sigue siendo el primer asistente de ejecución, y era como si así se le haya indicado la finalización, no se estuviera guardando internamente esto y siguiera lanzando la pestaña con la página al abrir sesión en el explorador.

Lo que hice entonces fue detener el monitoreo con las teclas CTRL + E, bajar completamente y aplicar una búsqueda de abajo hacia arriba con iniciales de lo que estaba buscando (Primer asistente de configuración), y un buen comienzo es indicarlo en inglés que es como normalmente las claves de registro se nombran para alguna tarea, para este caso sería: “FirstRun”

Para hacer la búsqueda recordando en Process Monitor basta con presionar CTRL + F o ir al menú Edit y seleccionar Find.

En la ventana de búsqueda se le indica el parámetro referente al Primer arranque o asistente que buscaba (FirstRun), y además como estamos en el último registro la búsqueda se debe hacer hacia arriba seleccionando el item “Up”:

IEE2

Al hacer clic en Find Next afortunádamente el resultado fue bastante conciso (Grande Process Monitor!):

IEE1

Específicamente, se hacía un Query o consulta a una clave en HKEY_CURRENT_USERSoftwareClasessVirtualStoreSOFTWAREMicrosoftInternet ExplorerMAIN llamada DisableFirstRunCustomize

A pesar de todo la clave tenía un resultado normal NAME NOT FOUND, y es que estaría SUCCESS si previamente se le hubiera deshabilitado ese primer arranque al Internet Explorer 9.

Pero, como para este caso no estaba totalmente seguro de qué causaba que siguiera con el comportamiento como si el asistente seguía activo, tenía que aprovechar esta referencia para pararlo!

Desde el Process Monitor hice clic derecho en la clave anterior (La que llegaba hasta MAIN) puesto que para llegar a una llave correctamente el resultado debe ser satisfactorio y seleccioné “Jump to

En la llave de registro como veía que llamaba a DisableFirstRunCustomize que al traducirla sería algo como “Desactivar el primer arranque personalizado” la creé tal cual asignándole el valor de “1” que indica siempre una bandera de “Verdadero”, osea que se activa la llave como tal.

Para crear la clave dentro de la llave, basta con hacer clic derecho y seleccionar New > DWORD (32-bit) Value

IEE4

El aspecto quedaría así:

IEE6
Con esto se supone que el resultado en el registro sería satisfactorio, por lo que tendría que deshabilitarlo, lo que seguía era entonces abrir de nuevo el navegador!

Para mi fortuna, efectivamente, el Workaround funcionó y ahora sólo abría por fin una sola pestaña:

IEE7


Fix:

Si alguien más experimenta este problema, dejo el registro a continuación para bajar, descomprimir y ejecutar:


Espero esto pueda servir, y los invito realmente a probar el Internet Explorer 9, para mí fantásticamente superior a sus versiones anteriores! =)

Saludos,

 

-Checho-

El Malware (XP-947EBED2.EXE) que se ejecutaba al conectar un dispositivo. Autoruns, Process Explorer y su solución

Hola,

En esta ocasión, variando un poco también quiero documentar un problema producido por un Malware y la utilización de las herramientas poderosas Autoruns y Process Explorer en conjunto para neutralizarlo y solucionarlo.

El problema

Específicamente, cuando conectábamos un dispositivo móvil en el Equipo ESET detectaba la ejecución de un Malware, pero lamentablemente no lo podía eliminar:

Imagen4

*Nota: Cuando se habla de Malware se está generalizando a cualquier tipo de “virus” que puede ser un gusano, troyano, etc.

El archivo en cuestión era un ejecutable de nombre “XP-947EBED2.EXE” que era llamado desde C:WindowsSystem32, aunque se encontraba oculto y tenía apariencia de una carpeta común de Windows XP (Aun estando sobre Windows 7):

Imagen5

Por supuesto se tornaba bastante molesto para la persona no poder trabajar bien con sus dispositivos puesto que sin importar el tipo que fuera siempre obtenía el mensaje y además afectaba a las copias que hacía.

La pregunta era entonces ¿Por qué no se podía eliminar?

La causa

Para determinar el problema se podría haber recurrido por ejemplo a herramientas como el MSRT de Microsoft para neutralizar el Malware y “tratar de eliminarlo”, pero procedí entonces a utilizar dos de las mejores herramientas de la Suite de Sysinternals que con seguridad podría obtener buenos resultados Autoruns y Process Explorer.

Autoruns se puede definir como un “Mega MSCONFIG”, entregándome como Process Explorer (En comparación con el administrador de tareas) muchísimas más funciones incluyendo las DLL, Drivers y todo lo que se esté cargando con Windows.

Lo primero que hice fue correr Autoruns para determinar si en verdad el Malware estaba iniciando al prender el equipo, así que me fui a la pestaña de “Everything” ya que no sabía si iba a estar con el mismo nombre procedí a seleccionar en el menú superior de Options la opción Hide Microsoft and Windows Entries para visualizar sólo lo de programas de terceros:

Im1

A continuación presioné F5 (También en el botón de Refresh) y pude encontrar algo muy interesante en el resultado:

Imagen1

En efecto “XP-947EBED2.EXE” se estaba ejecutando al iniciar Windows, si hacía clic derecho y “Jump to” para seguir su ubicación me encontraba con que iniciaba en HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun que es donde se hacen las llamadas a las aplicaciones que ejecutan al primer inicio:

Imagen2

*Nota: A manera de información, la configuración de los servicios que se están ejecutando con Windows se encuentran en la clave: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservices

Es importante asegurarse de que nada más extraño se esté iniciando para descartar varios.

Desactivar la ejecución desde Autoruns (O eliminando la entrada desde aquí mismo) sólo me hubiera servido para neutralizar el inicio del Malware pero no hubiera sido la solución puesto que seguiría allí.

Por lo tanto ubiqué el ejecutable y lo traté de eliminar manualmente pero para mi sorpresa no podía (Y quizás explicaba lo que el Antivirus tampoco):

Imagen6

En el Artículo pasado hablamos un poco sobre este problema y que en palabras generales se debía a los Handles que otro proceso podría tener abiertos y que impedían terminar la operación.

Aquí no se escapaba la causa por lo que fue donde entró Process Explorer, siguiendo el mismo procedimiento fui al menú Find y seleccioné Find Handle or Dll…
Como sabía el nombre busqué por XP-947EBED2.EXE y esta fue mi otra sorpresa al ver qué estaba utilizando sus Handles:

iMAGEN7

Increiblemente el XP-947EBED2.EXE se estaba comportando como un proceso tal cual en ejecución que estaba siendo lanzado por su proceso padre “Explorer.exe”:

Imagen3

*Nota: En Process Explorer los proceso que están bajo el color azul son Procesos de Usuario (Existen los que corren en Modo usuario y otros que corren en Modo kernel).

La solución

Como ya sabía cómo se iniciaba y por qué no se dejaba eliminar el proceso realmente se volvía más sencillo.

El proceso fue primero “Matar” el proceso o en general todos los hilos de ejecución haciendo clic derecho desde Process Explorer sobre XP-947EBED2.EXE y seleccionando “Kill Process”:

Im2

Ahora que ya el proceso estaba cerrado no podría haber Handles referenciados por otros objetos (PUesto que todos los estaba utilizando el propio proceso).

A continuación encontré de nuevo el Ejecutable en C:WindowsSystem32XP-947EBED2.EXE y símplemente lo eliminé, en esta ocasión pude hacerlo sin ningún impedimiento.

Lo siguiente era reiniciar el sistema, y empezar a probar si se volvía a crear.

Primero inserté un dispositivo para ver si se ejecutaba pero no hubo mensaje de error, así que abrí Process Explorer pero ahora el proceso no se ejecutaba.

Por último vigilé por Autoruns su ejecución pero aunque se mantenía el resultado era distinto:

Imagen8

La diferencia estaba en “File not found”, por lo que ya no cargaba con Windows así que podía proceder a eliminar la entrada desde ahí haciendo clic derecho y “Delete”.

Realicé varias pruebas con diferentes dispositivos pero ahora no había errores ni detección alguna =)

Por último por supuesto cambiamos NOD 32 por Microsoft Security Essentials, actualicé y analicé y afortunadamente (Por lo menos confiando en el resultado de MSSE) no había peligros.

En el caso de esta máquina donde vimos esto, resultó relativamente fácil poder solucionar el problema, pero realmente Sysinternals nos puede entregar una gran ayuda cuando todo parece “Muy extraño”.

Saludos,

-Checho-

¿Eres estudiante? ¿Vives en Medellín, Colombia? ¡Asiste al Microsoft Academic Tech Festival el próximo 17 de Marzo!

¡Hola!

Me gustaría invitar a todos los estudiantes a este evento gratuito que se desarrollará aquí en la ciudad de Medellín, ¡Los esperamos!

Toda la información a continuación:

clip_image001

9:40am-10:00am

Registro e Ingreso

10:00am-10:30am

Aventuras con Internet Explorer 9

10:30am-11:30am

Tus Aplicaciones en todo el mundo, con Windows Phone 7

11:30am-12:00m

Tu Futuro en la Industria de Tecnología

clip_image001[9]

Jueves 17 de Marzo de 2011 • 10:00 a.m. a 12:00 m.
Universidad de Antioquia

Auditorio Principal – Edificio de Extensión

Cll 70 N° 52 – 72 Primer Piso (Al lado del Parque de los Deseos)

clip_image001[11]

clip_image001[15]clip_image001[17]clip_image001[19]

clip_image001[21]clip_image001[23]clip_image001[25]clip_image001[27]

Si tienen alguna duda, no duden en comentar!

El error “Windows no puede detener el dispositivo de volumen genérico…” Handles, Process Explorer y su solución

LogoSysinternals

Hola a todos,

Hoy quiero compartirles un artículo un poco más corto pero que con ayuda de Process Explorer creo que nos puede ayudar en muchas ocasiones para solucionar el error típico que se presenta.

El problema

Cuando estamos trabajando con archivos dentro de un dispositivo (La mayoría de veces ocurre en este escenario) o bien con un archivo que está en el sistema operativo al tratar bien sea de expulsar el dispositivo, ó borrar el archivo local podremos tener un error similar a este:

Capture

Capture1

“Windows no puede detener el dispositivo de volumen genérico porque un programa lo está usando. Cierre cualquier programa que pueda estar usando el dispositivo e intente de nuevo más tarde”

“Esta acción no se puede completar porque el archivo está siendo utilizado por otro programa”

*Nota: El mensaje de error puede variar un poco dependiendo de lo que esté bloqueando pero en general indicará que no es posible expulsar o deterner el dispositivo (o eliminar archivo por ejemplo) porque está siendo utilizado.

La causa

Realmente en la mayoría de las ocasiones la causa y la solución son bastante predecibles ya que podemos tener ventanas abiertas o archivos que teníamos dentro del dispositivo, o en el caso de cuando queremos mover o eliminar algun archivo lo teníamos abierto todavía, la solución aquí sencillamente es que cerramos todo.

El cambio está es cuando por lo menos todo lo de nuestra barra de tareas está cerrado y los mensajes continúan.. ¿Qué hacemos? Normalmente expulsar sin terminar el dispositivo del equipo.

Ahora, ¿Cuál es la razón de este error? Pues efectivamente se da porque aplicaciones o en general procesos (Que la instancia representativa de la aplicación) está haciendo uso o se está referenciando a Handles del dispositivo o archivo por lo que no se puede cerrar hasta que desaparezca la utilización de estos Handles.

*Nota: Un Handle (Desde lo que he logrado entender), lo podemos interpretar como un tipo de apuntador que Windows le entrega a los procesos que referencia a un objeto para acceder más rápidamente.

La solución

Como dije, básicamente consiste en encontrar qué está haciendo uso de estos Handles y cerrar la aplicación, pero como obviamente no es una tarea tan fácil a simple vista de los procesos que tenemos abiertos necesitamos una ayuda adicional para encontrarlos y cerrarlos.

La ayuda dentro de la cadena de últimos artículos por supuesto está en Sysinternals pero esta vez me refiero a Process Explorer que, básicamente es un “Súper” Administrador de tareas que al igualmente nos entrega información sobre procesos, y rendimiento en el equipo pero de una forma mucho más completa incluyendo información adicional como Hilos de cada proceso y el poder filtrar DLLs y Handles utilizados.

Process Explorer lo pueden descargar desde aquí:
http://download.sysinternals.com/Files/ProcessExplorer.zip

¿Cómo encuentro y cierro Handles?

Para solucionar el problema, primero ejecutamos Process Explorer, en el menú superior de View nos aseguramos que las vistas sean de Handles yendo a Lower Pane View y seleccionamos Handles

Capture2

 

 

 

 

 

 

 

 

A continuación, clic en el menú Find y seleccionamos Find Handle or Dll…

Capture3

En la ventana de Process Explorer Search es donde debemos buscar por el proceso que queremos borrar o bien por la unidad que queremos cerrar, para este caso el problema lo reproduje tratando de expulsar el dispositivo USB del sistema que tiene la letra asignada “M:”, así que por esta letra es que debería en este caso buscar:

Capture4

*Nota: Si el implicado fuera por ejemplo Microsoft Word, buscaríamos por su proceso ejecutable “Winword.exe”, y así si los implicados son aplicaciones y no unidades; para unidades recomiendo siempre ir por la letra que la distingue.

Hacemos clic en el botón Search y la búsqueda nos arrojará todo lo que esté utilizando Handles de la unidad incluyendo por ejemplo Procesos y Sesiones:

Capture5

*Nota: Para el caso de archivos que no se dejan mover, por lo general sólo aparece un proceso o servicio que esté usando ese Handle, será mucho más fácil todavía Smile

Para ser más exactos en la búsqueda, bastará con hacer clic en uno de los resultados, por ejemplo “M:” y Process Explorer se pondrá sobre el proceso implicado mostrando la lista de Handles en la parte inferior:

Capture5

El paso final es simplemente hacer clic derecho sobre el resultado generado al seleccionar el Handle y desde el menú contextual escoger “Close Handle”:

Capture6

*Nota: Si el resultado (Como en la captura de más arriba) son varios Handles abiertos, debemos ubicarlos todos (Los de la letra M: por ejemplo) y cerrarlos uno por uno.

Una vez cerrados todos, tratamos de copiar el archivo nuevamente o expulsar el dispositivo y ahora el resultado debe ser satisfactorio:

Capture7

Si el problema sigue sucediendo y al hacer la búsqueda encontramos la misma referencia ya podremos saber qué es lo que mantiene el uso el Handle, no siempre es un error puesto que por ejemplo para las Bases de datos es el proceso de “sqlexpress” que corre constantemente, pero sabiendo el causante ya sabremos qué hacer para completar la operación =)

Espero que esto les pueda ser de utilidad, y además estar compartiendo la mayor cantidad de soluciones posibles logradas con esta Suite de herramientas que no tienen igual!

¡Comentarios bienvenidos!

-Checho-