|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Отловить простой системы и выход из него |
|
CMD/BAT - Отловить простой системы и выход из него
|
Ветеран Сообщения: 12426 |
Даже не знаю с какого боку зайти уже. Что требуется:
При простое = 600s (в этот момент гасится монитор) - запуск батника. При выходе из простоя - запуск другого батника. Пробовали реализовать это с помощью коллективного разума средствами системы - не вышло. Т.е. если бы что-то писалось в журнал при, допустим, гашении и включении монитора, то можно было бы завесить на это событие задание в планировщике, но ничего не пишется... Удалось реализовать только так: в св-вах заставки ставим время и флажок "Начинать с экрана входа в систему", в этом случае происходит блокировка, а на блокировку/разблокировку легко назначается нужное задание в планировщике. Но это не удобно, т.к. надо выбирать учётную запись при разблокировке. Под простоем понимается отсутствие нажатий на клавиши, при любой загруженности процессора и HDD, Любые идеи? ОС: Windows 7, на всякий случай. |
|
Отправлено: 03:39, 25-05-2010 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Morpheus:
Цитата Morpheus:
Query = "SELECT * FROM __InstanceCreationEvent WITHIN 5 " "WHERE TargetInstance ISA \"Win32_Process\" " "AND TargetInstance.CommandLine LIKE \"%%.scr /s\""; |
||
Отправлено: 11:04, 27-05-2010 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 12426
|
Профиль | Отправить PM | Цитировать amel27, т.е. так должно быть?
#pragma namespace ("\\\\.\\Root\\subscription") // Создание экземпляра потребителя событий командной строки // для запуска батника "c:\\TEST\scrstart.cmd", и // присвоение ему псевдонима $SCRSTARTCONSUMER instance of CommandLineEventConsumer as $SCRSTARTCONSUMER { Name = "ScreenSaverStartConsumer"; CommandLineTemplate = "D:\\MOF\\scrstart.cmd %TargetInstance.Name%"; WorkingDirectory = "D:\\MOF"; }; // Создание экземпляра потребителя событий командной строки // для запуска батника "c:\\TEST\scrstop.cmd", // присвоение ему псевдонима $SCRSTOPCONSUMER instance of CommandLineEventConsumer as $SCRSTOPCONSUMER { Name = "ScreenSaverStopConsumer"; CommandLineTemplate = "D:\\MOF\\scrstop.cmd %TargetInstance.Name%"; WorkingDirectory = "D:\\MOF"; }; // Создание экземпляра фильтра событий // для создания нового процесса *.SCR // и присвоение ему псевдонима $SCRSTARTFILTER instance of __EventFilter as $SCRSTARTFILTER { Name = "ScreenSaverStartFilter"; EventNamespace = "\\\\.\\root\\cimv2"; Query = "SELECT * FROM __InstanceCreationEvent WITHIN 5 " "WHERE TargetInstance ISA \"Win32_Process\" " "AND TargetInstance.CommandLine LIKE \"%%.scr /s\""; QueryLanguage = "WQL"; }; // Создание экземпляра фильтра событий // для удаления процесса *.SCR // и присвоение ему псевдонима $SCRSTOPFILTER instance of __EventFilter as $SCRSTOPFILTER { Name = "ScreenSaverStopFilter"; EventNamespace = "\\\\.\\root\\cimv2"; Query = "SELECT * FROM __InstanceDeletionEvent WITHIN 5 " "WHERE TargetInstance ISA \"Win32_Process\" " "AND TargetInstance.CommandLine LIKE \"%%.scr /s\""; QueryLanguage = "WQL"; }; // Создание экземпляра связи между фильтром и подписчиком // события запуска хранителя экрана instance of __FilterToConsumerBinding { Consumer = $SCRSTARTCONSUMER; Filter = $SCRSTARTFILTER; }; // Создание экземпляра связи между фильтром и подписчиком // события остановки хранителя экрана instance of __FilterToConsumerBinding { Consumer = $SCRSTOPCONSUMER; Filter = $SCRSTOPFILTER; }; |
Отправлено: 13:52, 27-05-2010 | #32 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Morpheus:
![]() |
|
Отправлено: 15:45, 27-05-2010 | #33 |
Ветеран Сообщения: 12426
|
Профиль | Отправить PM | Цитировать amel27, логи создаются, а событие в журнале найти не могу.
UPD: нашел, из-за чего не работал код из #30 - EventType = 3 не пишется, если = 1 или 4 - пишется. Теперь другой проблем - событие Start создаётся 2 раза и одновременно пишется Stop. Не подскажете? |
Последний раз редактировалось Morpheus, 28-05-2010 в 04:07. Отправлено: 17:20, 27-05-2010 | #34 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Наверное, потому что нет такого значения EventType:
|
Отправлено: 13:58, 28-05-2010 | #35 |
Ветеран Сообщения: 12426
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Остаётся разобраться с дублированием событий. |
|
Отправлено: 14:02, 28-05-2010 | #36 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Morpheus:
P.S. если при компиляции встречается ошибка (несуществующий объект), то работа MofComp аварийно прекращается (т.е. для корректного удаления должны существовать ВСЕ описанные в MOF-файле объекты) - по этой причине после удаления могут оставаться "хвосты" P.P.S есть удобные утилиты для визуальной работы с событиями (WMI Administrative Tools), но официально заявлена только поддержка XP ![]() |
|
Отправлено: 17:28, 28-05-2010 | #37 |
Ветеран Сообщения: 12426
|
Профиль | Отправить PM | Цитировать amel27, хм, любопытно. Проверил на хосте вместо виртуалки, 1 старт и 1 стоп. М.б. есть способ вывести всех потребителей, для всех фильтров, в командной строке? В WMI Administrative Tools пустота, ставил в режиме совместимости, от админа, в профиль.
Удалил-создал-удалил-создал-удалил-создал с новыми именами - всё пришло в норму. Теперь такой вопрос: Registering for Power Events (Windows) Цитата:
Хочется отвязаться от заставки, которую я не использую, и привязаться к отключению/включению моника. |
|
Отправлено: 00:11, 29-05-2010 | #38 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Morpheus:
Цитата Morpheus:
|
||
Отправлено: 05:56, 29-05-2010 | #39 |
Ветеран Сообщения: 12426
|
Профиль | Отправить PM | Цитировать Цитата amel27:
Цитата amel27:
|
||
Отправлено: 19:43, 29-05-2010 | #40 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PantherXP - создание образа системы и развертывание из него (статья) | alexandr100 | Автоматическая установка Windows 2000/XP/2003 | 174 | 05-01-2014 18:42 | |
Происходит автоматический выход из системы каждую минуту | 06072009 | Microsoft Windows Vista | 2 | 01-04-2011 15:48 | |
Toshiba Qosmio X300-14X и двух-канальный ли HDMI выход у него ? | XPOM | Ноутбуки | 2 | 15-02-2010 14:02 | |
Загрузка - глюк после приветствия "выход из системы" | werify | Microsoft Windows 2000/XP | 1 | 27-08-2009 14:14 | |
Самостоятельное изменение диалогов Завершение работы и Выход из системы | prokazzza | Проект WinStyle | 1 | 04-08-2009 01:19 |
|