Skip to content

Instantly share code, notes, and snippets.

@jsreynolds
Last active April 30, 2022 13:37
Show Gist options
  • Save jsreynolds/d486068c3ff8925140a1c0a7fe64f8fb to your computer and use it in GitHub Desktop.
Save jsreynolds/d486068c3ff8925140a1c0a7fe64f8fb to your computer and use it in GitHub Desktop.
Windows Defender Coding Exclusions
# Run as admin!
# Note you can run more than once - it will not create duplicates
# Based off of https://gist.github.com/dknoodle
$userPath = $env:USERPROFILE
$pathExclusions = New-Object System.Collections.ArrayList
$processExclusions = New-Object System.Collections.ArrayList
# Visual Studio 2019
$pathExclusions.Add($userPath + '\AppData\Local\Microsoft\VisualStudio') > $null
$pathExclusions.Add($userPath + '\AppData\Local\Microsoft\VisualStudio Services') > $null
$pathExclusions.Add('C:\Program Files (x86)\MSBuild') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft.Net') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft ASP.Net') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft SDKs') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft SDKs\NuGetPackages') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft SQL Server') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft SQL Server Management Studio 18') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft Silverlight') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft Visual Studio 10.0') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft Visual Studio 11.0') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft Visual Studio 12.0') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft Visual Studio 14.0') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft Visual Studio') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft WCF Data Services') > $null
$pathExclusions.Add('C:\Program Files (x86)\Microsoft Web Tools') > $null
$pathExclusions.Add('C:\Program Files\IIS Express') > $null
$pathExclusions.Add('C:\Program Files\Microsoft Analysis Services') > $null
$pathExclusions.Add('C:\Program Files\Microsoft SDKs') > $null
$pathExclusions.Add('C:\Program Files\Microsoft SQL Server') > $null
$pathExclusions.Add('C:\Program Files\MSBuild') > $null
$pathExclusions.Add('C:\ProgramData\Microsoft\VisualStudio\Packages') > $null
# $pathExclusions.Add('C:\Windows\Microsoft.NET') > $null
# $pathExclusions.Add('C:\Windows\assembly') > $null
$processExclusions.Add('devenv.exe') > $null
$processExclusions.Add('dotnet.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
# VS Code
$pathExclusions.Add($userPath + '\AppData\Local\Programs\Microsoft VS Code') > $null
$pathExclusions.Add($userPath + '\AppData\Local\Programs\Azure Data Studio') > $null
$processExclusions.Add('Code.exe') > $null
$processExclusions.Add('CodeHelper.exe') > $null
# Android Studio 4.x
$pathExclusions.Add($userPath + '\.AndroidStudio4.0') > $null
# Jetbrains
# https://intellij-support.jetbrains.com/hc/en-us/articles/360005028939-Slow-startup-on-Windows-splash-screen-appears-in-more-than-20-seconds
# https://rider-support.jetbrains.com/hc/en-us/articles/360000797440-Speeding-up-Rider-on-Windows
$pathExclusions.Add($userPath + '\.gradle') > $null
$pathExclusions.Add($userPath + '\AppData\Local\JetBrains') > $null
$pathExclusions.Add($userPath + '\AppData\Roaming\JetBrains') > $null
$processExclusions.Add('JetBrains.ReSharper.Host64.exe') > $null
$processExclusions.Add('fsnotifier.exe') > $null
$processExclusions.Add('fsnotifier64.exe') > $null
$processExclusions.Add('clion64.exe') > $null
$processExclusions.Add('datagrip64.exe') > $null
$processExclusions.Add('goland64.exe') > $null
$processExclusions.Add('phpstorm64.exe') > $null
$processExclusions.Add('pycharm64.exe') > $null
$processExclusions.Add('rider64.exe') > $null
$processExclusions.Add('rubymine64.exe') > $null
$processExclusions.Add('studio64.exe') > $null
$processExclusions.Add('webstorm64.exe') > $null
# Jetbrains configs
# Note that they also recommend excluding your config paths, which are something like
# C:\Users\yourname\.Rider2019.x
# Adjust below for various version changes
$pathExclusions.Add($userPath + '\.DataGrip2019.2') > $null
$pathExclusions.Add($userPath + '\.GoLand2019.2') > $null
$pathExclusions.Add($userPath + '\.IntelliJIdea2019.3') > $null
$pathExclusions.Add($userPath + '\.PyCharm2019.2') > $null
$pathExclusions.Add($userPath + '\.Rider2019.2') > $null
$pathExclusions.Add($userPath + '\.WebStorm2019.2') > $null
# XYplorer which I use 100% of the time
$pathExclusions.Add($userPath + '\AppData\Roaming\XYplorer') > $null
$pathExclusions.Add($userPath + 'C:\Program Files (x86)\XYplorer') > $null
Write-Host "This script will create Windows Defender exclusions for common Visual Studio 2019 / VS Code / JetBrains 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 ""
@Romanicus
Copy link

Cool script, thanks. Is there a reason why Jetbrains IntelliJ is not excluded as a process (idea64.exe)?

@jsreynolds
Copy link
Author

@Romanicus thanks. Nope, no reason other than I probably didn't have it installed at the time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment