PDA

Показать полную графическую версию : [решено] убить процесс - среди одинаковых


foxbat
04-08-2009, 13:57
Добрый час ! Помогите решить такую задачу, необходимо убить процесс среди множесва одинаковых - запущены процессы от разных пользователей, поэтому думаю это может быть ключём для удаления. Как убить процесс я нашёл, наверное надо запрос подкорректировать, подскажите как :):


Set objProc = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
WScript.Echo Err.Number & ": " & Err.Description
WScript.Quit
End If
For Each objProc In objProc.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe'")
objProc.Terminate
Next

foxbat
04-08-2009, 15:06
сам спросил - сам ответил :)
не увидел сначала метода GetOwner

Set objProc = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
WScript.Echo Err.Number & ": " & Err.Description
WScript.Quit
End If
For Each objProc In objProc.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe'")
Return = objProc.GetOwner(strNameOfUser)
If strNameOfUser="name_user" then objProc.terminate
Next

нормальная конструкция или можно в самом запросе прикрутить привязку к пользователю ?

amel27
04-08-2009, 16:06
или можно в самом запросе прикрутить привязку к пользователю ? »запрос атрибута и вызов метода не выполняются одним операндом




© OSzone.net 2001-2012