Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Отловить простой системы и выход из него

Ответить
Настройки темы
CMD/BAT - Отловить простой системы и выход из него

Аватара для Morpheus

Ветеран


Сообщения: 12426
Благодарности: 2328


Конфигурация

Профиль | Отправить PM | Цитировать


Даже не знаю с какого боку зайти уже. Что требуется:
При простое = 600s (в этот момент гасится монитор) - запуск батника.
При выходе из простоя - запуск другого батника.

Пробовали реализовать это с помощью коллективного разума средствами системы - не вышло.
Т.е. если бы что-то писалось в журнал при, допустим, гашении и включении монитора, то можно было бы завесить на это событие задание в планировщике, но ничего не пишется...
Удалось реализовать только так: в св-вах заставки ставим время и флажок "Начинать с экрана входа в систему", в этом случае происходит блокировка, а на блокировку/разблокировку легко назначается нужное задание в планировщике. Но это не удобно, т.к. надо выбирать учётную запись при разблокировке.
Под простоем понимается отсутствие нажатий на клавиши, при любой загруженности процессора и HDD,
а не так, как это себе представляет планировщик :)
Условия простоя
Можно выбрать условие, позволяющее запуск задания только в том случае, если на момент активации триггера компьютер находится в состоянии простоя в течение указанного времени. При настройке этого условия также необходимо задать время ожидания (после активации триггера задания), по истечению которого компьютер будет возвращаться в состояние простоя.

Служба планировщика заданий проверяет, не находится ли компьютер в состоянии простоя, каждые 15 минут. Состоянием простоя считается состояние компьютера, при котором запущена заставка. Если заставка не запускается, считается, что компьютер находится в состоянии простоя при 0% использования процессора и 0% активности диска в течение 90% из последних 15 минут при отсутствии ввода команд с помощью клавиатуры или мыши. Если служба планировщика заданий обнаруживает, что компьютер находится в состоянии простоя, служба начинает ожидать ввода команды пользователем, чтобы отметить конец состояния простоя.

Если задание запускается только в том случае, если компьютер находится в состоянии простоя в течение 30 минут, и задание в течение 10 минут ожидает, пока компьютер перейдет в состоянии простоя, то задание запуститься через 5 минут только в том случае, если на момент активации триггера компьютер находился в состоянии простоя в течение 25 минут. Задание не будет запущено, если компьютер переходит в состояние простоя через 5 минут после активации триггера.

Любые идеи?
ОС: Windows 7, на всякий случай.

Отправлено: 03:39, 25-05-2010

 

Аватара для Morpheus

Ветеран


Сообщения: 12426
Благодарности: 2328

Профиль | Отправить PM | Цитировать


zonderz, спасибо!
Цитата zonderz:
в трее - кол-во минут бездействия »
не обновляется

Отправлено: 00:55, 26-05-2010 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Morpheus, проверил дома - на Win7 работает, компилировал в режиме админа, текст батников:
Код: Выделить весь код
Echo ------------>>%~n0.log
Echo Date/Time  : %DATE% %TIME%1>>%~n0.log
Echo ScreenSaver: %~1>>%~n0.log
Echo ------------>>%~n0.log
SET>>%~n0.log
Echo.>>%~n0.log
Цитата Morpheus:
М.б. в этом причина неработоспособности? »
смысл в том, что батники запускаются под системной учеткой без доступа к рабочему столу, т.е. если нужен доступ к окнам или учетка пользователя, то этот способ не подойдет

MOF-файл для отключения мониторинга/удаления объектов, созданных MOF из поста #2:
Код: Выделить весь код
#pragma namespace ("\\\\.\\Root\\subscription")

#pragma deleteinstance
    ("CommandLineEventConsumer.Name='ScreenSaverStartConsumer'", FAIL)

#pragma deleteinstance
    ("CommandLineEventConsumer.Name='ScreenSaverStopConsumer'", FAIL)

#pragma deleteinstance
    ("__EventFilter.Name='ScreenSaverStartFilter'", FAIL)

#pragma deleteinstance
    ("__EventFilter.Name='ScreenSaverStopFilter'", FAIL)
Это сообщение посчитали полезным следующие участники:

Отправлено: 04:09, 26-05-2010 | #22


(*.*)


Сообщения: 36496
Благодарности: 6676

Профиль | Сайт | Отправить PM | Цитировать


