2014-11-20 1 views
1

Как прекратить VBS файл, используя VB Script .. Я попробовал этот код и он не работает,Как прекратить VBS файл с использованием VB Script

Call StopProcessVBS(strComputer,strProcess) 

Function StopProcessVBS (strComputerArg,strProcessArg) 
    Set WshShell = CreateObject("WScript.Shell") 
    Dim objWMIService, colProcessList 
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputerArg & "\root\cimv2") 
    Set colItems = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = 'cscript.exe' OR Name = 'wscript.exe'") 
    For Each objItem in colItems 
     If objItem.CommandLine = strProcessArg Then 
      **objItem.CommandLine.Terminate()** 
     End If 
    Next 


    Set WshShell = Nothing 
    Set objWMIService = Nothing 
    Set colItems = Nothing 
End Function 
+0

Вы пытались найти существующие ответы? Связанный с этим вопрос: http://stackoverflow.com/questions/893237/how-to-terminate-process-using-vbscript – Xenyal

+0

В вашем уме, какая разница между «VBS» и «Vb script»? –

+1

Определить (подробно!) «Не работает»? Можете ли вы прервать Commandline (в отличие от процесса)? Что вы передаете как strProcessArgs? –

ответ

1

Наконец работал, Пробовал ниже код

strComputer = "." 
Call StopProcessVBS(strComputer,strProcess) 

Function StopProcessVBS (strComputerArg,strProcessArg) 
    Set WshShell = CreateObject("WScript.Shell") 
    Dim objWMIService, colProcessList 
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputerArg & "\root\cimv2") 
    Set colItems = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = 'cscript.exe' OR Name = 'wscript.exe'") 
    For Each objItem in colItems 
     If Instr (1,Replace(objItem.CommandLine,"""",""),strProcessArg) Then 
      objItem.Terminate() 
     End If 
    Next 

    Set WshShell = Nothing 
    Set objWMIService = Nothing 
    Set colItems = Nothing 
End Function