La aplicación “BlenderPortable.exe” que no quería instalar en Windows 7, Process Monitor y su solución.

Ya lo he dicho en otras ocasiones (Artículos), pero no me canso de repetirlo, los Foros de Microsoft TechNet y Microsoft Answers, son el mejor lugar tanto para compartir conocimiento, aprender e interactuar con nuevos problemas al mismo tiempo que se trata de ayudar a otras personas en situaciones complicadas.

Hoy quiero compartirles un inconveniente que tuve al tratar de instalar una aplicación llamada BlenderPortable en un Equipo Windows 7, justo co la intención de investigar otro comportamiento.

El Problema

Cada que trataba de instalar la aplicación Blender Portable, al ejecutarlo haciendo doble clic, justo después de indiciar la ruta de instalación, estaba recibiendo un mismo mensaje de error:

Blender1

El error indicaba que tenía problemas para escribir en la ruta de instalación, es decir en C:Program FilesBlenderPortable

Si le daba reintentar, ocurría el mismo mensaje de error, si le daba Ignorar, me entregaba de nuevo lo mismo pero con otro archivo diferente, por lo que el problema no era del archivo a copiar en cuestión, sino de cualquier archivo que estaba tratando de escribir en el directorio.

La causa

Como he dicho en otros problemas, suele ser una buena práctica ejecutar de nuevo las aplicaciones que presentan estos errores con privilegios elevados, es decir, haciendo clic derecho sobre el ejecutable, y seleccionando “Ejecutar como administrador”.

Como se esperaba, la aplicación pasó a instalarse normalmente, esto indicaba que el problema iba por algun tema probablemente de permisos.

Para asegurarme específicamente dónde, procedí a ejecutar Process Monitor de Sysinternals, seguir el comportamiento de Windows mientras intentaba instalar la aplicación y este fue el resltado al ver el log después:

Blender2

En principio, cuando Windows hacía uso de la API con la función CreateFile para generar el directorio de C:Program FilesBlenderPortable y empezar a escribir, no estaba encontrando la ruta, como muestra el resultado de PATH NOT FOUND.

A continuación, Windows consulta los eventos que tiene registrados, y hace el llamado del mensaje de error, junto con el típico sonido, que incluso lo consulta en C:WindowsMediaWindows Critical Stop.wav.

Predeterminadamente, Windows debería estar en la capacidad de crear el directorio, siendo primera vez que lo consulta, la pregunta era: ¿Por qué no lo estaba creando?

Buscando un poco más a fondo en el Log, este fue el resultado:

Blender3

Cuando el proceso BlenderPortable.exe estaba tratando de crear el directorio C:Program FilesBlenderPortable estaba obteniendo un ACCESS DENIED (Acceso Denegado), ¿Qué significaba? ¡No tenía permisos!

El Control de Cuentas de Usuario (UAC) en Windows 7, entre otras cosas, es capar cuando una aplicación está intentando escribir en directorios protegidos del sistema, y mediante un engaño, les hace creer que tienen permisos de escritura y que la aplicación no tenga ningun problema.

Como muy amablemente me hizo caer en cuenta Mark Russinovich sobre este problema, seguramente la característica llamada Deteccción Heurística (Que detecte que es un instalador), no estaba funcionando con esta aplicación en cuestión.

La solución

Por seguridad, no es prudente entonces permitirle a la aplicación que escriba a su antojo en el directorio, sin embargo, la solución consisitió en crear manualmente la carpeta BlenderPortable en el directorio C:Program Files, a continuación entrar a las Propiedades de dicha carpeta, pestaña de Seguridad, botón Editar y darle a los usuarios estándar permisos de escritura sobre la carpeta:

Blender4

Después de esto, procedí a ejecutar la aplicación nuevamente con doble clic, y para mi fortuna, ¡Caso solucionado! La aplicación instaló correctamente.

Espero que si tienen algun problema similar, se animen a intentar segurilo, se darán cuenta de que es sumamente grato y productivo lo que se puede aprender al lograr solucionarlo.

Saludos,

Checho

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *