Como verificar se um programa está configurado para ser executado como administrador?

Como verificar se um programa está configurado para ser executado como administrador?

Parece que há muitos tópicos perguntando como verificar se um programa está sendo executado como administrador ou como configurar um programa para ser executado como administrador no Windows, mas minha pergunta é: Como posso verificar se um programa está configurado para ser executado como administrador sem está realmente funcionando? Eu preciso ser capaz de verificar isso de forma automática também.

Eu sei que posso simplesmente clicar com o botão direito em um exe e verificar se um programa está configurado para ser executado como administrador, mas preciso de uma maneira de verificar isso automaticamente, já que um aplicativo que estou executando precisa saber se um determinado .exe está configurado para ser executado como admin ou não e tome uma decisão com base nessa propriedade.

Responder1

Existem dois locais na interface padrão do Windows para saber se um executável ou atalho está configurado para ser executado como administrador.

Abra as propriedades do arquivo/atalho e então...

  1. Paraatalhosapenas clique no botão Avançado e veja o sinalizador Executar como Administrador.
  2. Para ambosarquivos executáveiseatalhosabra a guia Compatibilidade.

As configurações nesses dois locais têm o mesmo efeito, mas não são iguais.

A primeira é uma propriedade do atalho e está vinculada ao atalho. Você pode testar isso definindo a propriedade em um atalho em um local de rede e executando o atalho em um computador diferente. Você será solicitado a informar a elevação antes que o atalho seja executado.

A segunda (Compatibilidade) é armazenada no registro do computador em que está configurada e as configurações feitas em um computador não serão automaticamente visíveis em outro computador sem algum outro mecanismo para propagar essas configurações. Eles são armazenados em dois locais no registro para aplicativos por usuário ou para todos os usuários:

Todos os usuários:HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

Por usuário:HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

Eles podem ser lidos programaticamente e em scripts usando os componentes padrão prontos para registro disponíveis no idioma preferido.

informação relacionada