Параметры командной строки для управления утилитой 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)

Ссылки