Deshablitar UAC para ciertas aplicaciones por Francisco Nogal

Dos de las principales quejas con las que se está encontrando Windows Vista es la incompatibilidad de ciertas aplicaciones con el Sistema Operativo y la continua solicitud de elevación privilegios que tanto entorpece el trabajo diario según los críticos….


Debido a esa supuesta incompatibilidad, muchas aplicaciones necesitan ser ejecutadas con privilegios de administrador para que funcionen sin problemas, con el “problema” de que cada vez que se ejecuta nos solicitara elevación de privilegios y probablemente el usuario acabara deshabilitando el UAC.


Sin embargo, hay una forma de poder, a la vez, habilitar que el programa se ejecute con privilegios administrativos y que no nos pregunte por le elevación de privilegios.


Para el ejemplo estamos utilizando la aplicación CPU-Z, y lo primero que vamos a hacer es poner que nuestra aplicación se ejecute siempre con privilegios administrativos. Para ello, pulsamos con el BOTON DERECHO encima del ejecutable de la aplicación, seleccionamos PROPIEDADES y en la ventana que nos sale nos vamos a la pestaña COMPATIBILIDAD y ahí marcamos la opción de EJECUTAR ESTE PROGRAMA COMO ADMINISTRADOR tal y como se muestra en la imagen


clip_image001[1]


A partir de este momento, la aplicación se ejecutara con permisos de administrador, saltando siempre el prompt del UAC, pero lo que queremos es que esa solicitud no nos vuelva a saltar. Para ello, nos tendremos que descargar e instalar Microsoft Application Compatibility Toolkit .


Una vez instalado, nos vamos a ejecutar el ACT (Application Compatibility Toolkit) y ejecutamos el COMPATIBILITY ADMINISTRATOR en modo administrador como aparece en la imagen.


clip_image002[1]


Una vez abierta, necesitaremos crear un nuevo parche para aplicación, para ello pinchamos sobre NEW DATABASE con el botón derecho, y seleccionamos CREATE NEW > APPLICATION FIX.


clip_image004[1]


Nos aparecerá una nueva ventana donde meteremos la información de la aplicación sobre la que crearemos el parche, introduciendo en la que se encuentra el ejecutable y pulsando después en SIGUIENTE.


En el siguiente paso es en el que deberemos marcar lo más importante de todo este tutorial, y es seleccionar MODO DE COMPATIBILIDAD run as invoker como se muestra en la imagen.


clip_image005[1]


En los dos siguientes pasos no hacemos ningún cambio y pulsamos en FINALIZAR. Ahora tendremos que guardar la base de datos creada pinchando en FILE> SAVE AS y guardándola con el nombre de la aplicación que estamos utilizando.


Ahora nos toca aplicar el parche que hemos creado, para ello lo primero que tenemos que hacer es ejecutar el SIMBOLO DE SISTEMA como ADMINISTRADOR. Una vez abierto el símbolo de sistema ejecutaremos el comando sdbinst [ruta]nombre_de_archivo.sdb siendo [ruta] el lugar donde hemos guardado el archivo con extensión SDB. (Para desinstalar el parche es con el mismo comando pero añadiéndole al final el parámetro –u)


clip_image007[1]


Pulsamos ENTER , os saldrá que la instalación de la aplicación se ha completado correctamente y a partir de ese momento ya no os volverá a aparecer el UAC cuando ejecutéis esa aplicación.

Programas predefinidos en Windows Vista

A veces, cuando instalamos algún programa en nuestro equipo, este intenta tomar control de todo, asociándose a todos y cada uno de los formatos que es capaz de abrir. Esto puede llegar a ser muy molesto, pues quizás nosotros prefiramos otro software mas ligero o con mayores opciones.


Para controlar esto en Windows Vista se han dispuesto una serie de menus que nos facilitan la labor de controlar que programa deseamos usar en cada caso, que programa va a ser el programa por defecto para abrir un tipo de fichero y si vamos a permitir que algún programa abra un fichero con otro programa que no sea el que nosotros hemos dicho.


Desde el Panel de Control podemos acceder a la zona de programas y una vez ahí a Programas por defecto. 



Con las 4 opciones que nos presenta podremos controlar distintos aspectos:




  • Set your default programs
    Desde aquí vamos a poder definir un programa como el de por defecto para todas las acciones que pueda realizar o definir una a una las asociaciones de este.


  • Associate a file type or protocol with a program
    Esta es la version contraria de la opcion anterior: tenemos una lista con todos las extensiones y protocolos registrados en nuestro ordenador y podremos seleccionar el programa con el que deseamos abrir estos ficheros.


  • Change AutoPlay settings
    ¿Qué ocurre cuando metemos un CD de audio en nuestro equipo? ¿Qué pasa si le dimos a que lo reprodujese automáticamente pero ahora no queremos? Pues desde esta ventana podemos cambiar el comportamiento de nuestro equipo frente a la inserción de distintos componentes multimedia.


  • Set program access and computer defaults
    La unica opcion de este menu que requiere de privilegios administrativos porque nos va a permitir controlar el acceso de los usuarios del equipo a los programas por defecto del ordenador.  Existen tres perfiles: Microsoft Windows, No Microsoft y Personalizado. Cada uno de los dos primeros define una lista de programas por defecto que intenta ajustarse al nombre de su perfil, aunque, evidentemente, si no disponemos de un producto No-Microsoft que sustituya al que viene con Windows, se usara este.
    La tercera opción merece especial atención, pues nos permite el seleccionar el programa que queramos y, además, limitar el acceso a otros programas del mismo tipo que tengamos instalados.

