Как завершить процесс с помощью VBScript
У меня есть этот код VBScript для завершения одного процесса
Const strComputer = "."
Dim objWMIService, colProcessList
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")
Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Process.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
он отлично работает с некоторыми процессами, но когда дело доходит до любого процесса, запущенного в системе, он не может остановить его.
есть ли что-нибудь, что мне нужно добавить, чтобы убить процесс в системе?
1 ответов
способ, которым я получил это, чтобы работать в прошлом, используя С pskill от Sysinternals от Microsoft. 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