2009-05-21 15 views
14

Mam ten kod VBScript, aby zakończyć jeden procesJak zakończyć proces za pomocą VBScript

Const strComputer = "." 
    Dim objWMIService, colProcessList 
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
    Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Process.exe'") 
    For Each objProcess in colProcessList 
    objProcess.Terminate() 
    Next 

Współpracuje z kilkoma sposobami, ale jeśli chodzi o proces przebiega pod każdym systemie, to nie można go zatrzymać.

Czy jest coś, co muszę dodać, aby zabić proces w SYSTEMIE?

Odpowiedz

17

Sposób, w jaki udało mi się to zrobić w przeszłości, polega na użyciu PsKill z SysInternals Microsoftu. PsKill może zakończyć procesy systemowe i wszelkie zablokowane procesy.

Należy pobrać plik wykonywalny i umieścić go w tym samym katalogu, co skrypt lub dodać ścieżkę do wywołania WshShell.Exec. Oto przykładowy kod zmieniony w celu użycia PsKill.

Const strComputer = "." 
Set WshShell = CreateObject("WScript.Shell") 
Dim objWMIService, colProcessList 
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Process.exe'") 
For Each objProcess in colProcessList 
    WshShell.Exec "PSKill " & objProcess.ProcessId 
Next 
+0

Świetna robota. Dziękuję bardzo, szukałem przez 2 godziny w Internecie bez powodzenia :-), teraz działa świetnie. –

Powiązane problemy