Y con esto terminamos el repaso a la manera de elegir con que programa queremos abrir cada tipo de fichero. ¡Un saludo!

Windows DVD Maker

Ahora que estamos (o estábamos) de vacaciones lo habitual es torturar a nuestras visitas con fotos y videos de nuestras vacaciones, intentando darles envidia por lo maravillosamente bien que nos lo hemos pasado.


Pero todos sabemos que no todo es el contenido, sino que también la forma es importante, y aquí es donde entra Windows DVD Maker, un producto presente en las versiones Home Premium y Ultimate que nos va a permitir crear DVDs interactivos desde Windows Vista. Imaginemos que hemos estado de vacaciones en sitios de ensueño y vamos a mostrar paso a paso como montar nuestro DVD para dejar a las visitas con la boca abierta.


Al abrir la aplicación se nos presenta una pantalla de bienvenida que obviaremos, pasando a la ventana de inclusión de ficheros multimedia, tales como imágenes, videos o audios. En este caso vamos a añadir distinto contenido que simulara ser nuestro material multimedia vacacional:




  • Tres videos de muestra de Windows Vista


  • 15 imágenes de muestra

 


En esta ventana podemos seleccionar el orden en el que queremos que aparezcan los elementos que hemos añadido, para que se ajusten correctamente a la cronología de nuestras vacaciones y pasaremos a la creación de un menú acorde a nuestros gustos.


En la siguiente ventana aparece una pre visualización de cómo quedaría nuestro menú y algunas opciones para adaptarlo. Se nos ofrece a la derecha de la ventana una lista de distintas variantes de estilos. Cada uno de ellos tiene sus peculiaridades y deberemos de elegir aquel que se ajuste mejor a nuestros gustos, aunque posteriormente podremos personalizarlo en cierta medida. En mi caso he optado por el estilo Bandwith, que mezcla  dos imágenes (o videos).


Además de esto podremos personalizar algunos detalles más de nuestro DVD desde los menús disponibles en la zona superior. Estas opciones son:




  • Preview
    Podremos previsualizar en cualquier momento la apariencia que está adquiriendo nuestro menú desde esta opción.


  • Menu text
    Aquí cambiaremos la fuente, tamaño, texto y título del disco. En este caso vamos a crear un disco llamado “Vacaciones falsas” con unas notas adjuntas.


  • Customize menú
    Aunque Windows Vista nos propone un estilo de menú por defecto quizás queramos cambiarlo por algo más acorde con nuestras vacaciones (o cualquier otro motivo por el cual queramos crear un DVD). Para ello en este menú tendremos la posibilidad de modificar la imagen de fondo y frente de nuestro menú (algunos temas solo permiten imagen de frente) y añadirle sonido. Si no seleccionamos aquí nada, Windows DVD Maker cogerá contenido del propio DVD para añadirlo.
    Además podremos cambiar la apariencia de los recuadros que presentan la pre visualización de las escenas que contiene el DVD.


  • Slide show
    Para terminar, esta opción se nos activara si hemos agregado una carpeta de imágenes para mostrar. Desde ella podremos añadirle una lista de audios a nuestras imágenes, definir el tiempo durante el cual se muestran (o adaptarlo a la duración del audio seleccionado), elegir el tipo de transición entre instantáneas o activar el efecto de zoom de las imágenes.

Con esto tendremos nuestro DVD terminado. Haremos clic en Preview (navegar hacia el enlace para ver un video del resultado final) para observar cómo queda y navegar por los menús y estaremos listos para grabarlo y martirizar a las visitas de una manera mucho más elegante y tecnológica!

Idiomas adicionales en Windows Vista por Francisco Nogal

En ocasiones puede ocurrir que una misma empresa tenga sucursales repartidas a lo largo del mundo dificultando por ello que una  única instalación de un sistema operativo no sea valida debido a la problemática del idioma de la interfaz.


Con Windows Vista esto se simplifica muchísimo, ya que nos ofrece dos formas diferentes de poder agregar diferentes idiomas a nuestra instalación.


La primera seria a través de de paquetes de interfaz de idiomas o paquetes LIP, estos son paquetes gratuitos descargables desde http://go.microsoft.com/fwlink/?LinkId=66923 y que nos cambiaran de forma parcial el idioma de la interfaz.


