Kaspersky Virus Removal Tool - Сканирование без взаимодействия с пользователем
30 May 2018
local_offer
Windows
Параметры командной строки для управления утилитой Kaspersky Virus Removal Tool
Для работы с Kaspersky Virus Removal Tool вы можете использовать следующие параметры:
-trace — включить сбор трассировок.
-freboot — включить расширенный режим работы.
-d <путь_папки> — указать папку для отчетов, карантина и трассировок.
-accepteula — автоматическое согласие с Лицензионным соглашением и Политикой безопасности.
-silent — запуск сканирования без графического интерфейса.
-adinsilent — запуск лечения активного заражения в режиме сканировании без графического интерфейса.
-processlevel <level> — задать уровень опасности объектов, которые будут нейтрализованы в режиме сканировании без графического интерфейса:
1 — нейтрализовать объекты с высоким уровнем опасности;
2 — нейтрализовать объекты с высоким и среднем уровнем опасности;
3 — нейтрализовать объекты с высоким, средним и низким уровнем опасности.
-fixednames — отключить рандомизацию имен файлов.
-en — запуск утилиты в английской локализации.
-moddirpath — указывает папку, из которой нужно брать антивирусные базы.
-dontcryptsupportinfo — не шифровать трассировки/отчеты/дампы.
-fupdate — утилита выводит предложение обновить себя.
Обновление и сканирование в тихом режиме
Скрипт Scan-KVRT.ps1:
<#
.SYNOPSIS
Сканирование на вирусы с помощью утилиты Kaspersky Virus Removal Tool
.DESCRIPTION
.EXAMPLE
Scan-KVRT.ps1
.LINK
https://webnote.satin-pl.ru/2018/05/30/kvrt_silent/
.NOTES
Version: 0.1
Author: Pavel Satin
Email: plsatin@yandex.ru
Creation Date: 30.05.2018
Purpose/Change: Initial script development
#>
Param(
[Parameter(Mandatory = $false)]
[Boolean]$UpdateBases = $true
)
$returnStateOK = 0
$returnStateWarning = 1
$returnStateCritical = 2
$returnStateUnknown = 3
#$ErrorActionPreference = "SilentlyContinue"
$errorstr = ""
$KVRTPath = "C:\ProgramData\icinga2\KVRT"
############################# updater.ini #############################
$updaterini = @"
[ConnectionSettings]
TimeoutConnection=60
UsePassiveFtpMode=true
UseProxyServer=false
AutomaticallyDetectProxyServerSettings=true
UseSpecifiedProxyServerSettings=false
AddressProxyServer=
PortProxyServer=8080
UseAuthenticationProxyServer=false
UserNameProxyServer=
PasswordProxyServer=
ByPassProxyServer=true
DownloadPatches=false
[AdditionalSettings]
CreateCrashDumpFile=true
TurnTrace=false
AddIconToTray=true
MinimizeProgramUponTermination=true
AnimateIcon=true
ReturnCodeDesc=All_files_are_up-to-date
[ReportSettings]
DisplayReportsOnScreen=false
SaveReportsToFile=true
AppendToPreviousFile=true
SizeLogFileValue=104852
ReportFileName=C:\\ProgramData\\icinga2\\KVRT\\UU\\Update-Report.log
DeleteIfSize=true
DeleteIfNumDay=false
NoChangeLogFile=false
NumDayLifeLOgFileValue=7
[DirectoriesSettings]
MoveToCurrentFolder=false
MoveToCustomFolder=true
UpdatesFolder=C:\\ProgramData\\icinga2\\KVRT\\UU\\Updates
TempFolder=C:\\ProgramData\\icinga2\\KVRT\\UU\\Temp
ClearTempFolder=false
[UpdatesSourceSettings]
SourceCustomPath=
SourceCustom=false
SourceKlabServer=true
[DownloadingSettings]
DownloadDataBasesAndModules=true
[ComponentSettings]
DownloadAllDatabases=false
DownloadSelectedComponents=true
ApplicationsOs=1
KasperskyFreeAntivirus_19_0=true
[ShedulerSettings]
LastUpdate=@Variant(\0\0\0\x10\0%\x82\x9d\x3\xcd\xda\x32\xff)
ShedulerType=0
PeriodValue=1
UseTime=true
Time=@Variant(\0\0\0\xf\0\0\0\0)
Monday=true
Tuesday=true
Wednesday=true
Thursday=true
Friday=true
Saturday=true
Sunday=true
[SdkSettings]
PrimaryIndexFileName=u0607g.xml
PrimaryIndexRelativeUrlPath=index
LicensePath=
SimpleModeLicensing=true
"@
############################# updater.ini #############################
#Замер времени исполнения скрипта
$watch = [System.Diagnostics.Stopwatch]::StartNew()
$watch.Start() #Запуск таймера
if (!(Test-Path $KVRTPath)) {
Try {
Write-Verbose "Создаем директории"
New-Item -ErrorAction Ignore -ItemType directory -Path $KVRTPath
New-Item -ErrorAction Ignore -ItemType directory -Path "$KVRTPath\UU"
$KVRTurl = "http://devbuilds.kaspersky-labs.com/devbuilds/KVRT/latest/full/KVRT.exe"
Write-Verbose "Загружаем Kaspersky Virus Removal Tool из: $KVRTurl"
Invoke-WebRequest -URI $KVRTurl -UseBasicParsing -OutFile "$KVRTPath\KVRT.exe"
$UUurl = "http://products.kaspersky-labs.com/russian/special/kasp_updater/updateutility_win_3.1.0.25_release_ru.zip"
Write-Verbose "Загружаем Kaspersky Update Utility 3.0 из: $UUurl"
Invoke-WebRequest -URI $UUurl -UseBasicParsing -OutFile "$KVRTPath\updateutility_win_3.1.0.25_release_ru.zip"
Write-Verbose "Распаковываем архив с Kaspersky Update Utility 3.0 в $KVRTPath\UU"
Expand-Archive -Path "$KVRTPath\updateutility_win_3.1.0.25_release_ru.zip" -DestinationPath "$KVRTPath\UU" -Force
Remove-Item -Path "$KVRTPath\updateutility_win_3.1.0.25_release_ru.zip" -Force
} catch [System.Exception] {
$errorstr = $_.Exception.toString()
Write-Host $errorstr
[System.Environment]::Exit($returnStateCritical)
}
}
if ($UpdateBases) {
Write-Verbose "Новый файл конфигурации Kaspersky Update Utility 3.0"
$updaterini -replace '\n', "`r`n" | Out-File -FilePath "$KVRTPath\UU\updater.ini" -Force -Encoding ascii
Write-Verbose "Запускаем обновление антивирусных определений ..."
$resultUU = & "$KVRTPath\UU\UpdateUtility-Console.exe" -u -s -r -o "$KVRTPath\UU\updater.ini"
}
$scannowDate = Get-Date -Format "yyyyMMdd"
if (!(Test-Path "$KVRTPath\$scannowDate")) {
New-Item -ErrorAction Ignore -ItemType directory -Path "$KVRTPath\$scannowDate"
}
Write-Verbose "Запускаем сканирование ..."
$resultScan = & "$KVRTPath\KVRT.exe" -d "$KVRTPath\$scannowDate" -accepteula -silent -processlevel 1 -dontcryptsupportinfo -moddirpath "$KVRTPath\UU\Updates"
Write-Host "OK - AV scan started"
$watch.Stop() #Остановка таймера
Write-Host $watch.Elapsed #Время выполнения
Write-Host (Get-Date)
Write-Host "По окончанию сканирования, результаты можно будет посмотреть в каталоге $KVRTPath\$scannowDate\Reports"
[System.Environment]::Exit($returnStateOK)