Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何使用WMIC启动Windows进程?_Batch File_Command Line_Process_Minimize_Wmic - Fatal编程技术网

Batch file 如何使用WMIC启动Windows进程?

Batch file 如何使用WMIC启动Windows进程?,batch-file,command-line,process,minimize,wmic,Batch File,Command Line,Process,Minimize,Wmic,是否有方法使用WMIC从Windows 7批处理文件(或从命令行)启动进程?我基本上是在寻找相当于START/MIN 我并不需要它,但如果其他人可能需要,那么使用WMIC的START/MAX等价物是什么?您需要编写一个vbs脚本。从和 Const SW_NORMAL=1 strComputer=“” strCommand=“Notepad.exe” 设置objWMIService=GetObject(“winmgmts:_ &“{impersonationLevel=impersonate}.\

是否有方法使用
WMIC
从Windows 7批处理文件(或从命令行)启动进程?我基本上是在寻找相当于
START/MIN


我并不需要它,但如果其他人可能需要,那么使用
WMIC
START/MAX
等价物是什么?

您需要编写一个vbs脚本。从和

Const SW_NORMAL=1
strComputer=“”
strCommand=“Notepad.exe”
设置objWMIService=GetObject(“winmgmts:_
&“{impersonationLevel=impersonate}.\\”_
&strComputer&“\root\cimv2”)
'将记事本进程配置为显示窗口
设置objStartup=objWMIService.Get(“Win32_ProcessStartup”)
设置objConfig=objStartup.spawneInstance_
objConfig.ShowWindow=SW_正常
'创建记事本进程
设置objProcess=objWMIService.Get(“Win32_进程”)
intReturn=objProcess.Create_
(strCommand,Null,objConfig,intProcessID)
如果返回0,那么
Echo“无法创建进程”。&_
vbNewLine和命令行:&strCommand&_
vbNewLine&“返回值:”&intReturn
其他的
Echo“进程已创建”。&_
vbNewLine和命令行:&strCommand&_
vbNewLine&“进程ID:”&intProcessID
如果结束

无需搜索等效的
开始/分钟
(除非另有要求)。只需使用
start/min

wmic process call create "cmd /c start /min notepad.exe"

当然
/max
的工作原理是一样的。

不使用
wmic
,但我认为它可以满足您的需要:

powershell.exe Start-Process -WindowStyle Minimized -PassThru notepad
输出包含PID:

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
     18       3     1232       1616       0,03  51784   1 notepad

你知道远程启动的程序是不可见的。我感谢你的反馈,但不幸的是VBS不是我的选择。但你是说这在WMIC中是不可能的?你将如何将一个对象作为命令行参数传递?为什么,它们是看不见的,所以将它们最小化是毫无意义的。我没有启动远程程序,也没有传递对象。我想启动一个本地进程,仅此而已。也许有一个例子:(1)运行cmd.exe,(2)start/min notepad.exe=>这是可行的,现在(3)wmic进程调用create notepad.exe=>并没有最小化它,所以我的问题是,如果可能的话,如何使用wmic做到这一点。我需要ProcessId,WMIC提供了它,但START没有。此流程可能有多个实例已在运行,因此我无法使用tasklist查找ProcessId。除非有其他要求。是,有其他要求。我需要启动的进程的ProcessId,这个方法无法获得。
Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
     18       3     1232       1616       0,03  51784   1 notepad