{"id":457,"date":"2010-01-12T13:04:03","date_gmt":"2010-01-12T16:04:03","guid":{"rendered":"http:\/\/ryan.com.br\/blogs\/seven\/?p=457"},"modified":"2010-02-07T01:10:50","modified_gmt":"2010-02-07T04:10:50","slug":"virtualizacao-sistema-de-arquivos-registro","status":"publish","type":"post","link":"http:\/\/ryan.com.br\/blogs\/seven\/2010\/01\/virtualizacao-sistema-de-arquivos-registro\/","title":{"rendered":"Virtualiza\u00e7\u00e3o do sistema de arquivos e Registro."},"content":{"rendered":"<p>No geral, \u00e9 uma provid\u00eancia \u00f3tima. Mas pode deixar um power user arrancando os cabelos.<\/p>\n<p>Se um programa n\u00e3o foi marcado pelo seu desenvolvedor como compat\u00edvel com o Windows Vista, \u00e9 automaticamente considerado &#8220;legacy&#8221;. Quando um programa &#8220;legacy&#8221; sem privil\u00e9gio de administrador tenta escrever em diret\u00f3rios ou chaves do Registro restritas, o Vista\/Seven redireciona automaticamente:<\/p>\n<p><strong>Opera\u00e7\u00f5es no sistema de arquivos:<\/strong><\/p>\n<p>Armazenadas em: <em><a href=\"http:\/\/jefferson-ryan.blogspot.com\/2009\/04\/variaveis-de-ambiente-que-vou-usar-com.html\">%appdata%<\/a>\\Local\\VirtualStore\\<\/em><\/p>\n<p>Em pastas que tem uma c\u00f3pia virtualizada aparece um bot\u00e3o no Explorer que leva at\u00e9 \u00e0 c\u00f3pia:<\/p>\n<p><img id=\"img-457-ad6aa78cb0\" data-post-id=\"457\" loading=\"lazy\" src=\"http:\/\/ryan.com.br\/blogs\/seven\/imagens\/seven_explorer_CompatibilityFiles_75.jpg\" alt=\"\" width=\"567\" height=\"251\" \/><\/p>\n<p><strong>Opera\u00e7\u00f5es no Registro:<\/strong><\/p>\n<p>Armazenadas em: <em>%appdata%\\Local\\Microsoft\\Windows\\<strong>UsrClass.dat<\/strong><\/em><\/p>\n<p>(UsrClass.dat \u00e9 um hive e <a href=\"http:\/\/jefferson-ryan.blogspot.com\/2009\/05\/como-editar-offline-o-registro-do.html\">pode ser editado offline<\/a>)<\/p>\n<p>A virtualiza\u00e7\u00e3o \u00e9 \u00f3tima no sentido de n\u00e3o quebrar os programas &#8220;legacy&#8221; no Vista\/Seven, mas no m\u00ednimo adiciona uma camada de complexidade indesej\u00e1vel. Por exemplo:<\/p>\n<ul>\n<li>Agora existir\u00e3o pelo menos uma c\u00f3pia dos arquivos para cada usu\u00e1rio no PC. Quando deveria existir uma \u00fanica c\u00f3pia. E a aplica\u00e7\u00e3o n\u00e3o sabe disso;<\/li>\n<li>Programas que aplicam patches, se rodando sem privil\u00e9gios, podem acabar colocando a c\u00f3pia corrigida em uma pasta virtualizada (n\u00e3o testado). E voc\u00ea vai insistir em rodar o execut\u00e1vel original sem saber disso;<\/li>\n<li>pode ser ruim rodar um mesmo programa uma hora com privil\u00e9gios e outra hora sem.\u00a0 &#8211; Quando um &#8220;legacy&#8221; roda sem privil\u00e9gios e precisa atualizar um arquivo, o Windows virtualiza o arquivo protegido e \u00e9 essa c\u00f3pia que o legacy atualiza. Mas se depois voc\u00ea rodar o mesmo programa com privil\u00e9gios, o Windows n\u00e3o vai buscar a c\u00f3pia mais recente virtualizada e vai ler\/escrever na c\u00f3pia antiga protegida.<\/li>\n<li>Pelo motivo acima, se voc\u00ea tem dois &#8220;legacy&#8221; que trabalham com os mesmos arquivos protegidos (podem at\u00e9 ser dois execut\u00e1veis de um mesmo programa), os dois precisam trabalhar no mesmo n\u00edvel de privil\u00e9gio ou um n\u00e3o enxergar\u00e1 as modifica\u00e7\u00f5es feitas pelo outro.<\/li>\n<\/ul>\n<p>Voc\u00ea pode conferir outros problemas e poss\u00edveis solu\u00e7\u00f5es <a href=\"http:\/\/support.microsoft.com\/kb\/927387\/en\" target=\"_blank\">neste artigo<\/a> da Knowledge Base. E para complicar, o Internet Explorer faz <strong>sua pr\u00f3pria virtualiza\u00e7\u00e3o<\/strong>, que pode pegar at\u00e9 mesmo mestres como Mark Russinovich <a href=\"http:\/\/blogs.technet.com\/markrussinovich\/archive\/2009\/02\/03\/3174194.aspx\">de surpresa<\/a>.<\/p>\n<p>Ao primeiro sinal de &#8220;lapsos de mem\u00f3ria&#8221; por parte de um programa no Seven, eu recomendo que voc\u00ea d\u00ea uma olhada nos arquivos existentes em <a href=\"http:\/\/jefferson-ryan.blogspot.com\/2009\/04\/variaveis-de-ambiente-que-vou-usar-com.html\">%appdata%<\/a>\\Local\\VirtualStore\\. L\u00e1 voc\u00ea pode encontrar um arquivo que esclare\u00e7a o problema. Mas voc\u00ea n\u00e3o vai ter essa sorte se esse programa estiver virtualizando o Registro, porque hives n\u00e3o s\u00e3o assim t\u00e3o f\u00e1ceis de inspecionar.<\/p>\n<p>Ent\u00e3o, se voc\u00ea preza os cabelos que ainda tem, pode ser desej\u00e1vel <strong>na medida do poss\u00edvel<\/strong> n\u00e3o usar aplica\u00e7\u00f5es que virtualizam.<\/p>\n<p>\u00c9 f\u00e1cil saber que aplica\u00e7\u00f5es est\u00e3o usando virtualiza\u00e7\u00e3o.\u00a0 Basta adicionar a coluna &#8220;virtualized&#8221; no Process Explorer: <em>View -&gt; Select Columns -&gt; Process Image -&gt;Virtualized<\/em><\/p>\n<p><img id=\"img-457-c864655e5e\" data-post-id=\"457\" loading=\"lazy\" class=\"aligncenter\" src=\"http:\/\/ryan.com.br\/blogs\/seven\/imagens\/seven_ProcessExplorer_virtualization_75.jpg\" alt=\"\" width=\"470\" height=\"394\" \/><\/p>\n<p>Para quem n\u00e3o est\u00e1 familizarizado com o Process Explorer: os destaques em roxo e amarelo s\u00e3o do pr\u00f3prio programa (criptografia e .NET, respectivamente). Ignore-os.<\/p>\n<p><strong>Eu insisto:<\/strong> a virtuliza\u00e7\u00e3o \u00e9 um recurso <strong>muito bom<\/strong> do Vista\/Seven que no geral te poupa de muito aborrecimento. Mas voc\u00ea precisa estar ciente de como a coisa funciona.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>No geral, \u00e9 uma provid\u00eancia \u00f3tima. Mas pode deixar um power user arrancando os cabelos. Se um programa n\u00e3o foi marcado pelo seu desenvolvedor como compat\u00edvel com o Windows Vista, \u00e9 automaticamente considerado &#8220;legacy&#8221;. Quando um programa &#8220;legacy&#8221; sem privil\u00e9gio de administrador tenta escrever em diret\u00f3rios ou chaves do Registro restritas, o Vista\/Seven redireciona automaticamente: [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"http:\/\/ryan.com.br\/blogs\/seven\/wp-json\/wp\/v2\/posts\/457"}],"collection":[{"href":"http:\/\/ryan.com.br\/blogs\/seven\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/ryan.com.br\/blogs\/seven\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/ryan.com.br\/blogs\/seven\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/ryan.com.br\/blogs\/seven\/wp-json\/wp\/v2\/comments?post=457"}],"version-history":[{"count":14,"href":"http:\/\/ryan.com.br\/blogs\/seven\/wp-json\/wp\/v2\/posts\/457\/revisions"}],"predecessor-version":[{"id":491,"href":"http:\/\/ryan.com.br\/blogs\/seven\/wp-json\/wp\/v2\/posts\/457\/revisions\/491"}],"wp:attachment":[{"href":"http:\/\/ryan.com.br\/blogs\/seven\/wp-json\/wp\/v2\/media?parent=457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/ryan.com.br\/blogs\/seven\/wp-json\/wp\/v2\/categories?post=457"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/ryan.com.br\/blogs\/seven\/wp-json\/wp\/v2\/tags?post=457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}