Como identificar o processo encerrado do Windows se eu ainda tenho seu PID?

14

Histórico: No meio do meu trabalho, o contrato de licença para a instalação do "Microsoft Mouse and Keyboard Center" apareceu de repente. Gostaria de entender qual processo iniciou a instalação, mas, usando o Process Explorer, vi que acabou, só consegui encontrar seu PID (veja a captura de tela).

Questão:

Se você estiver usando o Process Explorer , talvez conheça a situação em que o processo pai do processo não existe mais e você só pode ver seu PID:

insira a descrição da imagem aqui

Existem alguns logs do Windows que contêm a associação do PID ao processo em execução, para que eu possa descobrir qual processo estava sendo executado no PID fornecido?

De preferência, estou interessado em cenários em que não esperava isso, então não usei o Process Monitor para capturar eventos no sistema.

miroxlav
fonte

Respostas:

11

Existem alguns logs do Windows que contêm associação do PID ao processo em execução

Por padrão, não existem esses logs. No entanto, você pode habilitar os eventos de rastreamento de processo no log de eventos de segurança do Windows.

Notas:


Como usar eventos de rastreamento de processo no log de segurança do Windows

No Windows 2003 / XP, você obtém esses eventos simplesmente ativando a política de auditoria Process Tracking.

No Windows 7/2008 +, é necessário ativar as subcategorias de processo de auditoria e, opcionalmente, as subcategorias de processo de auditoria, encontradas em Configuração avançada da diretiva de auditoria nos objetos de diretiva de grupo.

Esses eventos são incrivelmente valiosos porque fornecem uma trilha de auditoria abrangente sempre que qualquer executável no sistema é iniciado como um processo. Você pode até determinar por quanto tempo o processo foi executado, vinculando o evento de criação do processo ao evento de encerramento do processo usando o ID do processo encontrado nos dois eventos. Exemplos de ambos os eventos são mostrados abaixo.

insira a descrição da imagem aqui

Origem Como usar eventos de rastreamento de processo no log de segurança do Windows


Como habilitar a criação do processo de auditoria

  1. Execute gpedit.msc

  2. Selecione "Configurações do Windows"> "Configurações de segurança"> "Políticas locais"> "Política de auditoria"

    insira a descrição da imagem aqui

  3. Clique com o botão direito do mouse em "Rastrear processo de auditoria" e selecione "Propriedades"

  4. Marque "Sucesso" e clique em "OK"

    insira a descrição da imagem aqui


O que é o acompanhamento do processo de auditoria

Essa configuração de segurança determina se o sistema operacional audita eventos relacionados ao processo, como criação, término, manipulação de duplicação e acesso indireto a objetos.

Se essa configuração de política for definida, o administrador poderá especificar se deve auditar apenas sucessos, apenas falhas, sucessos e falhas ou não auditar esses eventos (por exemplo, nem sucessos nem falhas).

Se a auditoria de sucesso estiver ativada, uma entrada de auditoria será gerada toda vez que o sistema operacional executar uma dessas atividades relacionadas ao processo.

Se a auditoria de falhas estiver ativada, uma entrada de auditoria será gerada sempre que o SO falhar ao executar uma dessas atividades.

Padrão: sem auditoria

Importante: Para obter mais controle sobre as políticas de auditoria, use as configurações no nó Configuração avançada da política de auditoria. Para obter mais informações sobre a Configuração avançada da diretiva de auditoria, consulte http://go.microsoft.com/fwlink/?LinkId=140969 .

DavidPostill
fonte
Dave, talvez você possa usar a abordagem "arma mais rápida no oeste" . Enquanto você escrevia sua resposta longa e elaborada, executei as etapas da outra resposta (a mesma que você adicionou mais tarde) e estava prestes a aceitá-la. Então agora eu tenho um dilema que resposta para aceitar ... :)
miroxlav
1
Eu preferiria ter a melhor resposta do que a primeira resposta;) Se eles são a mesma coisa, então é um bônus. Eu o informei (em um comentário agora limpo) que estava preparando minha resposta. E estou usando uma conexão lenta à Internet amarrada através do meu celular: /
DavidPostill
Ah sim, você fez. OTOH, talvez não tenha vergonha de escrever "você pode ativar o log de auditoria nas políticas locais", poste e continue criando respostas com valor educacional. Às vezes, até uma pequena pista poderia me ajudar (o OP) do que esperar 60 minutos por uma ótima resposta :) Quero dizer, eu sei onde estão as políticas locais, eu só precisava de uma pista menor.
miroxlav
@DavidPostill: Seria bom se você pudesse mencionar quantas vezes esses registros são limpos (ou quantas vezes eles devem ser limpos manualmente), porque eu imagino que eles podem ficar muito tempo ...
user541686
1
@Mehrdad Os logs de eventos podem, se necessário, ser excluídos da linha de comando usando wevtutil. Isso é mais fácil do que usar a GUI do Visualizador de Eventos.
DavidPostill
3

A única maneira de ver é que você deve ter a auditoria ativada para rastrear a criação de processos.

No programa "Diretiva de segurança local" (digite secpol.mscna tela de execução, se estiver com problemas para encontrá-la), vá para "Configurações de segurança -> Diretivas locais -> Diretiva de auditoria" e ative o "Rastreamento do processo de auditoria" para "Sucesso".

insira a descrição da imagem aqui

Depois de fazer isso, vá para o visualizador de eventos e verifique o log de eventos "Secruity". Lá, você verá as entradas "Audit Success" para cada vez que um processo for iniciado ou encerrado.

Um processo foi encerrado.

Sujeito:
    ID de segurança: SYSTEM
    Nome da conta: SCOTT-PC $
    Domínio da conta: WORKGROUP
    ID de logon: 0x3E7

Processo de informação:
    ID do processo: 0x1338
    Nome do processo: C: \ Windows \ System32 \ consent.exe
    Status de saída: 0x0

Você precisará converter o ID do processo que você está procurando de decimal em hexadecimal (3336 passa a 0xD08). A maneira mais fácil de converter é a calculadora do Windows, vá para o modo "Programador", digite o número no modo "dec" e clique no modo "hex". O número exibido será convertido em hexadecimal para você.

Scott Chamberlain
fonte
Sim, este é o tipo de resposta que eu esperava. Simplesmente disse: habilite alguns registros e, assim, consiga verificar seus resultados.
precisa saber é o seguinte
0

Se isso é algo único e você não deseja sempre registrar seus processos, sugiro usar o Microsoft Process Monitor ( https://technet.microsoft.com/en-us/Library/bb896645.aspx ). Ele precisa ser executado antes que o popular seja gerado, mas mesmo depois que o processo pai estiver morto, ele terá capturado todas as informações que você estava procurando.

mrTomahawk
fonte