====== Каспер ====== [[https://support.kaspersky.ru/12573|Соответствие между названием релиза и номером версии в Kaspersky Endpoint Security 10 для Windows]]\\ [[https://www.youtube.com/playlist?list=PLQQwOgZzcgt0ZZXBYDwquzyA5LNxuRoGD|Technical training: Обучающие видео Kaspersky Endpoint Security для Бизнеса]] ===== MMC не удается инициализировать оснастку ===== Ошибка «MMC не удается инициализировать оснастку» в Kaspersky Security Center.\\ Решение: Remove-Item "$env:userprofile\AppData\Roaming\Microsoft\MMC\Kaspersky Security Center*" -Confirm:$false -Force https://support.kaspersky.ru/10665 ===== Установка агента через GPO ===== mst-файл создать нельзя, поэтому через батник: "\\ksc\KLSHARE\Packages\NetAgent_14.2.0.26967\exec\Kaspersky Network Agent.msi" /qn /l*vx %TEMP%\nag_inst.log SERVERADDRESS="ksc.example.com" DONT_USE_ANSWER_FILE=1 PRIVACYPOLICY=1 EULA=1 LAUNCHPROGRAM=1 https://support.kaspersky.com/KSC/14/ru-RU/92478.htm ===== Парсер отчёта xls из KSC ===== Приходится задействовать установленный Excel для конвертации в человеческий формат, т.к. отчёт в старом формате .xls. $path = "E:\temp\ksc-reports" $xls = dir "$path\*.xls" |sort CreationTime |select -last 1 # проверка, свежая ли выгрузка if ($xls.CreationTime -lt (get-date).AddDays(-1)) { Send-MailMessage -SmtpServer mail.domain.ru -From "support@domain.ru" -To "user@domain.ru" -Subject "Kaspersky Security Center - выгрузка отчёта старше 1 дня" -Body "

Последняя выгрузка была $(($xls.creationtime).ToString("dd.MM.yyyy в HH:mm"))

Путь: $($xls.fullname)

" -BodyAsHtml -Encoding UTF8 Exit } else { & "C:\Program Files (x86)\microsoft office\Office16\excelcnv.exe" -oice "$xls" "$($xls.FullName -replace '.xls','.xlsx')" gci "$path" |? CreationTime -lt (Get-Date).AddDays(-14) |remove-item -Force -Confirm:$false # cleanup } $xlsx = dir "$path\*.xlsx" |sort CreationTime |select -last 1 $period = (Import-Excel $xlsx -WorksheetName Summary -StartRow 4 -EndRow 4 -NoHeader).p1 $summary = Import-Excel $xlsx -WorksheetName Summary -StartRow 7 $details = Import-Excel $xlsx -WorksheetName Details # Общее количество экземпляров $cobj = ($summary |select -expand 'Опасных объектов' |measure -sum).sum $cfls = ($summary.'Различных файлов' |measure -sum).sum $cdev = ($summary.'Опасных устройств' |measure -sum).sum # Категории вредоносных объектов $callincidents = ($details).Count $cmailincidents = ($details.'Путь к файлу' |? { $_ -match 'outlook' -or $_ -match '.pst' -or $_ -match 'from:' }).Count $ccacheincidents = ($details.'Путь к файлу' |? { $_ -match 'Temporary Internet Files' -or $_ -match 'Firefox' -or $_ -match 'Chrome' -or $_ -match 'browser' }).Count $cfileincidents = ($details.'Путь к файлу' |? { $_ -notmatch 'outlook' -and $_ -notmatch '.pst' -and $_ -notmatch 'from:' -and $_ -notmatch 'Temporary Internet Files' -and $_ -notmatch 'Firefox' -and $_ -notmatch 'Chrome' -and $_ -notmatch 'browser' }).Count # Уникальных значений $udev = ($details.'Устройство' |sort -Unique).count $uobj = ($details.'Обнаруженный объект' |sort -Unique).count $uobjtype = ($details.'Тип объекта' |sort -Unique).count $uuser = ($details.'Учетная запись' |sort -Unique).count $ucomp = ($details.'Компонент' |sort -Unique).count $report = "

$period

Антивирус на ПК пользователей выявил

$cobj опасных объектов
$cfls различных файлов
$cdev опасных устройств

Всего инцидентов $callincidents, из которых

$cmailincidents заражённых почтовых сообщений (в т. ч. в архивных почтовых файлах)
$cfileincidents вредоносных файлов
$ccacheincidents вредоносных файлов из интернет-кэша

Подверглись действию вредоносных программ

$udev компьютеров
$uuser учётных записей

Обнаружено вредоносных программ

$uobj уникальных видов
$uobjtype уникальных типов
$ucomp компонентов защиты задействовано

Отчёт сформирован $((get-date).ToString()) скриптом $($PSScriptRoot + '\' + $MyInvocation.MyCommand) на компьютере $($env:COMPUTERNAME).

" Send-MailMessage -SmtpServer mail.domain.ru -From "support@domain.ru" -To "user@domain.ru" -Subject "Kaspersky Security Center - отчёт об угрозах" -Body "$report" -Encoding UTF8 -BodyAsHtml
++++ Старый вариант - прикручен костыль отправки из локального Outlook, т.к. сервер не имел возможности отправки просто через релей. | $path = "D:\share\ksc-reports\" $xls = dir "$path\*.xls" |sort CreationTime |select -last 1 $xlsbn = $xls.BaseName $csvsummary = "$path" + "$xlsbn" + "_Summary.csv" $csvdetails = "$path" + "$xlsbn" + "_Details.csv" # cleanup old reports first gci $path |? CreationTime -lt (Get-Date).AddDays(-14) |remove-item -Confirm:$false Function ExportWSToCSV ($excelFileName, $csvLoc) { $excelFile = "$path" + $excelFileName + ".xls" $E = New-Object -ComObject Excel.Application $E.Visible = $false $E.DisplayAlerts = $false $wb = $E.Workbooks.Open($excelFile) foreach ($ws in $wb.Worksheets) { $n = $excelFileName + "_" + $ws.Name $ws.SaveAs($csvLoc + $n + ".csv", 6) } $E.Quit() } ExportWSToCSV -excelFileName "$xlsbn" -csvLoc "$path" $period = (gc "$csvsummary" |select-string 'Период') -replace ',' $summary = (gc "$csvsummary" |select-string 'Обнаруженный объект' -Context 0, 65536) -replace '>' |ConvertFrom-Csv $details = gc "$csvdetails" |ConvertFrom-Csv # Overall $cobj = $summary |select -expand 'Опасных объектов' |measure -sum |select -expand sum $cfls = $summary |select -expand 'Различных файлов' |measure -sum |select -expand sum $cdev = $summary |select -expand 'Опасных устройств' |measure -sum |select -expand sum # Malware categories $callincidents = ($details).Count $cmailincidents = ($details |select -expand 'Путь к файлу' |? { $_ -match 'outlook' -or $_ -match '.pst' -or $_ -match 'from:' }).Count $ccacheincidents = ($details |select -expand 'Путь к файлу' |? { $_ -match 'Temporary Internet Files' -or $_ -match 'Firefox' -or $_ -match 'Chrome' -or $_ -match 'browser' }).Count $cfileincidents = ($details |select -expand 'Путь к файлу' |? { $_ -notmatch 'outlook' -and $_ -notmatch '.pst' -and $_ -notmatch 'from:' -and $_ -notmatch 'Temporary Internet Files' -and $_ -notmatch 'Firefox' -and $_ -notmatch 'Chrome' -and $_ -notmatch 'browser' }).Count # Unique values $udev = ($details |select -expand 'Устройство' |sort -Unique).count $uobj = ($details |select -expand 'Обнаруженный объект' |sort -Unique).count $uobjtype = ($details |select -expand 'Тип объекта' |sort -Unique).count $uuser = ($details |select -expand 'Учетная запись' |sort -Unique).count $ucomp = ($details |select -expand 'Компонент' |sort -Unique).count $mailbody = "$period Антивирус на ПК пользователей выявил $cobj опасных объектов $cfls различных файлов $cdev опасных устройств Всего инцидентов $callincidents, из которых $cmailincidents заражённых почтовых сообщений (в т. ч. в архивных почтовых файлах) $cfileincidents вредоносных файлов $ccacheincidents вредоносных файлов из интернет-кэша Подверглись действию вредоносных программ $udev компьютеров $uuser учётных записей Обнаружено вредоносных программ $uobj уникальных видов и $uobjtype уникальных типов $ucomp компонентов защиты задействовано" $olFolderDrafts = 16 $ol = New-Object -comObject Outlook.Application $ns = $ol.GetNameSpace("MAPI") # call the save method yo dave the email in the drafts folder $mail = $ol.CreateItem(0) $null = $Mail.Recipients.Add("123@domain.ru;456@domain.ru") $Mail.Subject = "Отчёт об угрозах Kaspersky Security Center" $Mail.Body = " $mailbody " $Mail.save() # get it back from drafts and update the body $drafts = $ns.GetDefaultFolder($olFolderDrafts) $draft = $drafts.Items | where {$_.subject -eq 'Отчёт об угрозах Kaspersky Security Center'} # $draft.body += "`n foo bar" $draft.save() # send the message $draft.Send() https://stackoverflow.com/questions/1453723/create-outlook-email-draft-using-powershell ++++ ===== Статистика из Kaspersky Security for Microsoft Exchange Servers ===== # https://help.kaspersky.com/ks4exchange/9.5/ru-ru/116182.htm Import-Module 'C:\Program Files (x86)\Kaspersky Lab\Kaspersky Security for Microsoft Exchange Servers\Kse.Powershell.dll' -DisableNameChecking $lastmonday = ((get-date).adddays(-$(((get-date).DayOfWeek.value__)+6))).Date $lastsunday = ($lastmonday.AddDays(7)).AddSeconds(-1) $srv = 'edge.domain.ru' $report = "

Kaspersky for Exchange - статистика c $($lastmonday.ToString()) по $($lastsunday.ToString())

" # Просмотр статистики работы модулей Антивируса и фильтрации вложений $avstat = Get-KSEAVServerStatistics -AntivirusRole Transport -From $lastmonday -to $lastsunday -ServerFqdn $srv $report += $avstat |select @{n='Всего объектов проверено';e={$_.TotalCheckedObjects}}, @{n='Чистых объектов';e={$_.CleanObjects}}, @{n='Заражено';e={$_.InfectedObjects}}, @{n='Вылечено';e={$_.DisinfectedObjects}}, @{n='Подозрительных объектов';e={$_.SuspiciousObjects}}, @{n='Отфильтровано вложений';e={$_.AttachmentFilteredObjects}}, @{n='Пропущено из-за ошибки лицензии';e={$_.SkippedByLicenseErrorObjects}}, @{n='Пропущено по тайм-ауту';e={$_.SkippedByTimeoutObjects}}, @{n='Пропущено из-за ошибок обработки';e={$_.SkippedByProcessingErrorObjects}} | ConvertTo-Html -PreContent '

Статистика работы модулей антивируса и фильтрации вложений

' -Fragment -As List # Просмотр статистики работы модуля Анти-Спам $spamstat = Get-KSEASServerStatistics -From $lastmonday -to $lastsunday -ServerFqdn $srv $report += $spamstat |select @{n='Всего сообщений проверено';e={$_.TotalCheckedMessages}}, @{n='Чистых сообщений';e={$_.CleanMessages}}, @{n='Спам';e={$_.SpamMessages}}, @{n='Вероятный спам';e={$_.ProbableSpamMessages}}, @{n='Формальное оповещение';e={$_.FormalMessages}}, @{n='В чёрном списке';e={$_.BlackListedMessages}}, @{n='Доверенные';e={$_.TrustedMessages}}, @{n='Массовые рассылки';e={$_.MassMailMessages}}, @{n='Фишинг';e={$_.PhishingMessages}}, @{n='Непроверенных';e={$_.NotCheckedMessages}} | ConvertTo-Html -PreContent '

Статистика работы модуля антиспама

' -Fragment -As List $report += "

Отчёт сформирован $((get-date).ToString()) скриптом $($PSScriptRoot + '\' + $MyInvocation.MyCommand) на компьютере $($env:COMPUTERNAME).

" Send-MailMessage -SmtpServer mail.domain.ru -From "support@domain.ru" -To "user1@domain.ru","user2@domain.ru","user3@domain.ru" -Subject "Kaspersky for Exchange - статистика за прошлую неделю" -Body "$report" -Encoding UTF8 -bodyashtml # Просмотр состояния защиты сервера Microsoft Exchange $status = Get-KSEServerStatus -ServerFqdn $srv $licexp = (($status.LicenseExpirationDate -as [datetime]) - (get-date)).days if ($licexp -lt 45) { Send-MailMessage -SmtpServer mail.domain.ru -From "support@domain.ru" -To "user1@domain.ru","user2@domain.ru","user3@domain.ru" -Subject "Kaspersky for Exchange - лицензия истекает" -Body "

Лицензия Kaspersky Security для Microsoft Exchange Servers на сервере $srv закончится менее чем через 45 дней.

Дата истечения лицензии: $(($status.LicenseExpirationDate).tostring())

" -Encoding UTF8 -bodyashtml }
===== Решение проблем ===== ==== Большой объём папки bases\cache ==== Исправление ожидается в рамках патча B для Kaspersky Security Center 11.\\ На текущий момент существует обходное решение: - Остановите службу Сервера администрирования (kladminserver), убедитесь, что процесс klfc.exe не запущен - Удалите в рассматриваемом каталоге файлы по маске cat_engine* - Запустите службу Сервера администрирования (kladminserver). https://community.kaspersky.com/produkty-kaspersky-dlya-biznesa-31/rost-papki-cache-posle-perehoda-na-ksc-11-3232 Stop-Service kladminserver -Confirm:$false Stop-Process klfc.exe -Force -Confirm:$false del "C:\ProgramData\KasperskyLab\adminkit\bases\cache\cat_engine*" Start-Service kladminserver