Como posso saber se um processo está sendo executado com permissões de administrador?

44

Estou usando o Windows Vista, com o UAC ativado. Eu instalei um aplicativo e o instalador exigiu privilégios de administrador. O instalador iniciou o aplicativo. Gostaria de saber se o aplicativo continua sendo executado com privilégios de administrador.

Eu tentei o Gerenciador de tarefas do Windows e o Process Explorer, e nenhum deles parece mostrar essas informações.

Tim
fonte
Para sistemas operacionais atualizados, consulte esta pergunta . A guia Detalhes do Gerenciador de Tarefas possui uma coluna Elevada opcional.
Hans Vonn

Respostas:

43

No Process Explorer , clique duas vezes no processo para abrir suas propriedades. Vá para a guia Segurança . Na lista de grupos, localize BUILTIN \ Administrators e veja o que diz na coluna Sinalizadores .

Negar = Não elevado (não administrador)

texto alternativo

Proprietário = Elevado (é administrador)

texto alternativo

Ryan Bolger
fonte
4
No meu sistema Windows 7, tive que executar o Process Explorer com permissões elevadas para poder ver certos detalhes (como as permissões de segurança) dos processos em execução com permissões de administrador. Ao executar o Process Explorer como um usuário comum, o conteúdo da guia Segurança estava em branco.
Anthony G - justice for Monica
Nada disso existe no Win10; use sysinternals (@Tim), adicione "nível de integridade" às ​​colunas dos processos.
precisa saber é o seguinte
1
O Win8 e versões superiores sempre tiveram uma coluna opcional no Gerenciador de Tarefas chamada Elevado que exibe sim ou não. Isso está na guia Detalhes, é claro.
Adam Caviness
39

No Process Explorer, você pode alterar as colunas exibidas e adicionar a coluna "Nível de integridade" na guia "Imagem do processo":

insira a descrição da imagem aqui

Aparentemente, esse é o termo técnico para o que é alterado quando você executa um processo com privilégios de administrador. Se você executar o Process Explorer como administrador, ele mostrará processos comuns como nível de integridade 'médio' e processos elevados como 'alto'.

Observe que, se você executar o Process Explorer como um usuário comum, ele mostrará processos que possuem privilégios de administrador com uma entrada em branco na coluna Nível de integridade.

Tim
fonte
Além disso, ao executar um programa específico como administrador e explorador de processos como usuário normal, o process explorer não exibirá o ícone verdadeiro do processo, mas um ícone em branco.
Nikos #
+ 1 para sua resposta
BattleTested
3

A atualização com os sistemas operacionais: Resource Monitor, que acredito estar incluída no Windows 7 e Windows 10 (não tenho certeza sobre o Vista), possui uma coluna 'Elevada' opcional na seção de lista de processos da guia CPU que parece ser bastante precisa.

stackuser83
fonte
0

Se você preferir usar ferramentas de linha de comando, o utilitário Accesschk do pacote MS Sysinternals pode ser usado para verificar se um processo está sendo executado com permissões de administrador.

Os seguintes sinalizadores são úteis para esse fim:

  • A -popção (processo) aceita o nome ou o PID de um processo em execução.

  • A -vopção (detalhada) imprime o nível de integridade do Windows

  • A -qopção (silencioso) impede que as informações da versão sejam impressas.

  • A -fopção (completa) também pode ser usada para fornecer ainda mais informações sobre os processos (detalhes do token de segurança de usuários, grupos e privilégios), mas esse nível de detalhes adicionais não é necessário para verificar se há privilégios elevados.

Exemplo

Liste os privilégios de todos os cmdprocessos em execução :

> accesschk.exe -vqp cmd

[5576] cmd.exe
  Medium Mandatory Level [No-Write-Up, No-Read-Up]
  RW ICS\Anthony
        PROCESS_ALL_ACCESS
  RW NT AUTHORITY\SYSTEM
        PROCESS_ALL_ACCESS
[8224] cmd.exe
  Medium Mandatory Level [No-Write-Up, No-Read-Up]
  RW ICS\Anthony
        PROCESS_ALL_ACCESS
  RW NT AUTHORITY\SYSTEM
        PROCESS_ALL_ACCESS
Error opening [6636] cmd.exe:
Access is denied.

Aqui, podemos ver que existem três cmdprocessos que iniciei. Os dois primeiros têm um nível obrigatório médio (integridade) e são mostrados como executando na minha conta de domínio, indicando que esses processos foram iniciados sem privilégios de administrador.

No entanto, o último processo (PID 6636) foi iniciado com permissões elevadas, para que meu comando não privilegiado não possa ler informações sobre esse processo. Executar com permissões elevadas accesschke especificar explicitamente seu PID imprime as seguintes informações:

> accesschk.exe -vqp 6636

[6636] cmd.exe
  High Mandatory Level [No-Write-Up, No-Read-Up]
  RW BUILTIN\Administrators
        PROCESS_ALL_ACCESS
  RW NT AUTHORITY\SYSTEM
        PROCESS_ALL_ACCESS

Agora podemos ver que o nível de integridade é alto e que esse processo está sendo executado Administratorsno grupo de segurança interno.

Anthony G - justiça para Monica
fonte