2011-11-18 5 views
6

Necesito obtener la ubicación exacta de un nombre de proceso que se está ejecutando un trabajo programado. Quiero usar WMIC JOB (si tiene alguna otra sugerencia ... hágamelo saber) para obtener eso, pero no sé exactamente cómo. Probé varias variaciones pero hasta ahora no tuve suerte.¿Cómo se usa wmic job get/list en CMD para obtener el nombre y la ubicación del proceso?

¿Qué debo hacer?

+0

Por supuesto he intentado, pero es que WMIC es un tema muy amplio y no sé qué hacer con él exactamente. :) – ETL

Respuesta

5

Aquí hay algo para comenzar.

Obtener el identificador del proceso del servicio Schedule

wmic service where name='schedule' get ProcessId 
ProcessId 
288 

Obtener el proceso que identificador del proceso padre es el servicio Schedule

wmic process where ParentProcessId=288 

Editado

no creo que en los trabajos del sistema de Microsoft es lo que estás buscando:

Un objeto de trabajo permite gestionar grupos de procesos como una unidad. Los objetos de trabajo son objetos intercambiables, asegurables y compartibles que controlan los atributos de los procesos asociados con ellos. Las operaciones realizadas en un objeto de trabajo afectan a todos los procesos asociados con el objeto de trabajo. Los ejemplos incluyen la aplicación de límites como el tamaño del conjunto de trabajo y la prioridad del proceso o la terminación de todos los procesos asociados con un trabajo.

Creo que está buscando un proceso.

Para responder a su pregunta, busco los procesos iniciados por el servicio de programación. Si desea la ubicación exacta, la proporciona la propiedad ExecutablePath.

wmic process where ParentProcessId=288 get ExecutablePath 
ExecutablePath 
C:\Windows\system32\wuauclt.exe 
+0

Se eliminaron los comentarios innecesarios. Esos comandos están relacionados con cómo llegar al servicio de programación, no a la ubicación de un nombre de proceso (+ nombre de proceso). ¿Me estoy perdiendo algo? ¿Por qué usó WMIC SERVICE/PROCESS y no JOB? ¿Es eso parte de todo esto? Gracias. – ETL

+0

Modifico mi respuesta. – JPBlanc

+0

Ya veo. Pero mi punto es ** no necesario ** para buscar procesos iniciados por el servicio de programación. Por ejemplo, si el servicio de programación está desactivado, el código no encontrará todo lo que necesito. – ETL

5

El siguiente trabajo, aunque sólo es necesario "CommandLine" o "ExecutablePath" - no tanto:

wmic process where "ProcessID=1111" get CommandLine, ExecutablePath 

Se devolverá algo como lo siguiente, que muestra dónde el programa de PID 1111 se está ejecutando:

"C:\Program Files (x86)\Common Files\MyProgram\Agent\agent.exe" 
-1

WMIC tiene una ayuda progresiva incorporado, para que pueda aprender usando su sintaxis /? en cualquier lugar

C:\WINDOWS\system32>wmic 
wmic:root\cli>/? 

[global switches] <command> 
Cuestiones relacionadas