Тема: VBS: Терминирование процессов Win32_Process Terminate()(решено)
Всем доброго времени суток! Проблема пустяковая но изучать wmi я начал только несколько дней назад так что заранее извиняюсь за неграмотность:)
Данный скрипт должен отслеживать и завершать все новые процессы cmd.exe. Если процесс запущен под пользователем от которого запущен скрипт проблем нет, но если скрипт запускать под другим пользователем(Администратор) то "Terminate" возвращает 0, но процесс не завершает. На http://msdn.microsoft.com/en-us/library/aa393907 нашел что необходимо сделать чтобы завершить процесс другого пользователя:
To terminate a process that you do not own, enable the SeDebugPrivilege privilege. In VBScript, you can enable this privilege with the following lines of code:
CopySet objLoc = createobject("wbemscripting.swbemlocator")
objLoc.Security_.privileges.addasstring "sedebugprivilege", true
Но как это применить не понял.
strComputer = "."
Set objWMIService = Getobject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
Set objEvents = objWMIService.ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE (TargetInstance ISA 'Win32_Process')")
Do While(True)
Set objReceivedEvent = objEvents.NextEvent
For Each objItem In objWMIService.ExecQuery("SELECT * FROM Win32_Process")
If objItem.name = "cmd.exe" Then
objItem.Terminate
End If
Next
Loop