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

Название темы: Выгружать программы!
Показать сообщение отдельно

Аватара для hasherfrog

Старый параноик


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

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


Я не буду сейчас подробно описывать аргументы командной строки для checker.bat Думаю, Вы сами разберетесь. Просто запустите, он Вам всё напишет. По поводу же аргументов, настраиваемых в голове скрипта я объясню подробно:
ADMINHOST - имя машины администратора, на которой запускается следящий скрипт.
ADMINNAME - имя (логин) администратора
ADMINPSWD - пароль для логина администратора. может не задаватьсяявно (см. примечания по безовасности)
STASKNAME - имя задания, под которым будет крутится следящий скрипт
STASKFILE - имя батника следящего скрипта (check_hosts.bat)
STASKLOGS - имя лог-файла, куда сливается некоторая информация для админа
STASKTIME - интервал в минутах между проверками
STASKHOME - директория, где предполагается держать все файлы-скрипты, логи и т.д.

Подводные камни, связанные с особенностями виндовых приложений:
1) По поводу замены строковых ресурсов в tasklist.exe. Я посмотрел, String Table\15\1049\226 надо привести в соответствие String Table\16\1049\251 и String Table\16\1049\252, т.е. в String Table\15\1049\226 должна быть строка "Работает|Не отвечает".
2) Ещё один глюк, связанный с errorlevel. Программа schtasks не устанавливает errorlevel при ошибке авторизации. Это может привести к некорректной работе скрипта checker.bat. Для того, чтобы обойти данный баг, я включил проверку назначенного задания путём его немедленного вызова. Этим, кстати, убивается ещё один заяц - сразу после старта скрипта обновляется состояние файлов .offlinde и .bagguy.

Проблемы безопасности:
1) Есть один спорный момент - включение пароля администратора файл скрипта checker.bat или его запрос у пользователя. Первый вариант более удобен, второй - более безопасен. Использование ключа /p вместе с командой set даёт возможность админу задать пароль по ходу работы скритпа. Но! Введённый пароль отображается без звездочек.  Чтобы скрыть пароль совсем, надо убрать задание пароля через set /p и тогда команда shctasks будет спрашивать его "лично". Неприятность тогда будет в том, что пароль придётся задавать дважды при ошибке запуска скрипта.
2) Всю папку SHTASKHOME со скриптами, логами, tasklist2.exe и т.д. необходимо сделать доступной только администратору. Это не позволит хитрым пользователям блокировать некоторые моменты работы скрипта, связанные с созданием и использованием файлов-блокираторов повторных сообщений. Иначе, задав свойства read-only для некоторых .badguy-файлов пользователь неявно выключит себя из показываемых админу сообщений.
3) По поводу ключа stop. У меня почему-то получается, что снятие задания с выполнения возможно от имени любого пользователя. Возможно это потому что я админ? Если же это не только привелегия админа, то придётся подумать об оеспечении дополнительных мер безопасности. Но уж папку SHTASKHOME не забудьте закрыть.
4) Приведённый скрипт check_host.bat проверяет службу. При необходимости его можно перепрофилировать для проверки конкретного приложения. Что касается службы, есть странный момент. Если службу снимают с выполнения остановкой, это ловится. Если же службе сказать "приостановить" - это никак не отражается на tasklist. Он по-прежнему будет писать, что всё работает. Данная особенность ещё ждёт своего исследователя.
5) Ещё один вопрос остался без проверки. Неизвестно, сработает ли tasklist для всех машин - есть ведь блокировка rpc, локальные политики безопасности и т.д. Я точно знаю, что psexec не мог пробиться на некоторые машины. Почему, пока не ясно. И поведёт ли себя tasklist так же капризно, тоже не ясно.

Некоторые особенности вообще:
1) Ведение логов в скрипте несколько хаотично организовано. То пишеться лог, то не пишется, то удаляется. Это связано с тем, что я не знаю особенностей конкретной задачи и Вашего уровня "параноидальности". Организуйте всё как Вам будет удобно. Мне и так нормально.
2) По поводу огромного количества @ в скриптах. Да, я знаю про echo on/off. Просто так легче отлаживать скрипты - убрал @ где нужно, посмотрел эхо, потом вернул @ на место. Писать echo on, потом убирать... В общем, кто знает, тот поймёт.
3) Ключ reset в скрипте checker.bat не вызывает немедленную проверку хостов. Оно продолжается по расписанию, поэтому иногда будет пауза до появления первых сообщений об отключенных машинах и т.д. Для немедленного перезапуска задания используйте start, это почти как restart. Хотите, добавьте этот ключ в скрипт.
4) Ссылка на www.forum.oszone.net при использовании данных в коммерческих целях обязательна.

Жду Ваших замечаний...


Отправлено: 14:46, 13-05-2004 | #10

Название темы: Выгружать программы!