|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Завершение процессов кроме, определенных |
|
VBS/WSH/JS - Завершение процессов кроме, определенных
|
Старожил Сообщения: 284 |
Профиль | Отправить PM | Цитировать Подскажите как написать скрипт,который будет закрывать все процессы кроме мною указанных.
например: которые должны работать svchost.exe services.exe ctfmon.exe explorer.exe и тд А все остальные закрыть! |
|
Отправлено: 12:33, 28-03-2012 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать O L E G, проверил, работает. Приведите код, который используете Вы.
|
Отправлено: 15:19, 30-03-2012 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Option Explicit
Dim arrProcesses Dim strComputer Dim objSWbemLocator Dim objSWbemServicesEx Dim objSWbemObjectEx Dim objSWbemEventSource Dim lngThisScriptProcessID arrProcesses = Array("svchost.exe", "services.exe", "ctfmon.exe", "explorer.exe", "winlogon.exe", "csrss.exe", "lsass.exe", "smss.exe") strComputer = "." Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator") objSWbemLocator.Security_.Privileges.AddAsString "SeDebugPrivilege", True Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2") lngThisScriptProcessID = GetScriptProcessID(objSWbemServicesEx) For Each objSWbemObjectEx In objSWbemServicesEx.ExecQuery("SELECT * FROM Win32_Process") With objSWbemObjectEx If Not (IsProcessEnabled(arrProcesses, .Name) Or .ProcessID = lngThisScriptProcessID) Then If .Terminate() = 0 Then 'WScript.Echo .Name, "Terminate" End If End If End With Next Set objSWbemEventSource = objSWbemServicesEx.ExecNotificationQuery( _ "SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'") Do With objSWbemEventSource.NextEvent().TargetInstance If Not IsProcessEnabled(arrProcesses, .Name) Then If .Terminate() = 0 Then 'WScript.Echo .Name, "Terminate" End If End If End With Loop Set objSWbemEventSource = Nothing Set objSWbemObjectEx = Nothing Set objSWbemServicesEx = Nothing Set objSWbemLocator = Nothing WScript.Quit 0 '============================================================================= '============================================================================= Function IsProcessEnabled(arrProcesses(), strProcess) Dim elem IsProcessEnabled = False For Each elem In arrProcesses If UCase(strProcess) = UCase(elem) Then IsProcessEnabled = True Exit For End If Next End Function '============================================================================= '============================================================================= Function GetScriptProcessID(objSWbemServicesEx) Dim strPath strPath = """mshta.exe"" " & _ """<HTML><HEAD><HTA:APPLICATION APPLICATIONNAME='GetParentPID' " & _ "WINDOWSTATE='minimize' SHOWINTASKBAR='no'</HEAD></HTML>""" With WScript.CreateObject("WScript.Shell").Exec(strPath) GetScriptProcessID = objSWbemServicesEx.Get("Win32_Process.Handle='" & CStr(.ProcessID) &"'").ParentProcessID .Terminate End With End Function |
------- Отправлено: 15:28, 30-03-2012 | #12 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Код обрамляется тэгом «code».
В появляющемся окне об ошибке нажмите «Ctrl-C», и результат копирования также вставьте из буфера обмена сюда. |
Отправлено: 16:03, 30-03-2012 | #13 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать --------------------------- Windows Script Host --------------------------- Сценарий: C:\Documents and Settings\Admin\Рабочий стол\12.vbs Строка: 28 Символ: 4 Ошибка: Сбой при удаленном вызове процедуры. Код: 800706BE Источник: SWbemObjectEx --------------------------- ОК --------------------------- |
------- Отправлено: 16:15, 30-03-2012 | #14 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 16:29, 30-03-2012 | #15 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 16:36, 30-03-2012 | #16 |
Сообщения: 53482
|
Профиль | Отправить PM | Цитировать |
Отправлено: 16:43, 30-03-2012 | #17 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 16:49, 30-03-2012 | #18 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать O L E G, даже ни одного имени процесса не выдал? Сразу в ошибку выпал?
Добавьте-ка в arrProcesses — «System Idle Process» и «System». |
Отправлено: 17:27, 30-03-2012 | #19 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать извени ребят ,я не успел посмотреть после какого процесса ошибка выскачила но она была.конец рабочего дня был не успел,в понедельник все будет
|
------- Отправлено: 10:27, 31-03-2012 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
.NET - Завершение не своих процессов на C# | ldcount | Программирование и базы данных | 4 | 29-07-2013 14:19 | |
CMD/BAT - Завершение процессов, не указанных в списке | Anonymоus | Скриптовые языки администрирования Windows | 4 | 05-08-2011 10:33 | |
Разное - Завершение нескольких процессов из CMD или программы | antikiller_bm | Microsoft Windows 2000/XP | 3 | 24-05-2009 23:39 | |
Заблокировать трафик, кроме определенных IP | noleiemit | Microsoft Windows NT/2000/2003 | 17 | 19-01-2009 21:51 | |
Разное - Неожиданное завершение службы Запуск серверных процессов DCOM | koresaram | Microsoft Windows 2000/XP | 3 | 25-07-2007 12:20 |
|