2013-04-05 73 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 
相關問題