Заготовка скрипта для сканирования сети
Заготовка типового скрипта для сканирования множества ПК в сети:
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.
В примере использовались: ActivateWatchDog, AddToLog, ExecuteAutoQuarantine, ExitAVZ, GetAVZDirectory, GetComputerName, RunScan, SaveLog, SetupAVZ, Sleep
Параметры запуска 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