我需要获取计划作业正在执行的进程名称的确切位置。我想使用 WMIC JOB(如果您有任何其他建议......请告诉我)来获得它,但我不知道具体如何。我已经尝试了几种变化,但到目前为止没有运气。
我该怎么办?
以下将起作用,尽管您只需要 " CommandLine
"或" ExecutablePath
" - 而不是两者都需要:
wmic process where "ProcessID=1111" get CommandLine, ExecutablePath
它将返回如下内容,显示 PID 1111 的程序正在运行的位置:
"C:\Program Files (x86)\Common Files\MyProgram\Agent\agent.exe"
这是开始的事情。
获取服务的进程标识符Schedule
wmic service where name='schedule' get ProcessId
ProcessId
288
获取父进程标识为Schedule
服务的进程
wmic process where ParentProcessId=288
已编辑
我不认为 Microsoft 系统中的工作是您正在寻找的:
作业对象允许将进程组作为一个单元进行管理。作业对象是可命名的、安全的、可共享的对象,它们控制与它们关联的进程的属性。对作业对象执行的操作会影响与作业对象关联的所有进程。示例包括强制执行限制,例如工作集大小和进程优先级或终止与作业关联的所有进程。
我认为您正在寻找过程。
要回答您的问题,我会查找调度服务启动的进程。如果你想要确切的位置,它是由属性给出的ExecutablePath
。
wmic process where ParentProcessId=288 get ExecutablePath
ExecutablePath
C:\Windows\system32\wuauclt.exe
WMIC 内置了渐进式帮助,因此您可以/?
在任何地方学习其语法
C:\WINDOWS\system32>wmic
wmic:root\cli>/?
[global switches] <command>