WMIC 的“删除”和“调用终止”之间的区别

WMIC 的“删除”和“调用终止”之间的区别

要使用可执行路径终止 Windows 上正在运行的进程,我可以使用以下任一方法:

wmic process where ExecutablePath='C:\\path\\to\\my.exe' delete

或者:

wmic process where ExecutablePath='C:\\path\\to\\my.exe' call terminate

如果有的话,这两种方法之间有何实际区别?

答案1

使用call terminate,我们可以传递退出状态,例如call terminate '-1073741510'。32 位状态值必须带符号,负值需要用引号引起来。后者的值为STATUS_CONTROL_C_EXIT(0xC000013A),为带符号的十进制值。默认退出状态为 0,与动词使用的值相同delete

在实现方面,WMI 服务启动 WMI 提供程序主机 (wmiprvse.exe) 的一个实例来处理请求。附加调试器来检查这一点相对容易,因为提供程序主机进程会重复使用几分钟。Win32_Process类在 WMI Win32 提供程序模块 (cimwin32.dll) 中实现,该模块包含一个具有和方法的Process类,分别称为和。 这两个方法最终都调用 WINAPI 。DeleteInstanceExecTerminatedeletecall terminateTerminateProcess

相关内容