quickstarts/microsoft.devcenter/devbox-ready-to-code-image/tools/artifacts/windows-configure-user-tasks/FirstLogonTasks/add-defender-exclusions.ps1 (33 lines of code) (raw):

<# .DESCRIPTION Add Windows Defender exclusion that can access user local environment variables. Related: https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/configure-extension-file-exclusions-microsoft-defender-antivirus?view=o365-worldwide#system-environment-variables .EXAMPLE Sample Bicep snippet for adding the task via Dev Box Image Templates: { Task: 'add-defender-exclusions' Parameters: { DirsToExclude: [ '%TEMP%\\CloudStore' '%TEMP%\\NuGetScratch' '%TEMP%\\MSBuildTemp%USERNAME%' ] } #> param( [Parameter(Mandatory = $true)][PSObject] $TaskParams ) $ErrorActionPreference = "Stop" Set-StrictMode -Version Latest try { foreach ($dir in $TaskParams.DirsToExclude) { $expandedDir = [Environment]::ExpandEnvironmentVariables($dir) Add-MpPreference -ExclusionPath $expandedDir Write-Host "Added Windows Defender exlusion for $expandedDir" } } catch { Write-Host "!!! [WARN] Unhandled exception (will be ignored):" Write-Host -Object $_ Write-Host -Object $_.ScriptStackTrace }