Adquirir direitos de administrador sem alternar usuário?

0

No Windows 7 (Ultimate de 64 bits no meu caso), existe alguma maneira de obter apenas os direitos de uma conta de administrador, em vez de efetivamente "executar" o aplicativo como <insert administrator name here> ?

Estou tendo um dilema com o MPC-HC (Media Player Classic - Cinema em casa), onde é necessário ter privilégios de administrador para associar arquivos com isso. Quando eu insiro as credenciais para uma conta de administrador, essencialmente, ele atualiza todo o ambiente, de modo que as configurações são aplicadas somente à conta que eu forneci, e não à conta padrão na qual estou logado. Para ser claro, primeiro executo o aplicativo sob o meu padrão, faça login e, em seguida, clique no botão "Executar como administrador" disponível no programa.

Eu sei que tive o mesmo tipo de problema com alguns applets de controle padrão do Windows, então não acho que seja um problema com o MPC-HC em si. Não me lembro exatamente o que era agora, mas tenho certeza disso.

A única solução que consegui criar até agora é adicionar temporariamente minha conta ao grupo Administradores e removê-la rapidamente depois de concluída. Mas isso parece um risco de segurança, e também é bastante inconveniente, então estou realmente esperando que haja uma solução melhor ...

    
por user966939 15.08.2016 / 05:31

1 resposta

0

As pessoas têm a tendência de pensar que o UAC do Windows se comporta da mesma maneira que o sudo em um ambiente Unix / Linux, em que sua conta de usuário normalmente sem privilégios está executando explicitamente uma ação privilegiada. A maneira como a Microsoft projetou o UAC encoraja você a pensar dessa maneira, mas, infelizmente, esse não é o caso. Quando o UAC solicita credenciais, ele está fazendo um Run As... implícito e executa uma alternância de contexto de usuário completa com as credenciais fornecidas. A conta de usuário fazendo a coisa privilegiada não é mais aquela que invocou o prompt do UAC.

No seu caso, você diz que está tentando associar tipos de arquivo ao MPC-HC. Isso é curioso para mim, porque usuários normais e sem privilégios têm o direito de associar tipos de arquivos a um aplicativo. Você poderia associar livremente arquivos .doc para abrir no bloco de notas, se quisesse, e você não teria suas credenciais desafiadas a fazê-lo. Isso ocorre porque o Windows mantém uma lista de associações de arquivos por usuário, e cada usuário tem permissão para modificar seu próprio ambiente de forma que, na máxima extensão possível, isso não afete outros usuários do sistema.

Veja como isso funciona:

Normalmente, o Windows armazena associações de arquivos no registro em HKEY_LOCAL_MACHINE\Software\Classes . Isso está na seção do registro do sistema. As associações lá são globais e afetam todos os usuários da máquina. Você precisa de permissões elevadas para modificar a maioria dos dados.

Se um usuário substituir uma associação (ou criar uma nova), o Windows a registrará em HKEY_CURRENT_USER\Software\Classes . Esta é a seção de registro do usuário. Cada usuário tem sua própria seção HKCU e tem permissões para modificar livremente sua própria cópia.

O Windows combina as duas seções em uma única árvore virtual em HKEY_CLASSES_ROOT , que existe apenas na memória e não é uma seção real do Registro. Quando um conflito surge (ou seja, a mesma associação é registrada em ambos os locais), a cópia do usuário tem precedência.

Agora, quando você tenta alterar associações de arquivos e o MPC-HC solicita credenciais, isso indica que uma de duas coisas está acontecendo:

Ou

  • O MPC-HC está fazendo alterações na chave \ Software \ Classes em HKEY_LOCAL_MACHINE e precisa de credenciais elevadas para fazer isso.

Ou

  • O MPC-HC está pedindo erroneamente as credenciais porque acha que ele precisa, e o desenvolvedor não entendeu como o UAC funciona. Você ficaria surpreso com a frequência com que pessoas supostamente "inteligentes" entendem isso errado.

No primeiro caso, o MPC-HC está atualizando com êxito a associação de arquivos na seção HKLM, mas sua conta de usuário a substituiu na seção HKCU. Isso explicaria por que não aparece para fazer a diferença. A correção é excluir essa associação do registro. OBSERVAÇÃO: Se você iniciar regedit , receberá um prompt do UAC. Não use as credenciais da sua conta de administrador. Se você fizer isso, o grupo HKEY_CURRENT_USERS que você vê será o da conta do administrador, não o seu. Use suas próprias credenciais da conta não privilegiada. Eles funcionarão .

No segundo caso, o MPC-HC provavelmente está apenas atualizando a associação em HKEY_CLASSES_ROOT e é codificado para solicitar a elevação porque 99% do tempo, ele redireciona para HKLM (que precisa de elevação) em vez de %código%. Se este for o caso, tente fornecer suas próprias credenciais no prompt do UAC e veja se ele leva você a algum lugar.

    
por 22.08.2016 / 19:19