La otra opción sería la que nosotros vamos a utilizar y que nos permitiría a través de paquetes MUI el cambio de la totalidad de la traducción de la interfaz de usuario, con lo que añadiéndole todos los paquetes MUI que necesitemos solo será necesario que creemos una imagen de equipo para todas nuestras sucursales aunque estas estén fuera de España. Estos paquetes MUI sólo están disponibles para las versiones Enterprise y Ultimate de Vista, y serán descargables a través de Windows Update. En nuestro caso esa será la solución que elegiremos y sobre la que vamos a trabajar. Lo primero será descargarnos el paquete de idiomas que necesitemos:


 


Como podéis ver en esta imagen el archivo seleccionado en un paquete instalador de idiomas, en mi caso es el italiano, y lo que haremos a continuación es instalarlo haciendo doble click y empezará la instalación tal y como aparece en la siguiente imagen.



 


Otra posible forma de instalación seria a través del PANEL DE CONTROL >> CONFIGURACION REGIONAL Y DE IDIOMA >> TECLADOS E IDIOMAS >>  INSTALAR O DESINSTALAR IDIOMAS, y clickeando ahí nos dará la opción de agregar uno nuevo.


Una vez terminada la instalación, para cambiar el idioma es tan fácil como ir a la misma ruta que os acabo de poner en el párrafo anterior, en la que ahora nos aparece un desplegable en el que podremos seleccionar el idioma que acabamos de instalar.



 


Seleccionamos italiano, aplicamos y nos pedirá que cerremos sesión, y una vez iniciada la sesión ya tendremos la interfaz de usuario en italiano


 

En el caso de que queramos desinstalar uno de los idiomas que tengamos instalado, volveremos a ir al Panel de Control (o panello di controllo si lo tenemos en italiano :P) a la parte de CONFIGURACION REGIONAL Y DE IDIOMA y allí lo desinstalamos,  teniendo en cuenta, eso sí, que no podremos desinstalar  ni el idioma activo ni el idioma original, es decir, en nuestro caso deberíamos volver la interfaz a español y solo podríamos desinstalar el italiano.

Configuración de preferencias en Windows Vista (II de II) por Josh Sáenz G.

Continuando con la configuración de preferencias, ahora os quiero hablar de algunas opciones avanzadas que podemos configurar.


Comienzo con la lista de variables de sistema que podemos presentar en pantalla y utilizar en aquellas preferencias que requieran de configuraciones vinculadas a la carpeta del sistema, el escritorio del usuario actual, etc. Todos sabemos que la variable %WindowsDir% corresponde a la carpeta de instalación de Windows, mientras que %SystemDir% corresponde a la carpeta System32 o que %DesktopDir% es la carpeta de escritorio del usuario actual, sin embargo, es probable que no conozcamos todas las variables de sistema disponibles.


Por ejemplo, si estamos creando una preferencia para agregar una carpeta personal en el escritorio de cada usuario, pero no conocemos la variable que debemos utilizar, entonces en las propiedades generales, seleccionamos el campo de ruta (path) y pulsamos la tecla F3 para mostrar la lista de variables disponibles.





 


En este caso seleccionamos DesktopDir y la variable se inserta en la ruta de la carpeta que queremos crear. Ahora solo nos falta poner el nombre a la carpeta como tal.


Otras características avanzadas interesantes son las llamadas opciones comunes. Todas las opciones de preferencias, tanto aquellas de configuración de Windows como las relacionadas con el Panel de Control, tienen una etiqueta denominada Common cuando abrimos las propiedades. Con las opciones comunes podemos controlar el procesamiento de la preferencia, así como establecer filtros basados en características del equipo o pertenencia a grupos.



Las primeras opciones que vemos son:




  • Parar el procesamiento si ocurre un error: Por defecto, si ocurre un error durante el procesamiento de un elemento, se siguen procesando los siguientes elementos configurados en la misma extensión. Si queremos que esto no ocurra y que se interrumpa el procesamiento, entonces debemos habilitar esta opción. Otras GPOs no se ven afectadas, por lo tanto continuarán su procesamiento normal.


  • Ejecutar en el contexto de seguridad del usuario que haya iniciado sesión (Opción para políticas de usuario): Las preferencias se ejecutan por defecto bajo Local System, por lo tanto si queremos que se pueda acceder a los recursos del usuario, como impresoras, discos de red, etc. es necesario habilitar esta opción.


  • Eliminar el elemento cuando no se aplique mas: Al contrario que sucede con las directivas de seguridad, el procesamiento de las preferencias no elimina la configuración cuando se elimina la GPO asociada. Esta opción cambia este comportamiento y permite que se eliminen las configuraciones de preferencias cuando se elimina la GPO.


  • Aplicar una sola vez y no volver a aplicar: Las Preferencias se procesan junto con el procesamiento de las GPOs en intervalos regulares, por lo tanto, si un usuario ha cambiado una configuración, durante el siguiente procesamiento, ésta configuración volverá al estado que se indique en la preferencia en la GPO. Si queremos que la configuración solo se aplique una vez y que los usuarios puedan a partir de ahí cambiar dicha configuración, entonces habilitaremos esta opción.


  • Filtrado a nivel de elemento: El filtrado determina a que usuarios y equipos se les va a aplicar las preferencias configuradas.

