Activer MS Defender en powershell
Activer MS Defender en powershell

Activer MS Defender en powershell

Introduction

Sécuriser Windows est un challenge et une nécessité. Pour un ordinateur personnel il est malheureusement rare de voir des configurations d’endurcissement avancées implémentées, qui sont devenues pourtant de réelles nécessités. On décrit plus bas un exemple d’automatisation de sécurisations (partie MS Defender, via script Powershell). Ce type de script est réutilisable pour de nombreuses applications.

Mise en place

On va activer deux options d’intérêt de Microsoft Defender via script Powershell :

  • AllowDatagramProcessingOnWinServer (Spécifie s’il faut activer l’inspection des connexions UDP sous Windows)
  • AllowNetworkProtectionOnWinServer (Spécifie s’il faut autoriser la protection du réseau à être définie sur Activé ou sur Mode Audit)

(1) Etape de prérequis : on vérifie de disposer des privilèges admin:

function Test-AdminPriv {
  # Check if running with administrative privileges
  if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    Write-Warning "This function requires administrative privileges. Please run PowerShell as an administrator."
    exit 1
  }
}

 

(2) on vérifie la configuration préalable:

function Test-Get-MpPreference-AllowDatagramProcessingOnWinServer{
  # Get Windows Defender preferences
  $mpPreference = Get-MpPreference  
  # Check if the AllowDatagramProcessingOnWinServer option is enabled
  if ($mpPreference.AllowDatagramProcessingOnWinServer -eq 1) {
    Write-Host "Get-MpPreference : AllowDatagramProcessingOnWinServer option is currently enabled in Windows Defender."
  }
  else {
    Write-Host "Get-MpPreference : AllowDatagramProcessingOnWinServer option is currently disabled in Windows Defender."
  }
}

 

(3)Finalement, on met en place la configuration via -MpPreference et active les fonctions :

function  Set-MpPreference-AllowDatagramProcessingOnWinServer{
  try {
    # Set Windows Defender preference
    Set-MpPreference -EnableNetworkProtection Enabled
    Write-Host "Set-MpPreference :  EnableNetworkProtection Enabled"
    Set-MpPreference -AllowDatagramProcessingOnWinServer $true
    $real_status = (Get-MpPreference).AllowDatagramProcessingOnWinServer
    Write-Host "Set-MpPreference :  AllowDatagramProcessingOnWinServer option set to $real_status in Windows Defender."
  }
  catch {
    Write-Error "Set-MpPreference : Failed to set AllowDatagramProcessingOnWinServer option to $true in Windows Defender. Error: $_"
  }
}
Test-AdminPriv
Test-Get-MpPreference-AllowDatagramProcessingOnWinServer
Set-MpPreference-AllowDatagramProcessingOnWinServer
Nota : on répétera le processus avec l’option AllowNetworkProtectionOnWinServer