在vbscript中,如何获取运行vb脚本的cmd.exe的进程id

在vbscript中,如何获取运行vb脚本的cmd.exe的进程id,vbscript,cmd,wmi,pid,terminate,Vbscript,Cmd,Wmi,Pid,Terminate,在vb脚本中,我想用运行vb脚本的cmd.exe的进程id分配一个变量。是否有任何命令?下面是返回父进程标题和id的示例VB脚本过程: GetParentProcessInfo sCaption,sProcessId MsgBox“父进程标题”&sCaption&“&vbCrLf&“父进程Id”&sProcessId&” 子GetParentProcessInfo(sCaption,sProcessId) 使用GetObject(“winmgmts:\\.\root\CIMV2:Win32\u

在vb脚本中,我想用运行vb脚本的cmd.exe的进程id分配一个变量。是否有任何命令?

下面是返回父进程标题和id的示例VB脚本过程:

GetParentProcessInfo sCaption,sProcessId
MsgBox“父进程标题”&sCaption&“&vbCrLf&“父进程Id”&sProcessId&”
子GetParentProcessInfo(sCaption,sProcessId)
使用GetObject(“winmgmts:\\.\root\CIMV2:Win32\u Process.Handle=”&CreateObject(“WScript.Shell”).Exec(“rundll32 kernel32,Sleep”).ProcessId&“”)
使用GetObject(“winmgmts:\\.\root\CIMV2:Win32\u Process.Handle='”和.ParentProcessId&“”)
使用GetObject(“winmgmts:\\.\root\CIMV2:Win32\u Process.Handle='”和.ParentProcessId&“”)
标题
SPPROCESSID=.ProcessId
以
以
终止
以
端接头

应该会有帮助。欢迎使用堆栈溢出!显示一些代码以查看到目前为止您已尝试的内容。谢谢。我是新的vb脚本。我必须编写一个vbs来杀死所有的cmd.exe,除了运行vb脚本的那一个。下面是我正在尝试的代码。Set WshShell=WScript.CreateObject(“WScript.Shell”)Set a=WshShell.Exec(cmd/c“wmic process get parentprocessid,name | find wmic”)x=a.StdOut.ReadLine WScript.Echo x pid=Right(x,4)Set colprocesss=objWMIService.ExecQuery(“从Win32_进程中选择*,其中name='cmd.exe'和ProcessID!=&abc”)对于colprocesss item.terminate()中的每个项Next@bharathipriyaT请不要将此作为评论发布,而是通过编辑将所有这些详细信息添加到您的问题中。描述你的代码是如何工作的,什么是错误的,什么是预期的行为。那么我可以建议一些代码。这个解决方案的优点是它不使用控制台程序。以前,当在断开连接的终端服务器会话上执行多个控制台程序时(它们都已正确终止),我遇到了很大的麻烦。相反,rundll32是一个常规windows应用程序(未显示控制台窗口),因此不会出现此错误。