Con el botón Targeting, configuraremos los filtros de aplicación. Lo primero que observamos cuando accedemos es una pantalla que nos va a permitir editar los filtros. Se pueden aplicar más de un filtro a cada elemento de configuración y se pueden seleccionar operaciones lógicas para aplicar al filtro.


Podemos configurar un conjunto de preferencias pero solo aplicarlas a un subconjunto de equipos o usuarios de nuestra organización, por ejemplo, equipos portátiles, equipos con una versión de sistema operativo determinada, o equipos que cumplan con una serie de requisitos de software instalado antes de aplicar la preferencia. La lista de elementos configurables es muy amplia y nos aporta muchísima flexibilidad para prácticamente cualquier entorno o escenario corporativo.



Por ejemplo, si quisiéramos que una configuración de preferencia, solo se aplique a aquellos equipos con Windows Vista instalado y con al menos 2 GB de RAM y 5 GB de espacio en el disco del sistema, lo haríamos de la siguiente forma:




  • Seleccionamos New Item > Operating System con las opciones de edición predeterminadas.


  • Seleccionamos New Item > RAM y escribimos 2048 en el campo de texto


  • Seleccionamos New Item > Disk Space y escribimos 5 en el espacio libre y seleccionamos System en la letra de la unidad.

Con el botón Item Options, podemos cambiar un AND por un OR o un IS por un ISNOT, alterando así las condiciones de aplicación. En nuestro caso, lo dejamos con las opciones AND e IS en los tres elementos y obtenemos un resultado como el siguiente:



Una vez finalizada la configuración, pulsamos en OK para cerrar la pantalla de edición.


Como podéis observar, la configuración de las preferencias es extremadamente sencilla, pero muy potente y flexible. En definitiva, disponemos de una nueva herramienta centralizada para configurar los sistemas de forma rápida y sencilla, con la lógica y los filtros necesarios para establecer configuraciones granulares en entornos corporativos.

Prepara tu línea de comandos

Hola a tod@s!


Si mis cálculos no me fallan, llevamos más de 1 año escribiendo sobre Windows Vista, y se han hablado de muchísimas tecnologías y novedades que nos trae este sistema operativo. Repasando los post que hemos estado escribiendo en estos últimos meses me he dado cuenta de que no se ha escrito nada de uno de los protagonistas de Windows. La línea de comandos. Así que le voy a dedicar un buen número de Posts a la línea de comandos, ya que Windows es administrable tanto por entorno gráfico como por línea de comandos, e inclusive, en ciertos escenarios, sólo es administrable bajo esto último. Así que es hora de darle un rinconcito a la línea de comandos, o comúnmente llamada Shell aquí en el blog.


Y qué mejor presentación de la línea de comandos que preparando el entorno para futuros posts? Pues vamos a ello!


Una de las cosas que se echan de menos en Windows es poder abrir una Shell de comandos directamente en una carpeta. Existe una PowerToy que realiza este trabajo, la llamada CmdHere.exe.


http://www.microsoft.com/spain/windowsxp/downloads/powertoys/xppowertoys.mspx


Nosotros vamos a realizar lo mismo que una powertoy, pero a nivel de registro, es decir,  lo vamos a realizar modificando opciones e ingresando claves en el registro de Windows. Así podréis ver lo fácil que es modificar comportamientos de Windows a través de modificar estructuras de registro.


Primero añadiremos una entrada para la Shell de Windows (CMD.EXE) y para la PowerShell.


Lo primero que  tenemos que realizar es un cuadro sobre lo que queremos que realice Windows Vista. Así que propondremos lo siguiente:




  •       Nombre que voy a utilizar


  •       Qué quiero lanzar


  •       Cómo lo quiero lanzar


  •       La aplicación admite variables?

Y las respuestas que obtengo son las siguientes:




  •       Nombre: ShellSilverhack


  •       Cmd.exe


  •       Lo quiero lanzar sobre un determinado directorio


  •       La aplicación lo permite

Lo siguiente que tenemos que hacer es ver en qué parte del registro de Windows podemos realizar estos cambios de comportamiento. El sitio más indicado para hacerlo, es añadir una clave a la parte del registro encargada de mantener actualizada los objetos y aplicaciones del sistema operativo. En nuestro caso, y sabiendo cómo funciona el registro de Windows, el encargado de realizar ésta y otras muchas tareas es la clave siguiente:


HKEY_CLASSES_ROOT


Esta clave, es la encargada de mantener lo siguiente:




  •       Asociaciones de archivos


  •       Referenciar objetos del propio sistema


  •       Iconos asociados


  •       Etc….

Este directorio no es un directorio común, como sí lo puede ser HKEY_LOCAL_MACHINE por ejemplo. Este directorio es un acceso directo de la clave siguiente:


HKEY_LOCAL_MACHINESOFTWAREClasses


Si modificamos algo en una de ellas, la otra automáticamente aplicará el cambio.


Como vamos a aplicarlo sobre un directorio específico, procederemos a introducir la nueva clave dentro del directorio siguiente:


