Muitos programas exigem elevação de privilégios (executar como administrador) mesmo se não for necessária nenhuma permissão específica para ser liberado (se esse for o seu caso, sugerimos que leia primeiro nosso post Aplicativo Microsoft para as aplicações que exigem ser executadas como administrador). Por outro lado, alguns programas não funcionam corretamente sem que o usuário seja um administrador do computador, esse POST se trata sobre como encontrar a permissão que o programa em específico está tentando ter acesso para que você (veja se é viável dar o acesso e) dê o acesso necessário.
O ideal é que você utilize um computador com o mínimo de programas instalados (um computador com uma instalação mínima) e o mínimo processos em execução (pare todos os serviços, processos e aplicativos possíveis). Com esse ambiente, faça logon com o usuário comum, baixe e execute o Process Monitor.
Mesmo com o mínimo em execução, será capturado muita informação desnecessária (caso não esteja capturando você pode clicar no ícone de uma lupa para capturar), então vamos precisar criar filtros (um ícone de funil ou com o botão direito sobre um item da lista gerada pelo programa). Algumas sugestões são (para você testar, nem todo caso são os mesmos filtros, deixaremos em cinza, também, o que você deve alterar conforme sua realidade):
- O método mais simples e rápido é sem dúvidas executar o process monitor por alguns segundos, para-lo, clicar com o botão direito sobre os resultados e ir excluindo da lista todos os eventos que tem certeza que não deseja investigar (por exemplo, o processo svchost.exe, ou todos os que tiveram status de SUCCESS).
- Se desejar preferir usar o filtro (ícone do funil), use da seguinte forma:
- Se você quer retirar alguns resultados que o Process Monitor está capturando, de programas que não te interessam (por exemplo, vamos retirar o svchost.exe): Use Process Name, is, svchost.exe then Exclude.
- Se você quer filtrar apenas os erros: Use Result, is, SUCCESS then Exclude, assim excluiremos o que funcionou.
- Se você quer listar apenas um programa (se tem certeza que o executável não chama nenhuma dll ou outro executável, mas dificilmente isso ocorre): Use Process Name, is not, programa.exe then Exclude.
Agora execute o programa que você quer analisar e, quando for o momento em que esse programa apresenta o erro, inicie a coleta no Process Monitor (com os filtros que você configurou, para diminuir o relatório), faça a rotina que não funciona como deveria e acompanhe (no Process Monitor) onde está o erro, corrija o necessário, feche tudo e tente novamente até que o programa funcione corretamente.
Fontes/Referências
NVLAN – Aplicativo Microsoft para as aplicações que exigem ser executadas como administrador
https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
Mais Informações
Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.
Entre em contato conosco pelo e-mail equipe@nvlan.com.br.