¿Cómo identificar el proceso de Windows terminado si todavía tengo su PID?

14

Antecedentes: En medio de mi trabajo, apareció de repente un acuerdo de licencia para instalar el "Centro de mouse y teclado de Microsoft". Me gustaría entender qué proceso lanzó la configuración, pero al usar Process Explorer, vi que desapareció, solo pude encontrar su PID (ver captura de pantalla).

Pregunta:

Si está utilizando Process Explorer , quizás conozca la situación en la que el proceso padre del proceso ya no existe y solo puede ver su PID:

ingrese la descripción de la imagen aquí

¿Hay algunos registros de Windows que contengan la asociación de PID con el proceso en ejecución para que pueda averiguar qué proceso se estaba ejecutando con un PID dado?

Preferiblemente estoy interesado en escenarios, donde no esperaba esto, así que no usé Process Monitor para capturar eventos en el sistema.

miroxlav
fuente

Respuestas:

11

¿Hay algunos registros de Windows que contengan asociación de PID al proceso en ejecución?

Por defecto no hay tales registros. Sin embargo, puede habilitar los eventos de seguimiento de procesos en el registro de eventos de seguridad de Windows.

Notas:


Cómo usar eventos de seguimiento de procesos en el registro de seguridad de Windows

En Windows 2003 / XP, obtiene estos eventos simplemente habilitando la política de auditoría de Seguimiento de procesos.

En Windows 7/2008 +, debe habilitar la creación del proceso de auditoría y, opcionalmente, las subcategorías de terminación del proceso de auditoría que encontrará en Configuración avanzada de la política de auditoría en los objetos de la política de grupo.

Estos eventos son increíblemente valiosos porque brindan una pista de auditoría exhaustiva de cada vez que se inicia un ejecutable en el sistema como un proceso. Incluso puede determinar cuánto tiempo se ejecutó el proceso al vincular el evento de creación del proceso con el evento de finalización del proceso utilizando la ID de proceso que se encuentra en ambos eventos. A continuación se muestran ejemplos de ambos eventos.

ingrese la descripción de la imagen aquí

Fuente Cómo utilizar los eventos de seguimiento de procesos en el registro de seguridad de Windows


Cómo habilitar la creación de procesos de auditoría

  1. Ejecute gpedit.msc

  2. Seleccione "Configuración de Windows"> "Configuración de seguridad"> "Políticas locales"> "Política de auditoría"

    ingrese la descripción de la imagen aquí

  3. Haga clic derecho en "Seguimiento del proceso de auditoría" y seleccione "Propiedades"

  4. Marque "Éxito" y haga clic en "Aceptar"

    ingrese la descripción de la imagen aquí


¿Qué es el seguimiento del proceso de auditoría?

Esta configuración de seguridad determina si el sistema operativo audita los eventos relacionados con el proceso, como la creación del proceso, la finalización del proceso, la duplicación del identificador y el acceso indirecto a objetos.

Si se define esta configuración de política, el administrador puede especificar si auditar solo los éxitos, solo los fracasos, tanto los éxitos como los fracasos, o no auditar estos eventos (es decir, ni los éxitos ni los fracasos).

Si la auditoría de éxito está habilitada, se genera una entrada de auditoría cada vez que el sistema operativo realiza una de estas actividades relacionadas con el proceso.

Si la auditoría de fallas está habilitada, se genera una entrada de auditoría cada vez que el sistema operativo no puede realizar una de estas actividades.

Valor predeterminado: sin auditoría

Importante: Para tener más control sobre las políticas de auditoría, use la configuración en el nodo Configuración avanzada de políticas de auditoría. Para obtener más información sobre la configuración avanzada de la política de auditoría, consulte http://go.microsoft.com/fwlink/?LinkId=140969 .

DavidPostill
fuente
Dave, tal vez podrías usar el enfoque de "arma más rápida en el oeste" . Mientras escribía su respuesta larga y elaborada, realicé pasos en la otra respuesta (la misma que agregó más adelante) y estaba a punto de aceptarla. Así que ahora tengo un dilema que responde a aceptar ... :)
miroxlav
1
Prefiero tener la mejor respuesta que la primera respuesta;) Si son lo mismo, entonces es una ventaja. Le informé (en un comentario ahora limpio) que estaba preparando mi respuesta. Y estoy usando una conexión lenta a Internet a través de mi teléfono móvil: /
DavidPostill
Oh si, lo hiciste. OTOH, tal vez no sea tímido para escribir "puede habilitar el registro de auditoría en las políticas locales", publicar y continuar creando respuestas con valor educativo. A veces, incluso una pequeña pista podría ayudarme (el OP) mejor que esperar 60 minutos para obtener una gran respuesta :) Quiero decir, sé dónde están las políticas locales, solo necesitaba una pista menor.
miroxlav
@DavidPostill: Sería bueno si pudieras mencionar con qué frecuencia se limpian estos registros (o con qué frecuencia deberían limpiarse manualmente), porque imagino que pueden
alargarse
1
@Mehrdad Los registros de eventos pueden, si es necesario, eliminarse de la línea de comandos mediante wevtutil. Eso es más fácil que usar la GUI del Visor de eventos.
DavidPostill
3

La única forma de ver es que debe tener la auditoría habilitada para rastrear la creación de procesos.

Desde el programa "Política de seguridad local" (escriba secpol.mscdesde la pantalla de ejecución si tiene problemas para encontrarlo) vaya a "Configuración de seguridad -> Políticas locales -> Política de auditoría" y luego habilite el "Seguimiento del proceso de auditoría" para "Éxito".

ingrese la descripción de la imagen aquí

Una vez que lo haga, vaya al visor de eventos y verifique el registro de eventos "Seguridad", allí verá las entradas de "Auditoría correcta" por cada vez que se inicia o finaliza un proceso.

Un proceso ha salido.

Tema:
    ID de seguridad: SYSTEM
    Nombre de cuenta: SCOTT-PC $
    Dominio de cuenta: GRUPO DE TRABAJO
    ID de inicio de sesión: 0x3E7

Procesar informacion:
    ID de proceso: 0x1338
    Nombre del proceso: C: \ Windows \ System32 \ consent.exe
    Estado de salida: 0x0

Deberá convertir la ID de proceso que está buscando de decimal a hexadecimal (3336 se convierte en 0xD08). La forma más fácil de convertir es abrir la calculadora de Windows, ir al modo "Programador", ingresar el número en modo "dec", luego hacer clic en modo "hexadecimal". El número que se muestra se convertirá en hexadecimal para usted.

Scott Chamberlain
fuente
Sí, este es el tipo de respuesta que esperaba. Simplemente dicho: habilite un poco de registro y así podrá verificar sus resultados.
miroxlav
0

Si esto es algo único y no desea estar siempre registrando sus procesos, sugeriría usar Microsoft Process Monitor ( https://technet.microsoft.com/en-us/Library/bb896645.aspx ). Debe ejecutarse antes de que se genere el popular, pero incluso después de que el proceso principal haya finalizado, habrá capturado toda la información que estaba buscando.

mrTomahawk
fuente