HKEY_CLASSES_ROOTFolder


Y dentro de este directorio, el comportamiento que vamos a modificar es el de la entrada al directorio, es decir, vamos a decirle a Windows Vista que queremos entrar dentro de ese directorio de otra forma. Para ello, modificaremos el comportamiento de la clave siguiente:


HKEY_CLASSES_ROOTFoldershell


Dentro de esa clave, cuelgan dos más. Una de ellas es para explorar el documento, y la otra es para abrir el documento.



Para modificar el comportamiento nos crearemos una nueva clave, que será el nombre que nosotros queramos. Para ello, pulsaremos con el botón derecho del ratón en el directorio shell y crearemos una nueva clave.


Una vez creado el directorio con un nombre asociado a la tarea, lo siguiente es dotar a ese directorio de una acción. Para ello, crearemos otro directorio (botón derecho sobre el directorio nuevo y pulsar nueva clave) justamente dentro del siguiente, es decir, un subdirectorio. Este subdirectorio llevará el nombre de command y no se puede modificar ni llevar otro nombre diferente.


Una vez creado este directorio command lo siguiente a realizar es escribir la acción que va a tomar esa pestaña.


Para la shell por defecto (cmd.exe)


cmd.exe cd “%1” (los espacios son importantes)


Para PowerShell«C:WINDOWSsystem32windowspowershellv1.0powershell.exe» -NoExit cd «%1»

En PowerShell difiere el comando ya que tenemos que decirle que no termine el proceso cuando lo iniciemos. Es por ello que necesitamos el parámetro NoExit.


Una vez hayamos terminado de escribir las claves necesarias tanto para el intérprete de comandos como para la PowerShell, podremos ver el progreso pinchando en un directorio cualquiera con el botón derecho del ratón.



 


Si necesitáis algo más rápido, y sin necesidad de instalar nada, podéis copiar estas entradas de registro y guardarlas como InstalaCMD.reg. Doble clic sobre el archivo, y estarán instaladas.


——————————————-No copies esta línea—————————————————

Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOTFoldershellShellSilverhack][HKEY_CLASSES_ROOTFoldershellPowerShellSilverhack] [HKEY_CLASSES_ROOTFoldershellShellSilverhackcommand]@=»cmd.exe /K cd «%1″»[HKEY_CLASSES_ROOTFoldershellPowerShellSilverhackcommand]@=»»C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe» -NoExit cd «%1″» ———————————————-No copies esta línea———————————————————–

Otra curiosidad, es la de poder ejecutar un intérprete de comandos o una Shell de PowerShell con privilegios administrativos, y que también podamos iniciarlas desde el botón derecho del ratón, ya que puede haber ocasiones en las que tengamos que utilizar una Shell con dichos privilegios.


Para ello, el registro de Windows provee un nombre de clave que podemos utilizar llamado runas.



Por diseño de Windows, sólo permite un directorio runas por cada clave, así que no podremos tener los dos intérpretes como administrador, de momento….


No os perdáis la segunda parte!


Hasta pronto!


 

Virtualización de procesos II: Virtualización del Sistema de Archivos en Windows Vista

Dado que el mes pasado ha sido el primer mes que hemos impartido los HANDS ON LAB de virtualización en Windows Server 2008 después de la salida oficial de Hyper-V, me he animado a escribir la segunda parte del artículo sobre “virtualización de procesos” que ya publicamos hace unas semanas en este blog y que podéis ver aquí:


 

Virtualización de procesos I: Virtualización del registro en Windows Vista 

En esta ocasión abordaremos la virtualización de procesos ante los errores de escritura en el sistema de ficheros y ahondaremos más en esta tecnología para poder controlar que aplicaciones son virtualizadas y cuales no.

 

Haciendo un breve repaso, recordemos que Windows Vista es capaz de virtualizar aplicaciones ante errores de escritura tanto en el registro de Windows como en el sistema de ficheros, siempre y cuando tengamos el “Control de Cuentas de Usuario” (UAC), habilitado, ofreciéndonos la ventaja de conseguir que una mayor cantidad de aplicaciones, sobre todo aplicaciones antiguas y heredadas, sean capaces de funcionar sin requerir privilegios administrativos (recomiendo que releáis la primera parte del artículo para que no perdáis el hilo).

 

La virtualización del sistema de ficheros es similar a la virtualización del registro: cuando una aplicación “virtualizada” intenta escribir en una ubicación donde por defecto no tiene permisos de escritura (algo que generalmente ocurre por una mala programación o por una incompatibilidad cuando la aplicación procede de sistemas operativos anteriores), dicha escritura es redirigida a una ubicación donde el usuario si dispone de los permisos apropiados, “engañando” de esta manera al proceso afectado que no sabe que en realidad está escribiendo en otro sitio. De esta manera evitamos la necesidad de usar “privilegios administrativos” para ejecutar ciertas aplicaciones que por regla general no ofrecen ventaja administrativa alguna.

 

