En una base de datos, puedo obtener una lista de todos los procesos actualmente en ejecución y el comando sql que los inició.
Me gustaría hacer algo similar en una ventana de Windows.
Puedo obtener la lista de procesos, pero no la línea de comando que los inició.
Mi pregunta es: dado un PID en Windows, ¿cómo encuentro la instrucción de línea de comando que lo ejecutó?
Suposiciones
- Windows 7 y servidores equivalentes
windows
windows-command-prompt
pid
Hawkeye
fuente
fuente

| FLal final del comando. Eso expande toda la línea de comando para mí. También podría querer jugar con| Select -ExpandProperty CommandLinePuede usar el subsistema WMI, usando WMIC.EXE para obtener esta información. Suponiendo un PID de 600:
También puede buscar el nombre u otra característica del proceso. Use este comando para enumerar todos los atributos:
fuente
processalias en lugar depath Win32_Process; por ejemplo,wmic.exe process getLas otras respuestas son ciertamente buenas opciones que le servirán en un sistema automatizado debido a su naturaleza de línea de comando (y veo en la etiqueta que eso es lo que quería). Por supuesto, algunas personas pueden querer explorar este tipo de información con una GUI, así que aquí hay una alternativa en ese sentido.
Process Explorer es una herramienta Sysinternals mantenida por Microsoft. Puede mostrar la línea de comando del proceso en el cuadro de diálogo de propiedades del proceso, así como el padre que lo inició, aunque el nombre de ese proceso ya no esté disponible. Aquí está el diálogo de propiedades del proceso:
Si desea una pista de auditoría más detallada de cuándo se inició un proceso y en qué condiciones, puede recurrir a otra herramienta de Sysinternals llamada Monitor de proceso. Aquí puede filtrar los eventos de "Proceso iniciado", conocer el entorno en el que se inició el proceso y ver qué otros eventos ocurrieron en ese momento. Es un programa bastante poderoso. Aquí está el diálogo de propiedades del evento:
fuente
Command Linecolumna se ha agregado si pasa el mouse sobre esa columna.Para complementar la útil respuesta PowerShell de Ryan Ries con una alternativa más corta a través del
-Filterparámetro que también usa enGet-CimInstancelugar del cmdlet obsoleto-desde-v3Get-WmiObject.El
-Filterparámetro esencialmente le permite pasar laWHEREcláusula de una declaración WQL en lugar de pasar una declaración de consulta completa a través de-Query.fuente