AVZ 5. Руководство пользователя
×

Заготовка скрипта для сканирования сети

Заготовка типового скрипта для сканирования множества ПК в сети:
 
begin
  // Проверка - блокировки запуска
  if pos('первые буквы имени', GetComputerName) = 1 then
    ExitAVZ;
  if GetComputerName = 'имя1' then
    ExitAVZ;
  if GetComputerName = 'имя2' then
    ExitAVZ;
  // Пауза на 50 сек, чтобы не мешать автозагрузке
  Sleep(50);
  // Настройка AVZ
  SetupAVZ('UseQuarantine=Y'); // Включить карантин
  SetupAVZ('nw=Y'); // Сетевой режим карантина
  SetupAVZ('Priority=-1'); // Пониженный приоритет
  SetupAVZ('EvLevel=3'); // Эвристика на максимум
  SetupAVZ('ExtEvCheck=Y'); // Расширенный анализ включен
  SetupAVZ('DelVir=Y'); // Включить лечение
  // Активирование сторожевого таймера на 15 минут
  ActivateWatchDog(60 * 15);
  // Запуск сканирования
  RunScan;
  // Добавление данных о имени ПК
  AddToLog('---------------');
  AddToLog('Протокол с компьютера '+GetComputerName);
  AddToLog('Путь к AVZ = ' + GetAVZDirectory);
  // Автокарантин
  ExecuteAutoQuarantine;
  // Сохранение протокола
  SaveLog(GetAVZDirectory+'\LOG\'+GetComputerName+'_ log.txt');
  // Завершение работы AVZ
  ExitAVZ;
end.
 
 
 
Параметры запуска AVZ в этом случае:
\\my_server\AVZ\avz.exe Priority=-1 nw=Y nq=Y HiddenMode=2 Script=\\my_server\AVZ\netscan.avz
 
при этом предполагается, что AVZ находится в папке \\my_server\AVZ, а скрипт сохранен в файле netscan.avz.
Некоторые комментарии по скрипту и параметрам запуска:
· Priority=-1 - запускает AVZ с пониженным приоритетом, чтобы он не мешал работе компьютера. Этот ключ дублируется в скрипте и командной строке и в принципе не обязателен в случае сканирования современных ПК
· nw=Y - аналогично, дублируется в командной строке и скрипте (дублирование это не обязательно, достаточно в одном месте). Этот ключ переключает карантин в "сетевой режим" - в нем в папке Quarantine появляется еще один уровень - по сетевому имени компьютера
· HiddenMode=2 - запуск AVZ в скрытом режиме - в трее на время сканирования видна иконка AVZ, но доступ пользователя к органам управления AVZ-ом блокирован. Папку Quarantine необходимо предварительно создать и выдать пользователям права на запись в нее
· SaveLog(GetAVZDirectory+'\LOG\'+GetComputerName+'_ log.txt'); - в данном случае сохранение протокола идет в рабочем каталоге AVZ, причем протокол содержит в имени имя компьютера. Папку LOG необходимо предварительно создать и выдать пользователям права на запись в нее
· Вызов ExecuteAutoQuarantine; в скрипте для обычного сканирования следует закомментировать - эта функция собирает все файлы, находящиеся в памяти или автозапуске и не опознанные как безопасные и системные. Сбор таких файлов удобен для их последующей проверки несколькими антивирусами
· Проверки вида "if pos('первые буквы имени', GetComputerName) = 1 then ExitAVZ;" и "if GetComputerName = 'имя2' then ExitAVZ;" естественно не обязательны  и позволяют исключать из сканирования компьютеры с заданными сетевыми именами. Это удобно для отключения ежедневного сканирования компьютеров администраторов сети и IT-специалистов (но при этом AVZ у них находится в автозапуске и в случае чего можно убрать фильтр и включить их ПК в сканирование).
 
Данный пример является простым, более сложный скрипт позволяет выполнять контроль за ходом исследования, отправлять данные по FTP и принимать настройки через командную строку - см. Сканирование ПК и отправка результатов по FTP