Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Windows [игнор отключен] [закрыт для гостей] / Такой вот хитрый сценарий / 4 сообщений из 4, страница 1 из 1
10.06.2007, 01:09:49
    #34586976
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Такой вот хитрый сценарий
Уважаемые SYS-admins и разработчики!

Необходимо сделать следующий сценарий.

Если предыдущее завершение работы ОС было "неожиданным" - то перевести тип запуска некоторых служб в состояние "вручную" или "отключено".
...
Рейтинг: 0 / 0
10.06.2007, 13:07:25
    #34587108
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Такой вот хитрый сценарий
mayton, только учтите, что сервисы, видимо, все равно сперва запустятся. Разве если скрипт сделать сервисом и заставить раньше всех запуститься, может тогда прокатит.
Не очень точно Вы объяснили, надо ли просто сервисы отключить, или они каким-то образом не должны при следующей перезагрузке стартовать кровь из носу.

В общем случае я бы предложит анализировать Event Log и если встретится Event ID - 6008
как последний стартап - то предполагать, что было неожиданное отключение.

Код: plaintext
\n\nSet WMI=GetObject("winMgmts:")\n\nfunction isUnexpected\n\tREM возвращает true, если suhtdown unexpected\n\n\tdim result\n\tresult=false\n\nSet events=WMI.ExecQuery("Select * from Win32_NTLogEvent WHERE LogFile=\'System\'")\nfor each evt in events\n REM Event ID -  6008  - это unexpected shutdown\n REM прочитаем все события system до его появления или до нормального старта системы\n\tif evt.EventCode= 6008  then result=true \n\tif evt.EventCode= 6009  then exit for\nnext\n\n\nend function\n\n\nflag=isUnexpected()\n\nREM если все плохо - то будем отключать сервисы (например, IIS Admin поставим в Disabled)\n\nif flag then \n WScript.echo "Previous shutdown is unexpected"\n\n Set serv=WMI.ExecQuery("SELECT * FROM Win32_Service")\n\n\n for each sv in serv \n\tif(sv.Name="IISADMIN") then\n                result = sv.Change( , , , ,  "Disabled")\n\tend if\nnext\n    \nend if\n\n

Это если буквально то, что написали.
А если имеется в виду, что сервисы не должны вообще стартовать - я бы сделал так: после старта сервисов при загрузке скрипт переводит их в состояние disabled и т.п., а во время успешного завершении работы Windows - восстаналивает их статус запуска ( рассмотрено здесь)
...
Рейтинг: 0 / 0
10.06.2007, 13:22:29
    #34587116
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Такой вот хитрый сценарий
да, конечно, при проверке должен быть exit
Код: plaintext
1.
2.
3.
4.
if evt.EventCode= 6008  then
 result=true
 exit for 
end if

и еще надо на всякий посмотреть, в какой очередности events попадают в лог.
Ради этого свою машину не хочется подвергать unexpected shutdown лишний раз :)
...
Рейтинг: 0 / 0
10.06.2007, 14:22:27
    #34587147
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Такой вот хитрый сценарий
Спасибо. Буду пробовать.
...
Рейтинг: 0 / 0
Форумы / Windows [игнор отключен] [закрыт для гостей] / Такой вот хитрый сценарий / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]