Hecho este repaso, vamos a realizar un ejemplo de virtualización con Windows Vista, similar al que ya realizamos en el anterior post sobre esta tecnología, pero cambiando el registro de Windows por el Sistema de ficheros.


 


 

Ejemplo de virtualización 

La aplicación elegida para la práctica en este caso es el CMD, que deberemos ejecutar mediante un usuario estándar sin privilegios administrativos, o bien (para los que entendáis como funciona esto del UAC), con un usuario administrativo pero ejecutando el CMD mediante el “token” de usuario corriente.

 

Una vez estemos en el CMD podemos probar a intentar crear un fichero o carpeta en alguna de las ubicaciones tradicionales donde por defecto un usuario corriente no tiene privilegios de escritura como %programfiles% o %Windir%. El mensaje que nos devolverá el sistema, como es lógico, es de “Acceso Denegado”.

 

 

Para evitar dicho “Acceso Denegado” vamos a virtualizar el CMD. Para ello nos dirigimos al “Administrador de Tareas” y pinchamos en la pestaña “Procesos”, abrimos el menú contextual sobre el proceso “cmd.exe”, seleccionamos “virtualización” y pulsamos en “Aceptar” sobre la advertencia que nos aparece de que la aplicación podría tener u comportamiento inesperado (precisamente eso es lo que buscamos).


 



 


 


Una vez que ya tenemos el CMD en estado “virtualizado”, regresamos a él e intentamos realizar un “mkdir” sobre cualquiera de las ubicaciones donde anteriormente nos devolvía acceso denegado ¡¡Se nos crea la carpeta sin devolvernos ningún error de acceso!! Y si jugueteamos un poquito más podemos comprobar que al hacer un “dir /ad” nos aparece listada la carpeta e incluso podemos crear ficheros en ella, sinembargo si navegamos a dicha ubicación con el explorador o abriendo un nuevo proceso cmd, la carpeta no aparece por ningún sitio. La carpeta solo es visible para procesos virtualizados, por ejemplo, si queréis ver la carpeta desde otro proceso cmd deberéis virtualizar también dicho proceso.

 

Ahora surge la pregunta clave: si la carpeta no existe realmente en la ubicación donde realizamos el mkdir ¿dónde se crea realmente? Pues en aquel lugar donde un usuario corriente tenga permisos de escritura, es decir, en el perfil del usuario, concretamente en “%userprofile%AppdataLocalVirtualStore”.


 

 

Después de divertirnos virtualizando procesos, si lo deseamos, podemos echar un vistazo al “visor de eventos” para comprobar la información que se ha registrado ahí referente a la virtualización.

 

 


 

Ahondando en la virtualización: 

Ya hemos visto como se puede virtualizar manualmente un proceso, y conocemos los aspectos más significativos de este sistema, pero nos falta dar respuesta a otras preguntas interesantes como:

 

¿Es posible auditar los intentos de escritura que son virtualizados?


¿Cómo sabe Windows Vista que aplicaciones debe virtualizar?


¿Cómo puedo hacer para que mis aplicaciones sean o no sean virtualizadas?

 

En esta parte del post iremos dando respuesta a estás preguntas a modo de FAQ y nos sumergiremos un poquito más en Virtualización y el UAC.

 

Vamos con la primera pregunta:


 

¿Es posible auditar los intentos de escritura que son virtualizados? 

Si, es posible auditar los intentos de escritura virtualizados, tanto en Windows Server 2008 como en Windows Vista.

 

Windows trata las escrituras virtualizadas como procesos de escritura “correctos” de cara a los registros de auditoría (no los trata como errores de escritura), de manera que habilitando la típica “auditoria de acceso a objetos” en las políticas, y la “auditoria correcta de escrituras” en la pestaña de seguridad de la carpeta correspondiente esteramos automáticamente auditando también los procesos de virtualización acontecidos sobre dicha carpeta.


 

¿Cómo sabe Windows Vista que aplicaciones debe virtualizar?  

Antes que nada debemos recordar que el propósito de la virtualización de procesos es que aplicaciones heredadas, no diseñadas para trabajar con Windows Vista, puedan funcionar sin ningún tipo de problema con bajos privilegios.

 

Las aplicaciones que se diseñen para Windows Vista o Windows Server 2008, deberían cumplir las especificaciones de este sistema operativo y ejecutarse sin problemas como un usuario  corriente avisando a este en el caso de que la aplicación requiera de privilegios administrativos. Por tanto las aplicaciones programadas para Windows Vista no deberían requerir virtualización.

 

Teniendo esto en cuenta vamos a comprobar las condiciones que deben cumplirse para que Windows determine que una aplicación “NO” necesite virtualizarse:

 

  • Aplicaciones de 64bits. Se considera que son aplicaciones modernas y por lo tanto deberían estar preparadas para ejecutarse correctamente según los requisitos de Windows Vista y Windows Server 2008.
 

  • Servicios de Windows. Aunque estos se ejecuten con una cuenta de usuario estándar.
 

  • Aplicaciones con una “solicitud de nivel de ejecución” declarada en su “manifiesto”. La “solicitud de nivel de ejecución” es un nuevo elemento de Windows Vista y Windows Server 2008 que permite a Programadores y Administradores personalizar la manera en que sus aplicaciones interactúan con el UAC. Se considera que todas las aplicaciones adaptadas a Windows Vista deberían incluir este elemento en sus manifiestos internos. Cuando una aplicación tiene configurada una “Solicitud de nivel de ejecución” en su manifiesto, se considera como “no heredada” y no se virtualizará.

 

