Спустя некоторое время после эксплуатации описанной ранее процедуры обновления выявился один существенный недостаток, как выяснилось, т.н. black-листы включаются в архивы с обновлениями для баз, и, поэтому, если даже вы проявляете должную аккуратность и не показываете производителю антивируса, что пользуетесь тем или иным ключем, сама программа, при обновлении из локальной папки проверяет а не забанен ли ваш ключик и, в случае выяснения, что он входит в список "плохих" ключей - отказывается работать. Вот почему мне пришлось поднапрячься и найти еще несколько новых ключей, а кроме того некоторым образом изменить сценарий обновления, чтобы black-лист оставался неизменным (а именно - я просто с заменой файлов копирую из старого архива файл "black.lst" в содержимое свеже распакованного архива обновлений). Для автоматизации процесса обновления я просто создал внутри своего каталога, откуда обновляется антивирус дополнительную папку под именем "over" и чуть-чуть модифицировал сам сценарий обновления kav7_update.cmd, теперь для ежедневного обновления запускайте его с параметрами /update_type daily (kav7_update.cmd /update_type daily):
@echo off
rem ------------------------------------
rem 1. variables setup
set AVPCOM="C:\Program Files\KasperskyVirus7\avp.com"
set AVPFTP="ftp://ftp.kaspersky.com/zips/"
set UPDATE_TYPE=none
set SKIP=no
set PAUSE=no
set SHOWCONF=no
rem ------------------------------------
rem 2. command line argments
:flashback
if (%1)==() goto exit_loop
if (%1)==(/update_type) set UPDATE_TYPE=%2
if (%1)==(/update_type) shift
if (%1)==(/skip) set SKIP=%2
if (%1)==(/skip) shift
if (%1)==(/pause) set PAUSE=yes
if (%1)==(/showconfig) set SHOWCONF=yes
shift
goto flashback
:exit_loop
rem ------------------------------------
rem 3. app start
echo [-----------------------------------------------------------------------]
echo [ Kaspersky quite simple automate update ]
echo [-----------------------------------------------------------------------]
if {%UPDATE_TYPE%}=={none} goto usage
:start
echo [ call start(!
e:
cd %DB%\KAV\
if (%UPDATE_TYPE%)==(cumul) goto clean_please
goto skip_clean
:clean_please
del /Q *.avc 2> nul
del /Q *.ini 2> nul
del /Q *.xml 2> nul
del /Q *.set 2> nul
del /Q *.lst 2> nul
del /Q *.cfg 2> nul
del /Q *.txt 2> nul
del /Q *.dt 2> nul
del /Q *.klb 2> nul
del /Q *.vnd 2> nul
del /Q *.mhk 2> nul
:skip_clean
if {%SKIP%}=={download} goto skip_down
wget %AVPFTP%av-i386-%UPDATE_TYPE%.zip -O %UPDATE_TYPE%_%DATE%.zip
unzip -o %UPDATE_TYPE%_%DATE%.zip > nul
xcopy over\black.lst . /y
:skip_down
if {%SKIP%}=={update} goto end
%AVPCOM% UPDATE
goto end
:usage
echo [ usage: ]
echo [ kav7_update.cmd /option1 value1 /option2 value2 .. /optionN valueN ]
echo [ ]
echo [ options are: ]
echo [ update_type - possible values are: daily, weekly or cumul ]
echo [ this will change archive type (name) of download file ]
echo [ skip - download or update, if something go wrong you can ]
echo [ skip download or update operation (for debug users) ]
echo [ pause - after all operations complete, by default windows ]
echo [ closes console window and you can not see output, ]
echo [ yo see it - set this parameter on script execution ]
echo [ show_config - tell script to list configuration options ]
if %SHOWCONF%==yes goto show_config
goto donotshowconf
:show_config
echo [ --------------------------------------------------------------------- ]
echo [ current execution options are: ]
echo [ ]
echo [ AVPCOM = %AVPCOM%
echo [ AVPFTP = %AVPFTP%
echo [ UPDATE_TYPE = %UPDATE_TYPE%
echo [ SKIP = %SKIP%
echo [ PAUSE = %PAUSE%
echo [ SHOWCONF = %SHOWCONF%
:donotshowconf
echo [_______________________________________________________________________]
pause > nul
goto :cmd_end
:end
echo [ end!)
echo [_______________________________________________________________________]
rem set ftp_proxy=http://10.20.80.124:3128
if {%PAUSE%}=={yes} goto do_pause
goto cmd_end
:do_pause
pause
:cmd_end
не забудьте изменить путь к файлу AVP.COM который я использую для обновления программы.

0 коммент.:
Отправить комментарий