|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Завершение процессов кроме, определенных |
|
VBS/WSH/JS - Завершение процессов кроме, определенных
|
![]() Старожил Сообщения: 284 |
Подскажите как написать скрипт,который будет закрывать все процессы кроме мною указанных.
например: которые должны работать svchost.exe services.exe ctfmon.exe explorer.exe и тд А все остальные закрыть! |
|
Отправлено: 12:33, 28-03-2012 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать O L E G, как Вы запускаете «explorer.exe»?
|
Отправлено: 13:44, 02-04-2012 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 14:06, 02-04-2012 | #32 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать O L E G, вот Вам пример для Блокнота:
Пытаемся запустить Блокнот, в случае успеха ждём три секунды, пытаемся закрыть тот экземпляр Блокнота, который запустили. В случае же Проводника не всё так однозначно. Во-первых, процесс Проводника может существовать как в единственном экземпляре, так и в двух — когда настройками указано разделять процессы Проводника «Рабочего стола» и папок (вторичные входы здесь не рассматриваем). Во-вторых, если просто попытаться завершить процесс «Рабочего стола» Проводника — «Программа входа в систему Windows NT» (winlogon.exe) его попросту перезапустит (справедливо, по крайней мере для WIndows XP). Отменить подобное поведение можно, указав ненулевое значение «Reason» при вызове метода «.Terminate(Reason)». К тому же, я совсем не понял, зачем снимать процесс, запускать процесс и снова снимать его. Ну, и, утверждение: Цитата O L E G:
|
|
Отправлено: 16:35, 02-04-2012 | #33 |
![]() Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать к примеру у тебя стоит блокировка win + L, если снять процесс explorer и запустить его заново он будет по верх этой блокировки,что нам даст полное дествие над ПК
|
------- Отправлено: 16:40, 02-04-2012 | #34 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата O L E G:
|
|
Отправлено: 17:01, 02-04-2012 | #35 |
![]() Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать я пробовал! работает)) 100% поэтому я и задался этим вопросом
|
------- Отправлено: 17:03, 02-04-2012 | #36 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Значит, это не есть:
Цитата O L E G:
|
|
Отправлено: 17:36, 02-04-2012 | #37 |
![]() Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Iska, а вот с этим скриптом что ты мне дал на примере Блокнотапо верх Блокировки не вылазиет, пытался изменить но выдает ошибку
--------------------------- Windows Script Host --------------------------- Сценарий: C:\Documents and Settings\Admin\Рабочий стол\cmd\vbs\Программа KeyRepair\unlock\служба восстановления реестра\запуск и завершение процесса\Копия 1.vbs Строка: 24 Символ: 2 Ошибка: Не найден Код: 80041002 Источник: SWbemServicesEx --------------------------- ОК --------------------------- оставлял только закрытие процесса. Option Explicit Dim strProcess Dim strComputer Dim objSWbemLocator Dim objSWbemServicesEx Dim lngProcessID strProcess = "explorer.exe" Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator") Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2") WScript.Sleep 3000 If objSWbemServicesEx.Get("Win32_Process.Handle='" & CStr(lngProcessID) & "'").Terminate() = 0 Then Else WScript.Echo "Can't terminate process [" & strProcess & "], Process ID [" & lngProcessID & "]." End If WScript.Echo "Can't create process [" & strProcess & "]." Set objSWbemServicesEx = Nothing Set objSWbemLocator = Nothing WScript.Quit 0 а открывал по своему |
------- Отправлено: 17:43, 02-04-2012 | #38 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Вы убрали код для запуска процесса и получения его идентификатора, а затем пытаетесь применить неинициализированную PID'ом (стало быть — нулевую) переменную «lngProcessID» для получения экземпляра процесса с последующим его закрытием.
Не удивительно, что это не работает, ибо в терминах Wbem процесс с нулевым PID'ом — это «System Idle Process» — «ожидание» системы. |
Отправлено: 19:28, 02-04-2012 | #39 |
![]() Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Option Explicit Dim strProcess Dim strComputer Dim objSWbemLocator Dim objSWbemServicesEx Dim lngProcessID strProcess = "Explorer.exe" strComputer = "." Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator") Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2") If objSWbemServicesEx.Get("Win32_Process").Create(strProcess, Null, Nothing, lngProcessID) = 0 Then WScript.Echo "Process [" & strProcess & "] create successfully, Process ID is [" & lngProcessID & "]." WScript.Sleep 3000 If objSWbemServicesEx.Get("Win32_Process.Handle='" & CStr(lngProcessID) & "'").Terminate() = 0 Then WScript.Echo "Process [" & strProcess & "], Process ID [" & lngProcessID & "] terminate successfully." Else WScript.Echo "Can't terminate process [" & strProcess & "], Process ID [" & lngProcessID & "]." End If Else WScript.Echo "Can't create process [" & strProcess & "]." End If Set objSWbemServicesEx = Nothing Set objSWbemLocator = Nothing WScript.Quit 0 |
------- Последний раз редактировалось O L E G, 03-04-2012 в 10:44. Отправлено: 10:14, 03-04-2012 | #40 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
.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 |
|