Uma das ferramentas sysinternals , o Process Explorer, pode fazer isso.
Clique com o botão direito do mouse nos títulos das colunas e adicione a coluna "Integridade" ao display. Qualquer coisa que esteja sendo executada na integridade "Alta" ou acima ("Sistema" é maior) tem pelo menos alguns membros ou privilégios do grupo no nível de administrador.
Observe que o Process Explorer em si deve ser executado como Administrador para coletar informações completas.
Os níveis são, do mais confiável para o menos confiável:
- Sistema: conta LocalSystem; Serviço TrustedInstaller
- Alta: contas LocalService e NetworkServices; contas de nível "administrador" elevadas; contas de administrador se o UAC estiver desativado
- Medium-plus: aplicativos "Acessibilidade" (por exemplo, teclado na tela). Incomum.
- Médio: usuário autenticado normal; contas de nível "administrador" não elevadas; Explorer.exe; navegadores confiáveis (por exemplo, visualizando sites "confiáveis")
- Baixa: apenas membros de "Todos" e nada mais (por exemplo, não "Usuários"), IE não confiável
- Não confiável: logons anônomos
Se você clicar duas vezes em um processo e examinar a guia Segurança no diálogo Propriedades resultante, o Process Explorer mostrará o "token de acesso de segurança" do processo, que lista os grupos específicos aos quais o processo pertence e os privilégios que detém. (Observe que até mesmo um privilégio "desativado" ainda pode ser usado, o programa só precisa ativá-lo.)
Observar essa informação (o "token de acesso à segurança") não é realmente necessário para estabelecer que um processo está sendo executado "como administrador". Mas vale a pena comparar os tokens de acesso dos processos de nível "médio" e "alto" (ou outro) que estão sendo executados na mesma conta. Você notará que uma das associações "grupo" é, na verdade, para o nível de integridade. Isto não é claro como os outros "grupos" como Administradores, etc., que você pode estabelecer para uma conta. É determinado automaticamente quando os processos são criados.