¿Cómo puedo hacer para que mis aplicaciones sean o no sean virtualizadas? 

Según las condiciones que hemos visto en el punto anterior, todas las aplicaciones son automáticamente virtualizadas menos en casos específicos como que la aplicación sea de 64 bits o que en su manifiesto interno aparezca información para interactuar con el UAC. No obstante puede que nos interese virtualizar aplicaciones que no son virtualizas automáticamente o no virtualizar aquellas otras que se virtualizan de manera automática.

 

Si NO deseamos que nuestras aplicaciones sean virtualizadas de manera automática tenemos tres opciones:

 

  • Deshabilitar el UAC
 

  • Configurar la política de grupo oportuna, como ya mencione en el primer post sobre este asunto.
 

  • Agregar en el manifiesto de la aplicación una entrada de “solicitud de nivel de ejecución”  (Ver Caso Practico)

 


Caso Práctico: Impidiendo la virtualización de aplicaciones heredadas mediante la edición de su manifiesto:


Como acabamos de ver, la manera más interesante para impedir la virtualización de una aplicación es modificar su manifiesto, pero ¿que es un manifiesto?


 


Un manifiesto es un pequeño fichero XML que describe aspectos de una aplicación, como la versión, el fabricante, las dll requeridas, las dependencias etc. Dicho manifiesto  puede ser interno (integrado en la propia aplicación) o externo (en un fichero con el mismo nombre pero con la extensión .manifest).


 


En su origen los manifiestos nacieron como una manera sencilla y eficaz de solucionar el conocido como “Infierno de las dlls”, al hacer la propia aplicación referencia a la versión de DLL que deseaba utilizar. Con el tiempo, los manifiestos han sido utilizado para diversos propósitos incluida la interacción de las aplicaciones con el UAC en el caso de Windows Vista.


 


Bueno, ahora que sabemos lo que es un manifiesto, solo nos queda editarlos, pero ¿como podemos editar un manifiesto de una aplicación? Pues con una herramienta versatil, sencilla y gratuita como XNResourceEditor 


 


Lo único que teneis que hacer es ejecutar la aplicación, pulsar en «OPEN» y seleccionar el .exe que deseeis editar.


 



 


Aunque nos aparecen varias carpetas de recursos, la que nos interesa en nuestro caso es la etiquetada como «XP Theme Manifest» que nos mostrará el manifiesto de la aplicación seleccionada, si este existe.


 


Si comparamos los manifiestos de una aplicación basada en XP (imagen superior) con otra basada en Windows Vista (imagen inferior) podremos ver una diferencia interesante ¿la encuentras?.


 



 


En efecto, la principal diferencia es algo asi como:


 


<trustInfo xmlns=»urn:schemas-microsoft-com:asm.v3″>
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel
                level=»asInvoker»
                uiAccess=»false»
            />
        </requestedPrivileges>
    </security>
</trustInfo>


 


Esta parte del manifiesto indica el modo en que la aplicación desea relacionarse con UAC, la conocida como “solicitud de nivel de ejecución” que ya indiqué con anterioridad.


 


Ya podemos ir uniendo hilos…


..si deseamos que nuestra aplicación de XP no se virtualice automaticamente, lo unico que tenemos que hacer es agregarle una «Solicitud de nivel de ejecución» similar a la de arriba.


 


Vamos a probarlo en la práctica. En mi caso voy a utilizar una herramienta tradicional de Windows XP que MUCHOS de nosotros echamos de menos en Windows Vista: «el PinBall»


 


Lo unico que tenemos que hacer es copiar la carpeta %programfiles%Windows NTPinball de un equipo con WindowsXP a otro con Windows Vista, ejecutar el juego y comprobar si Windows Vista lo virtualiza o no de manera automática desde el «Administrador de tarteas»


 



 


En la imagen superior podemos ver claramente que PINBALL.exe aparece como Virtualizado (la columna «Virtualización» no aparece de manera automática y es necesario agregarla desde «Ver>Seleccionar Columnas»)


 


Vamos a impedir que el PINBALL se virtualice, para ello abrimos el fichero PINBALL.exe con la aplicación XNResourceEditor, vamos a «XP Theme Manifest» y bajo la etiqueta </dependency> pegamos la «Solicitud de nivel de ejecución» que deseemos (copiada de una aplicación de Windows Vista o de este mismo blog). Guardamos la aplicación en la carpeta del juego como PinBallNOVIRT.exe (XNResourceEditor no es capaz de sobreescribir el fichero desde el que esta leyendo por lo que debemos guardarlo con otro nombre) y lo ejecutamos.


 



 



 


