Estoy buscando una herramienta o método para averiguar qué parámetros de línea de comandos se han pasado a un programa, por ejemplo, cuando fue ejecutado por otro programa (escenario de aplicación de inicio).
84
Estoy buscando una herramienta o método para averiguar qué parámetros de línea de comandos se han pasado a un programa, por ejemplo, cuando fue ejecutado por otro programa (escenario de aplicación de inicio).
Puede hacerlo utilizando Process Explorer .
Simplemente desplace el mouse sobre un proceso para ver los argumentos de la línea de comando utilizados para iniciarlo:
Alternativamente, puede abrir las propiedades del proceso e inspeccionar la línea de comando allí mismo:
También puede hacerlo sin Process Explorer, utilizando el servicio WMI de Windows. Ejecute lo siguiente desde el símbolo del sistema:
Si desea volcar la salida a un archivo (hace que sea un poco más fácil de leer), use el modificador / OUTPUT:
fuente
También se puede lograr eso mediante el Administrador de tareas .
Administrador de tareas abierto (por CTRL-SHIFT-ESC, CTRL-ALT-DELETE o cualquier otro método).
Para Windows 7 (y probablemente Windows XP):
Para Windows 8:
Se agregará una columna de líneas de comando a las columnas que se muestran actualmente.
fuente
PowerShell al rescate.
Encontrar:
Y matar como bonificación:
Puede ejecutarlo desde powershell directamente o desde una ps1 si tiene la configuración de su sistema. Detallo la configuración de script sin restricciones en i kill zombies con powershell , así como otros trucos de powershell ...
fuente
Las respuestas anteriores son excelentes en caso de que el proceso ya se esté ejecutando y no termine pronto. Sin embargo, si necesita (como lo hice) hacer esto, tal vez con los procesos que se inician varias veces y / o finalizan rápidamente, o tal vez se registran las ocurrencias en un período de tiempo más largo, hay una manera de hacerlo usando Process Monitor .
Básicamente, registra varios eventos en el sistema, en este caso podemos simplemente filtrar el evento "Inicio del proceso" y el nombre del proceso que queremos monitorear, como se muestra a continuación:
Luego, simplemente mantenga el monitor de proceso en ejecución y haga lo que haga para que se ejecute el proceso que desea iniciar sesión. Puede ver en la columna "Detalle" o en la columna "Línea de comando" (depende de cómo los configure) los argumentos de la línea de comando. Por ejemplo:
Por supuesto, de esta manera puede extraer mucha más información relacionada, como qué es el directorio de trabajo, qué variables de entorno se han pasado en el proceso, etc. También es fácil exportar los resultados a un archivo.
fuente
Cuando uso CygWin , si inicio un proceso de Python , este es un ejemplo de línea de comando:
Pero Process Explorer solo ve el exe principal:
(tenga en cuenta la "ruta: [Error al abrir el mensaje del proceso]" (ver EDIT-1)). Los mismos resultados para
tasklist
:Entonces, el único truco que conozco hasta ahora es encontrarlo a través del shell CygWin Bash
pgrep
:Es útil saber esto, siempre que CygWin cohabite sin problemas en Windows, y puede usarlo para ejecutar muchos programas POSIX y Python.
EDITAR: en Windows no parece necesitar privilegios de administrador para la lista de tareas. En CygWin los necesitará para poder ver el proceso de un administrador (lo que me parece más lógico: la línea de comandos completa podría tener algunos parámetros como contraseñas dentro), por lo que debemos ejecutar CygWin Bash en modo Administrador elevado .
EDITAR-1: Este problema no sucederá si ejecuta Process Explorer como administrador. Gracias por señalar, @Pacerier.
fuente
[Error opening process message]
ir
run
o irstart
y buscar:fuente
/m
muestra los módulos cargados (DLL, etc.) y/svc
muestra los servicios alojados en cada proceso.