2009-05-21 30 views
14

tôi có mã VBScript này để chấm dứt một quá trìnhLàm thế nào để chấm dứt quá trình sử dụng 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 

Nó hoạt động tốt với một số quy trình, nhưng khi nói đến bất kỳ quá trình chạy dưới hệ thống, nó không thể ngăn chặn nó.

Có bất kỳ điều gì tôi cần thêm để giết quá trình trong SYSTEM không?

Trả lời

17

Cách tôi đã thực hiện việc này trong quá khứ là sử dụng PsKill từ SysInternals của Microsoft. PsKill có thể chấm dứt các quá trình hệ thống và bất kỳ quá trình nào bị khóa.

Bạn cần tải tệp thi hành xuống và đặt nó trong cùng thư mục với tập lệnh hoặc thêm đường dẫn của nó trong cuộc gọi WshShell.Exec. Đây là mã mẫu của bạn đã thay đổi để sử dụng 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

Công việc tuyệt vời. Cảm ơn bạn rất nhiều, tôi đã tìm kiếm trong 2 giờ trên web mà không có may mắn :-), bây giờ nó hoạt động rất tốt. –

Các vấn đề liên quan