Um dos fatores mais críticos na troca de sistemas operacionais em meio corporativo é a compatibilidade dos softwares utilizados no ambiente com o novo sistema operacional – e o Windows Vista com tantas mudanças, não é exceção a regra. Muito se falou, na época do lançamento em especial, sobre ferramentas como o Windows Vista Upgrade Advisor, que informa quais softwares deixam de funcionar no novo sistema operacional, mas o buraco infelizmente é mais embaixo. Apesar do WVUA detectar um número grande problemas, ele não detecta, por exemplo, problemas em aplicações web utilizadas pela própria companhia, pelo simples e lógico fato de que tais aplicações não se encontram literalmente “instaladas”.
O UAC é realmente uma revolução na segurança do usuário comum, mas isso não vem de graça. Além do custo da paciência do usuário, sistemas poderiam facilmente deixar de funcionar graças ao mal uso de ferramentas. Para amenizar o problema, o UAC possui um conceito chamado “Virtualização”, que deve ser aproveitado apenas para migração de plataforma (porque mal usado, pode ser utilizado como uma maneira comodista de se “resolver” problemas).
A Virtualização surge para resolver problemas de permissões. Por exemplo, imagine uma aplicação que grava informações na pasta “Arquivos de Programas” (já discutimos alguns problemas dessa prática no post anterior). Apesar do Windows XP e anteriores considerar isso uma prática “comum”, certamente o Windows Vista irá reclamar e sua aplicação passará a não funcionar corretamente (ao menos se fosse executada em contexto administrativo). Apesar de sabermos que isso é um problema, em certos casos o custo para corrigir a aplicação pode ser elevado, ou até mesmo impossível (caso a aplicação já venha de um fornecedor “fechada”, exemplo, uma aplicação da Adobe) e aí a virtualização entra em ação. Basicamente o UAC irá indicar para o Windows Vista uma pasta especifica e virtualizará todo o acesso ao diretório protegido para a pasta virtualizada. Além disso, o Windows Vista mantém todas as pastas “virtuais” em um mesmo diretório, facilitando perceber quais sistemas estão necessitando da virtualização e gerência dos arquivos virtualizados. Uma outra feature importante é que o diretório virtualizado é localizado dentro do perfil do usuário, fazendo com que arquivos temporários ou de contexto de um usuário específicos, não fiquem acessíveis a outro usuário (um dos problemas de se criar arquivos dentro de pastas como “Arquivos de Programas”).
O diretório onde as pastas virtualizadas se encontra é C:\Users\username\AppData\Local\VirtualStore

É possível verificar se um processo está ou não sendo virtualizado através do Gerenciador de Tarefas, como demonstrado na figura abaixo.

Vale lembrar que os seguintes processos nunca são virtualizados:
- Processos 64-bit
- Processos Administrativos
- Serviços
- Aplicações com manifesto exigindo “requestedExecutionLevel” (Veremos o que é a questão do manifesto em uma próxima conversA).
É possível desabilitar a virtualização de um processo em específico através do Gerenciador de Tarefas, apenas desmarcando a virtualização, clicando com o botão direito no processo virtualizado, porém o processo poderá não funcionar corretamente caso ele não tenha sido adaptado para funcionar sem a virtualização.
Também é possível desabilitar a virtualização através do Snap-In do Local Security Policy. Veja como habilitar o Snap-In do Local Security Policy aqui.