2013-04-05 68 views
1

我试图使用以下VBS脚本同时关闭多个应用程序,但在For Each循环线上得到错误0x80041017。它工作正常,只有一个应用程序,但我又增加了终止VBS:终止多个正在运行的应用程序

strComputer = "." 
strProcessToKill1 = "Acrobat.exe" 
strProcessToKill2 = "iexplore.exe" 

Set objWMIService = GetObject("winmgmts:" _ 
       & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 

Set colProcess = objWMIService.ExecQuery _ 
       ("Select * from Win32_Process Where Name = '" & strProcessToKill1 & "' or '" & strProcessToKill2 & "'") 


count = 0 
For Each objProcess in colProcess 
       objProcess.Terminate() 
       count = count + 1 
Next 

回答

5

您的WMI查询是无效的,这是造成循环失败。您需要为WHERE子句的后半部分指定列(Name)。我还会删除objProcess.Terminate调用的括号。

strComputer = "." 
strProcessToKill1 = "Acrobat.exe" 
strProcessToKill2 = "iexplore.exe" 

Set objWMIService = GetObject("winmgmts:" _ 
       & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 

Set colProcess = objWMIService.ExecQuery _ 
       ("Select * from Win32_Process Where Name = '" & strProcessToKill1 & "' OR Name = '" & strProcessToKill2 & "'") 


count = 0 
For Each objProcess in colProcess 
       objProcess.Terminate 
       count = count + 1 
Next 
相关问题