¡¡¡FUNCIONA!!! Ya no aparece como virtualizado…


 


Para terminar, el último caso que puede interesarnos es virtualizar un determinado intento de escritura para una aplicación que no sea automáticamente virtualizada. Lógicamente la manera más sencilla de hacerlo sería modificar el manifiesto de la aplicación y eliminar la entrada de “solicitud de nivel de ejecución” para que la aplicación se considere como heredada, no obstante Microsoft nos ofrece una alternativa, más compleja, pero más profesional: “Application compatibility Toolkit 5.0” (ACT 5.0)

 

ACT5.0 está pensada para solucionar los problemas de compatibilidad que una aplicación puede presentar en Windows Vista. Es una herramienta ideada para que las empresas puedan identificar y distribuir soluciones a problemas de compatibilidad conocidos de manera corporativa y en forma de pequeños parches. Podéis descargar esta herramienta gratuitamente desde el siguiente enlace:


 


http://www.microsoft.com/downloads/details.aspx?FamilyID=24da89e9-b581-47b0-b45e-492dd6da2971&displaylang=en

 

ACT5.0 no virtualiza las aplicaciones de la misma forma que hemos tratado en este post, pero si es capaz de “virtualizar” o “redirigir” determinadas escrituras para que una aplicación funcione con normalidad. No obstante ACT es una herramienta extensa, que dará para varios posts en este mismo Blog en un futuro, y esto ya me esta quedando demasiado largo (como de costumbre), de manera que con la mención a esta herramienta creo que puedo dar por finalizado este tema…

 

Como siempre, gracias por vuestro tiempo, y os animo a seguir cotilleando lo que hay “dentro” de vuestro Windows Vista, que no es poco.

  

Guía de Seguridad de Windows Vista


La guía de seguridad de Windows Vista es un recurso único para todo administrador o usuario avanzado que desee tener un entorno seguro. A día de hoy está disponible en Inglés la versión 1.2 y la puedes descargar del siguiente URL: Guía de Seguridad de Windows Vista


Aquí tienes una breve descripción de los temas tocados en las 100 páginas que conforman esta guía.


Capítulo 1: Implementar la línea base de seguridad


Este capítulo está dedicado a los conceptos clave de la fortificación de una plataforma Windows. En él se analiza cual es proceso de creación de la llamda línea base de seguridad, es decir, los principios comunes que deben aplicarse a máquinas en stand-alone o clientes en entornos corporativos. En él se introduce la herrmiaent GPOAccelerator, para la edición de políticas en clientes Windows Vista.


Capítulo 2: Defensa contra el Malware.


En este capítulo de la guía se analizan las tecnologías que Windows Vista ofrece para luchar contra la inclusión de software no deseado dentro de la plataforma. Así como se dan recomendaciones de uso del sistema, se estudia el funcionamiento del Userr Account Control, de Windows Defender, la configuración y uso de Windows Firewall, el Windows Security Center, como funciona la Malicious Software Removal Tool o como se configuran las Software Restriction Policies. Especial atención se presta en este capítulo a la fortificación de Internet Explorer 7, dónde se anliza el Modo Protegido, la configuración de componentes Activex mediante ActiveX Ipt-in, la protección Cross-Domain Scripting Attack, como funciona la Security Status Bar y el Filtro Anti-Phising, la gestión de Add-ons, y otras opciones de seguridad que acompañan a IE7 como Binary Behavior Security Restriction, Consistent MIME Handling, Local Machine Zone Lockdown Security, MIME Sniffing Safety Feature, MK Protocol Security Restriction, Network Protocol Lockdown, Object Caching Protection, Protection From Zone Elevation, Restrict ActiveX Install, Restrict File Download o Scripted Windows Security Restrictions.


Capítulo 3: Protección de datos sensibles.


Este capítulo se centra en la protección de datos mediante el uso de BitLocker Drive Encryption, EFS (Encrypting File System), el suo de los Rights Management Services y la configuración del control de dispositivos. Un capítulo dedicado a los algoritmos y herramientas de cifrado en Windows Vista.


Capítulo 4: Compatibilidad de aplicaciones


En esta parte de la guía se trata uno de los temas más calientes en el uso de Windows Vista. Está centrado en la compatibilidad de aplicaciones que no es completa, debido al cambio en la arquitectura, con sistemas operativos anteriores. En este apartado de la guía se ven las comprobaciones de compatibilidad que deben hacerse, las temas importantes a tener en cuenta y las herramientas y recursos disponibles para lograr la máxima compatibilidad de aplicaciones en una migración de sistema operativo.


Capítulo 5: Seguridad Especializada – Funcionalmente Limitado


El último capítulo está dedicado a la fortificación de sistemas en entornos limitados. Así se tratan temas como la restricción de servicios, el acceso a datos, el acceso restrigido de red, como fortificar las conexiones mediante el filtrado de red, y como implementar políticas de seguridad utilizando la herramienta GPOAccelerator Tool


Guía de Seguridad de Windows Vista