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

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

Previous pageReturn to chapter overviewNext page

Заготовка типового скрипта для сканирования множества ПК в сети:

 

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 у них находится в автозапуске и в случае чего можно убрать фильтр и включить их ПК в сканирование).