Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save serguk89/b0638484ef14e5c42334c689406f376d to your computer and use it in GitHub Desktop.
Save serguk89/b0638484ef14e5c42334c689406f376d to your computer and use it in GitHub Desktop.
Adds Windows Defender exclusions for developers (Visual Studio, JetBrains Rider, IntellIJ Idea, Git, MsBuild, dotnet, mono etc.)
$userPath = $env:USERPROFILE
$pathExclusions = New-Object System.Collections.ArrayList
$processExclusions = New-Object System.Collections.ArrayList
$pathExclusions.Add('C:\Windows\Microsoft.NET') > $null
$pathExclusions.Add('C:\Windows\assembly') > $null
$pathExclusions.Add($userPath + '\AppData\Local\Microsoft\VisualStudio') > $null
$pathExclusions.Add('C:\ProgramData\Microsoft\VisualStudio\Packages') > $null
$pathExclusions.Add('C:\Program Files (x86)\MSBuild') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft Visual Studio 14.0') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft Visual Studio 10.0') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft Visual Studio') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft SDKs\NuGetPackages') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft SDKs') > $null
# VS
$processExclusions.Add('vshost-clr2.exe') > $null
$processExclusions.Add('VSInitializer.exe') > $null
$processExclusions.Add('VSIXInstaller.exe') > $null
$processExclusions.Add('VSLaunchBrowser.exe') > $null
$processExclusions.Add('vsn.exe') > $null
$processExclusions.Add('VsRegEdit.exe') > $null
$processExclusions.Add('VSWebHandler.exe') > $null
$processExclusions.Add('VSWebLauncher.exe') > $null
$processExclusions.Add('XDesProc.exe') > $null
$processExclusions.Add('Blend.exe') > $null
$processExclusions.Add('DDConfigCA.exe') > $null
$processExclusions.Add('devenv.exe') > $null
$processExclusions.Add('FeedbackCollector.exe') > $null
$processExclusions.Add('Microsoft.VisualStudio.Web.Host.exe') > $null
$processExclusions.Add('mspdbsrv.exe') > $null
$processExclusions.Add('MSTest.exe') > $null
$processExclusions.Add('PerfWatson2.exe') > $null
$processExclusions.Add('Publicize.exe') > $null
$processExclusions.Add('QTAgent.exe') > $null
$processExclusions.Add('QTAgent_35.exe') > $null
$processExclusions.Add('QTAgent_40.exe') > $null
$processExclusions.Add('QTAgent32.exe') > $null
$processExclusions.Add('QTAgent32_35.exe') > $null
$processExclusions.Add('QTAgent32_40.exe') > $null
$processExclusions.Add('QTDCAgent.exe') > $null
$processExclusions.Add('QTDCAgent32.exe') > $null
$processExclusions.Add('StorePID.exe') > $null
$processExclusions.Add('T4VSHostProcess.exe') > $null
$processExclusions.Add('TailoredDeploy.exe') > $null
$processExclusions.Add('TCM.exe') > $null
$processExclusions.Add('TextTransform.exe') > $null
$processExclusions.Add('TfsLabConfig.exe') > $null
$processExclusions.Add('UserControlTestContainer.exe') > $null
$processExclusions.Add('vb7to8.exe') > $null
$processExclusions.Add('VcxprojReader.exe') > $null
$processExclusions.Add('VsDebugWERHelper.exe') > $null
$processExclusions.Add('VSFinalizer.exe') > $null
$processExclusions.Add('VsGa.exe') > $null
$processExclusions.Add('VSHiveStub.exe') > $null
$processExclusions.Add('vshost.exe') > $null
$processExclusions.Add('vshost32.exe') > $null
$processExclusions.Add('vshost32-clr2.exe') > $null
# VS Code
$processExclusions.Add('Code - Insiders.exe') > $null
# Runtimes, build tools
$processExclusions.Add('dotnet.exe') > $null
$processExclusions.Add('mono.exe') > $null
$processExclusions.Add('mono-sgen.exe') > $null
$processExclusions.Add('java.exe') > $null
$processExclusions.Add('java64.exe') > $null
$processExclusions.Add('msbuild.exe') > $null
$processExclusions.Add('node.exe') > $null
$processExclusions.Add('node.js') > $null
$processExclusions.Add('perfwatson2.exe') > $null
$processExclusions.Add('ServiceHub.Host.Node.x86.exe') > $null
$processExclusions.Add('vbcscompiler.exe') > $null
$processExclusions.Add('nuget.exe') > $null
# VCS
$processExclusions.Add('git.exe') > $null
# JetBrains stuff
$processExclusions.Add('runnerw.exe') > $null
$processExclusions.Add('runnerw64.exe') > $null
$processExclusions.Add('WinProcessListHelper.exe') > $null
$processExclusions.Add('elevator.exe') > $null
$processExclusions.Add('fsnotifier.exe') > $null
$processExclusions.Add('fsnotifier64.exe') > $null
$processExclusions.Add('launcher.exe') > $null
$processExclusions.Add('phpstorm.exe') > $null
$processExclusions.Add('phpstorm64.exe') > $null
Write-Host "This script will create Windows Defender exclusions for common folders and processes."
Write-Host ""
$projectsFolder = Read-Host 'What is the path to your Projects folder? (example: c:\projects)'
Write-Host ""
Write-Host "Adding Path Exclusion: " $projectsFolder
Add-MpPreference -ExclusionPath $projectsFolder
foreach ($exclusion in $pathExclusions)
{
Write-Host "Adding Path Exclusion: " $exclusion
Add-MpPreference -ExclusionPath $exclusion
}
foreach ($exclusion in $processExclusions)
{
Write-Host "Adding Process Exclusion: " $exclusion
Add-MpPreference -ExclusionProcess $exclusion
}
Write-Host ""
Write-Host "Your Exclusions:"
$prefs = Get-MpPreference
$prefs.ExclusionPath
$prefs.ExclusionProcess
Write-Host ""
Write-Host "Enjoy faster build times and coding!"
Write-Host ""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment