2009-05-21 17 views
14

ich diesen VBScript-Code habe einen Prozess mit einigen ProzessenWie Prozess beenden VBScript mit

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 

Es funktioniert gut, zu beenden, aber wenn es um jeden Prozess läuft unter SYSTEM kommt, kann es nicht stoppen.

Gibt es etwas, das ich hinzufügen muss, um den Prozess unter SYSTEM zu beenden?

Antwort

17

Die Art, wie ich dies in der Vergangenheit funktioniert haben, ist mit PsKill von Microsoft SysInternals. PsKill kann Systemprozesse und alle Prozesse, die gesperrt sind, beenden.

Sie müssen die ausführbare Datei herunterladen und im selben Verzeichnis wie das Skript platzieren oder ihren Pfad im WshShell.Exec-Aufruf hinzufügen. Hier ist Ihr Beispielcode geändert, um PsKill zu verwenden.

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

Gute Arbeit. Vielen Dank, ich habe 2 Stunden ohne Glück im Internet gesucht :-), jetzt klappt es super. –

Verwandte Themen