2009-05-21 11 views
14

मेरे पास एक प्रक्रिया को समाप्त करने के लिए यह वीबीस्क्रिप्ट कोड हैवीबीस्क्रिप्ट का उपयोग कर प्रक्रिया को कैसे समाप्त करें

 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 

यह कुछ प्रक्रियाओं के साथ ठीक काम करता है, लेकिन जब किसी भी प्रक्रिया की बात आती है तो सिस्टम के तहत चलता है, यह इसे रोक नहीं सकता है।

क्या सिस्टम के तहत प्रक्रिया को मारने के लिए मुझे कुछ जोड़ने की ज़रूरत है?

उत्तर

17

जिस तरह से मैंने इसे अतीत में काम करने के लिए प्राप्त किया है, वह PsKill माइक्रोसॉफ्ट के SysInternals से उपयोग कर रहा है। PsKill सिस्टम प्रक्रियाओं और लॉक होने वाली किसी भी प्रक्रिया को समाप्त कर सकता है।

आपको निष्पादन योग्य डाउनलोड करने और स्क्रिप्ट के समान निर्देशिका में रखने की आवश्यकता है या WshShell.Exec कॉल में इसका पथ जोड़ें। 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

शानदार काम। बहुत बहुत धन्यवाद, मैंने बिना किसी किस्मत के वेब पर 2 घंटे की खोज की :-), अब यह बहुत अच्छा काम करता है। –

संबंधित मुद्दे