Por que o erro “(nome do aplicativo) não pode ser aberto enquanto o File Explorer está sendo executado com privilégios de administrador” ocorre?

6

Estou recebendo esta mensagem quando tento iniciar um aplicativo Modern UI depois que o Explorer foi reiniciado com privilégios de administrador (por um programa de instalação).

Eu sei como consertar (apenas reinicie o explorador sem privilégios de administrador), mas estou curioso: Por que é proibido executar um aplicativo Metro com o Explorer sendo executado com privilégios de administrador? Não consigo pensar em nenhum bom motivo.

    
por Thomas Levesque 19.12.2012 / 01:04

1 resposta

5

Eu enfrentei esse erro há algum tempo e analisei um pouco, e eis o que entendi sobre a causa. Se qualquer especialista em programação do Windows vir algum erro notório, edite e melhore gentilmente.

O Windows 8 e a introdução da nova interface do usuário / aplicativos Moderna e Metro exigiram vários aprimoramentos no modelo de segurança do sistema operacional. O AppContainer é um novo método de isolamento aplicado aos aplicativos Metro, que, por padrão, os impede de ler e gravar na maior parte do sistema operacional, com exceção da pasta AppData do aplicativo.

As aplicações Metro podem fazer declarações em seu arquivo de manifesto de aplicativo sobre quais recursos do SO eles precisam acessar. Você pode ler um pouco mais sobre isso no Fornecendo um artigo confiável e confiável no estilo Metro no blog do Building Windows 8 .

O AppContainer é implementado por meio de um novo nível de integridade no Windows 8, suportado por algumas alterações adicionais no sistema operacional. O nível de integridade do AppContainer bloqueia o acesso de gravação e aos objetos marcados com um nível de integridade mais alto . Agora, o Windows Explorer normalmente é executado no modo de integridade média e o explorer.exe é o processo pai a partir do qual todos os outros processos iniciados pelo usuário herdam o token de acesso. Se o Explorer estiver sendo executado com privilégios de administrador, ou seja, com alto nível de integridade, todos os aplicativos Metro iniciados herdarão esse token de acesso administrativo, o que obviamente é um não-absoluto, pois violará o ambiente de área restrita fornecido pelo nível de integridade AppContainer. Daí a mensagem de erro lançada.

    
por 19.12.2012 / 01:37