No geral, é uma providência ótima. Mas pode deixar um power user arrancando os cabelos.
Se um programa não foi marcado pelo seu desenvolvedor como compatível com o Windows Vista, é automaticamente considerado “legacy”. Quando um programa “legacy” sem privilégio de administrador tenta escrever em diretórios ou chaves do Registro restritas, o Vista/Seven redireciona automaticamente:
Operações no sistema de arquivos:
Armazenadas em: %appdata%\Local\VirtualStore\
Em pastas que tem uma cópia virtualizada aparece um botão no Explorer que leva até à cópia:
Operações no Registro:
Armazenadas em: %appdata%\Local\Microsoft\Windows\UsrClass.dat
(UsrClass.dat é um hive e pode ser editado offline)
A virtualização é ótima no sentido de não quebrar os programas “legacy” no Vista/Seven, mas no mínimo adiciona uma camada de complexidade indesejável. Por exemplo:
- Agora existirão pelo menos uma cópia dos arquivos para cada usuário no PC. Quando deveria existir uma única cópia. E a aplicação não sabe disso;
- Programas que aplicam patches, se rodando sem privilégios, podem acabar colocando a cópia corrigida em uma pasta virtualizada (não testado). E você vai insistir em rodar o executável original sem saber disso;
- pode ser ruim rodar um mesmo programa uma hora com privilégios e outra hora sem. – Quando um “legacy” roda sem privilégios e precisa atualizar um arquivo, o Windows virtualiza o arquivo protegido e é essa cópia que o legacy atualiza. Mas se depois você rodar o mesmo programa com privilégios, o Windows não vai buscar a cópia mais recente virtualizada e vai ler/escrever na cópia antiga protegida.
- Pelo motivo acima, se você tem dois “legacy” que trabalham com os mesmos arquivos protegidos (podem até ser dois executáveis de um mesmo programa), os dois precisam trabalhar no mesmo nível de privilégio ou um não enxergará as modificações feitas pelo outro.
Você pode conferir outros problemas e possíveis soluções neste artigo da Knowledge Base. E para complicar, o Internet Explorer faz sua própria virtualização, que pode pegar até mesmo mestres como Mark Russinovich de surpresa.
Ao primeiro sinal de “lapsos de memória” por parte de um programa no Seven, eu recomendo que você dê uma olhada nos arquivos existentes em %appdata%\Local\VirtualStore\. Lá você pode encontrar um arquivo que esclareça o problema. Mas você não vai ter essa sorte se esse programa estiver virtualizando o Registro, porque hives não são assim tão fáceis de inspecionar.
Então, se você preza os cabelos que ainda tem, pode ser desejável na medida do possível não usar aplicações que virtualizam.
É fácil saber que aplicações estão usando virtualização. Basta adicionar a coluna “virtualized” no Process Explorer: View -> Select Columns -> Process Image ->Virtualized
Para quem não está familizarizado com o Process Explorer: os destaques em roxo e amarelo são do próprio programa (criptografia e .NET, respectivamente). Ignore-os.
Eu insisto: a virtulização é um recurso muito bom do Vista/Seven que no geral te poupa de muito aborrecimento. Mas você precisa estar ciente de como a coisa funciona.
Últimos comentários