domingo, 27 de abril de 2014

Redirecionamento de arquivo do UAC

O (finado?) programa GPS da Secretaria de Receita Previdenciária (SRP) — que nem existe mais —, como outros softwares mal programados, grava seus dados num arquivo chamado GPSData.xml na pasta de instalação do programa. Até o Windows XP, era a Casa da Mãe Joana: esse tipo de coisa era permitida e funcionava com os usuários rodando com privilégio administrativo. A partir do Vista, felizmente o cinto foi apertado com o UAC. Aplicações não podem mais escrever na pasta "Arquivos de Programas". Para tentar manter programas bugados funcionando, o Windows virtualiza acessos de escrita às pastas %ProgramFiles% (C:\Program Files [1]), %ProgramData% (C:\ProgramData) e %SystemRoot% (C:\Windows) para %LocalAppData%\VirtualStore (é criada uma hierarquia de pastas igual ao local de origem).

Então, lá vai a dica. No XP, para restaurar um backup, copiávamos o arquivo GPSData.xml de volta à pasta do programa. No Vista ou superior, isso até funciona, porém, por baixo dos panos, o sistema de virtualização do UAC fará uma cópia do mesmo para a pasta virtual e dali para diante o programa só verá a cópia. O arquivo presente em "Arquivos de Programas" ficará desatualizado. Cuidado, portanto, ao fazer futuros backups.

Apesar de não ter importância aqui, o Vista+ faz a mesma coisa com o Registro. Várias chaves de HKEY_LOCAL_MACHINE\Software são virtualizadas para HKEY_CURRENT_USER\Software\Classes\VirtualStore. Tudo em nome da compatibilidade com POG!

A virtualização é desativada se:
- O programa for 64-bit. Espera-se que programas 64-bit sigam boas práticas.
- For executado como Administrador, pois não faz sentido nesse caso.
- Tiver em seu manifesto a configuração requestedExecutionLevel, que diz para o Windows que o binário é compatível com o UAC.

É possível ver se está habilitada para cada processo através da coluna "Virtualização do Controle de Conta de Usuário (UAC)" no Gerenciador de Tarefas.

Instalador da versão 1.4.1.0: 3_090507-173754-136.zip
Fonte: Guia da Previdência Social (GPS) – Eletrônica (RGM Consultoria em RH)

[1] "Arquivos de Programas" é um ponto de junção do NTFS para a pasta "Program Files" do Vista em diante.

Nenhum comentário:

Postar um comentário