Управління Windows Defender за допомогою PowerShell

Windows Defender вперше з'явився як антивірусна утиліта від MS ще в Windows XP, і починаючи з Windows Vista він постійно присутній в операційних системах Windows в якості вбудованого засобу захисту від шкідників. У Windows 8 Defender був об'єднаний з іншим антивірусним продуктом - Microsoft Security Essentials, так що на даний момент він є повноцінним антивірусним рішенням.

Windows Defender досить продуктивний і не вимогливий до системних ресурсів, він може бути використаний не тільки на домашніх комп'ютерах, але і в мережі невеликих організацій. Антивірус можна оновлювати як з сайтів Microsoft, так і з внутрішнього WSUS сервера. Однак, основним плюсом Windows Defender є той факт, що він вже попередньо встановлено і активний в Windows, і практично не вимагає ручної донастройки.

Порада. На даний момент Windows Defender є частиною системи тільки на призначених для користувача ОС, і не доступний в Windows Server. Однак в предрелізе Windows Server 2016, Windows Defender може бути встановлений як окремий компонент сервера командою:

Install-WindowsFeature-Name Windows-Server-Antimalware

У більшість випадку Windows Defender добре працює і зі стандартними настройками, але в разі потреби їх можна змінити. Велика кількість налаштувань Defender можна змінити через PowerShell за допомогою спеціального модуля Defender. Вперше він з'явився в PowerShell 4.0 і розроблений спеціально для управління Windows Defender. Цей модуль містить 11 командлетів.

Повний список командлетів модуля можна вивести за допомогою команди:

Get-Command -Module Defender

  • Add-MpPreferenc
  • Get-MpComputerStatus
  • Get-MpPreference
  • Get-MpThreat
  • Get-MpThreatCatalog
  • Get-MpThreatDetection
  • Remove-MpPreference
  • Remove-MpThreat
  • Set-MpPreference
  • Start-MpScan
  • Update-MpSignature

Get-MpComputerStatus - дозволяє вивести поточний статус (включені опції, дату і версію антивірусних баз, час останнього сканування і т.д.)

Вивести поточні настройки Defender може командлет Get-MpPreference, щоб їх змінити використовується - Set-MpPreference.

Наприклад, нам потрібно дозволити перевірку зовнішніх USB накопичувачів. Отримаємо поточні настройки командою:

Get-MpPreference | fl disable *

Як ви бачить сканування USB накопичувачів відключено (DisableRemovableDriveScanning = True). Включимо сканування командою:

Set-MpPreference -DisableRemovableDriveScanning $ false

Також, щоб змінити налаштування антивірусу можна використовувати командлети Add-MpPreference і Remove-MpPreference. Наприклад, додамо кілька папок в список виключень антивіруса (сканування в них не буде виконуватися):

Add-MpPreference -ExclusionPath C: \ Video, C: \ install

Повний список виключень Windows Defender можна вивести так:

Get-MpPreference | fl excl *

Видалимо конкретну папку зі списку винятків:

Remove-MpPreference -ExclusionPath C: \ install

Для оновлення антивірусних сигнатур в базі використовується команда Update-MpSignature. За допомогою аргументу UpdateSource можна вказати джерело оновлень.

Можливі такі джерела оновлень:

  • MicrosoftUpdateServer - сервера оновлень MS в інтернеті
  • MMPC - Microsoft Malware Protection Center
  • FileShares - мережева папка
  • InternalDefinitionUpdateServer - внутрішній WSUS сервер

Для поновлення з мережевої папки потрібно попередньо завантажити файли з сигнатурами баз з сайту https://www.microsoft.com/security/portal/definitions/adl.aspx і помістити в мережевий каталог. Щоб оновити бази Defender з мережевого каталогу, потрібно задати його UNC шлях:

Set-MpPreference -SignatureDefinitionUpdateFileSharesSources \\ FileShare1 \ Updates

Запустимо оновлення:

Update-MpSignature -UpdateSource FileShares
Update-MpSignature

Виконати сканування системи можна за допомогою командлета Start-MpScan. Аргумент ScanType дозволяє вказати один з трьох режимів сканування.

  • FullScan - повне сканування всіх файлів на комп'ютері, в тому числі реєстру і запушених програм
  • QuickScan - швидкий аналіз найбільш частих місць, які можуть бути інфіковані
  • CustomScan - користувач сам може вказати диски і папки для сканування.

Наприклад, щоб просканувати каталог "C: \ Program Files":

Start-MpScan -ScanType CustomScan -ScanPath "C: \ Program Files"

Все командлети модуля Defender можуть бути використані для управління як локальним, так і віддаленим комп'ютером. Для підключення до віддаленого комп'ютера потрібно використовувати опцію CimSession. Наприклад, щоб отримати час останнього сканування на віддаленому комп'ютері з ім'ям msk-wks-1, запустіть таку команду (WimRM на віддаленому ПК повинен бути включений):

$ Session = NewCimSession -ComputerName msk-wks-1
Get-MpComputerStatus -CimSession $ session | fl fullscan *

Якщо потрібно відключити захист Defender в реальному часі:

Set-MpPreference -DisableRealtimeMonitoring $ true

Повністю відключити Windows Defender на комп'ютері можна, додавши до реєстру ключ за допомогою команди PowerShell:

New-ItemProperty -Path "HKLM: \ SOFTWARE \ Policies \ Microsoft \ Windows Defender" -Name DisableAntiSpyware -Value 1 -PropertyType DWORD -Force