Цитата amel27:
смысл в том, что батники запускаются под системной учеткой без доступа к рабочему столу, т.е. если нужен доступ к окнам или учетка пользователя, то этот способ не подойдет »
Как я понял, в данном случае отслеживание события - это лишь прелюдия к запуску пользовательских задач, т.е. программы какой-то или скрипта.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 12:25, 26-05-2010 | #23


Аватара для Morpheus

Ветеран


Сообщения: 12426
Благодарности: 2328

Профиль | Отправить PM | Цитировать


amel27, спасибо!
Цитата amel27:
текст батников: »
Лог создаётся, а запустить что-то из батника - не запускается... Даже элементарную команду:
Код: Выделить весь код
cmd /c notepad
Обойти возможно?

Отправлено: 14:59, 26-05-2010 | #24


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Morpheus, notepad запускается под системной учеткой и поэтому не имеет возможности вывести своё окно на рабочий стол пользователя... перехват событий через WMI предназначен скорей для административных задач, т.е. приложений, не требующих взаимодействия с пользователем (скрипты, консольные приложения и т.п.)

Отправлено: 15:33, 26-05-2010 | #25


Аватара для Morpheus

Ветеран


Сообщения: 12426
Благодарности: 2328

Профиль | Отправить PM | Цитировать


amel27, ок, понятно, спасибо! А можно ли сделать вместо запуска батника (или из этого батника), чтобы просто писалось какое-нибудь событие в журнал?

zonderz, можете исходники последнего варианта выложить?

Отправлено: 16:47, 26-05-2010 | #26


Аватара для zonderz

Ветеран


Сообщения: 727
Благодарности: 150

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar ssaver.rar
(10.4 Kb, 34 просмотров)

O.K.

-------
MCP, MCSA, MCSE, разработчик программы CMDTools
http://forum.oszone.net/thread-170783.html

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:38, 26-05-2010 | #27


Аватара для Morpheus

Ветеран


Сообщения: 12426
Благодарности: 2328

Профиль | Отправить PM | Цитировать


zonderz, спасибо, пробую разобраться.

Отправлено: 18:09, 26-05-2010 | #28


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Morpheus:
amel27, ок, понятно, спасибо! А можно ли сделать вместо запуска батника (или из этого батника), чтобы просто писалось какое-нибудь событие в журнал? »
Logging to NT Event Log Based on an Event (Windows)
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:48, 26-05-2010 | #29


Аватара для Morpheus

Ветеран


Сообщения: 12426
Благодарности: 2328

Профиль | Отправить PM | Цитировать


Iska, спасибо! Эхх, как же тяжело, когда не совсем представляешь, что делаешь
Подскажите, плз, где косяк? (Только не говорите, что это один большой косяк )
Код: Выделить весь код
#pragma namespace ("\\\\.\\Root\\subscription")

instance of NTEventLogEventConsumer as $SCRSTARTCONSUMER
{
    Name = "SCRStartConsumer";
    SourceName = "SCRStartConsumer1";
    EventID = 7895;
    EventType = 3;
    Category = 0;
    NumberOfInsertionStrings = 1;
    InsertionStringTemplates = {"StartSCR"};
};    

instance of NTEventLogEventConsumer as $SCRSTOPCONSUMER
{
    Name = "SCRStopConsumer";
    SourceName = "SCRStopConsumer1";
    EventID = 7896;
    EventType = 3;
    Category = 0;
    NumberOfInsertionStrings = 1;
    InsertionStringTemplates = {"StopSCR"};
};    

// Создание экземпляра фильтра событий 
// для создания нового процесса *.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.Name LIKE \"%%.scr\"";
    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.Name LIKE \"%%.scr\"";
    QueryLanguage = "WQL";
};

// Создание экземпляра связи между фильтром и подписчиком
// события запуска хранителя экрана

instance of __FilterToConsumerBinding
{
     Consumer = $SCRSTARTCONSUMER;
     Filter = $SCRSTARTFILTER;
};

// Создание экземпляра связи между фильтром и подписчиком
// события остановки хранителя экрана

instance of __FilterToConsumerBinding
{
     Consumer = $SCRSTOPCONSUMER;
     Filter = $SCRSTOPFILTER;
};

Отправлено: 03:58, 27-05-2010 | #30



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Отловить простой системы и выход из него

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход