136 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
# Verifies that script is running on Windows 10 or greater
 | 
						|
function Check-IsWindows10
 | 
						|
{
 | 
						|
    if ([System.Environment]::OSVersion.Version.Major -ge "10") 
 | 
						|
    {
 | 
						|
        Write-Output $true
 | 
						|
    }
 | 
						|
    else
 | 
						|
    {
 | 
						|
        Write-Output $false
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
# Verifies that script is running on Windows 10 1709 or greater
 | 
						|
function Check-IsWindows10-1709
 | 
						|
{
 | 
						|
    if ([System.Environment]::OSVersion.Version.Minor -ge "16299") 
 | 
						|
    {
 | 
						|
        Write-Output $true
 | 
						|
    }
 | 
						|
    else
 | 
						|
    {
 | 
						|
        Write-Output $false
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
function SetRegistryKey([string]$key, [int]$value)
 | 
						|
{
 | 
						|
    #Editing Windows Defender settings AV via registry is NOT supported. This is a scripting workaround instead of using Group Policy or SCCM for Windows 10 version 1703
 | 
						|
    $amRegistryPath = "HKLM:\Software\Policies\Microsoft\Microsoft Antimalware\MpEngine"
 | 
						|
    $wdRegistryPath = "HKLM:\Software\Policies\Microsoft\Windows Defender\MpEngine"
 | 
						|
    $regPathToUse = $wdRegistryPath #Default to WD path
 | 
						|
    if (Test-Path $amRegistryPath)
 | 
						|
    {
 | 
						|
        $regPathToUse = $amRegistryPath
 | 
						|
    }
 | 
						|
    New-ItemProperty -Path $regPathToUse -Name $key -Value $value -PropertyType DWORD -Force | Out-Null
 | 
						|
} 
 | 
						|
 | 
						|
#### Setup Windows Defender Secure Settings
 | 
						|
 | 
						|
# Start Windows Defender Service
 | 
						|
Set-Service -Name "WinDefend" -Status running -StartupType automatic
 | 
						|
Set-Service -Name "WdNisSvc" -Status running -StartupType automatic
 | 
						|
 | 
						|
#  Enable real-time monitoring
 | 
						|
Set-MpPreference -DisableRealtimeMonitoring 0
 | 
						|
 | 
						|
# Enable cloud-deliveredprotection# 
 | 
						|
Set-MpPreference -MAPSReporting Advanced
 | 
						|
 | 
						|
# Enable sample submission# 
 | 
						|
Set-MpPreference -SubmitSamplesConsent 1
 | 
						|
 | 
						|
# Enable checking signatures before scanning# 
 | 
						|
Set-MpPreference -CheckForSignaturesBeforeRunningScan 1
 | 
						|
 | 
						|
# Enable behavior monitoring# 
 | 
						|
Set-MpPreference -DisableBehaviorMonitoring 0
 | 
						|
 | 
						|
# Enable IOAV protection# 
 | 
						|
Set-MpPreference -DisableIOAVProtection 0
 | 
						|
 | 
						|
# Enable script scanning# 
 | 
						|
Set-MpPreference -DisableScriptScanning 0
 | 
						|
 | 
						|
# Enable removable drive scanning# 
 | 
						|
Set-MpPreference -DisableRemovableDriveScanning 0
 | 
						|
 | 
						|
# Enable Block at first sight# 
 | 
						|
Set-MpPreference -DisableBlockAtFirstSeen 0
 | 
						|
 | 
						|
# Enable potentially unwanted apps# 
 | 
						|
Set-MpPreference -PUAProtection Enabled
 | 
						|
 | 
						|
# Schedule signature updates every 8 hours# 
 | 
						|
Set-MpPreference -SignatureUpdateInterval 8
 | 
						|
 | 
						|
# Enable archive scanning# 
 | 
						|
Set-MpPreference -DisableArchiveScanning 0
 | 
						|
 | 
						|
# Enable email scanning# 
 | 
						|
Set-MpPreference -DisableEmailScanning 0
 | 
						|
 | 
						|
if (!(Check-IsWindows10-1709))
 | 
						|
{
 | 
						|
    # Set cloud block level to 'High'# 
 | 
						|
    Set-MpPreference -CloudBlockLevel High
 | 
						|
 | 
						|
    # Set cloud block timeout to 1 minute# 
 | 
						|
    Set-MpPreference -CloudExtendedTimeout 50
 | 
						|
 | 
						|
    Write-Host # `nUpdating Windows Defender Exploit Guard settings`n#  -ForegroundColor Green 
 | 
						|
 | 
						|
    Write-Host # Enabling Controlled Folder Access and setting to block mode# 
 | 
						|
    Set-MpPreference -EnableControlledFolderAccess Enabled 
 | 
						|
 | 
						|
    Write-Host # Enabling Network Protection and setting to block mode# 
 | 
						|
    Set-MpPreference -EnableNetworkProtection Enabled
 | 
						|
 | 
						|
    Write-Host # Enabling Exploit Guard ASR rules and setting to block mode# 
 | 
						|
    Add-MpPreference -AttackSurfaceReductionRules_Ids 75668C1F-73B5-4CF0-BB93-3ECF5CB7CC84 -AttackSurfaceReductionRules_Actions Enabled
 | 
						|
    Add-MpPreference -AttackSurfaceReductionRules_Ids 3B576869-A4EC-4529-8536-B80A7769E899 -AttackSurfaceReductionRules_Actions Enabled
 | 
						|
    Add-MpPreference -AttackSurfaceReductionRules_Ids D4F940AB-401B-4EfC-AADC-AD5F3C50688A -AttackSurfaceReductionRules_Actions Enabled
 | 
						|
    Add-MpPreference -AttackSurfaceReductionRules_Ids D3E037E1-3EB8-44C8-A917-57927947596D -AttackSurfaceReductionRules_Actions Enabled
 | 
						|
    Add-MpPreference -AttackSurfaceReductionRules_Ids 5BEB7EFE-FD9A-4556-801D-275E5FFC04CC -AttackSurfaceReductionRules_Actions Enabled
 | 
						|
    Add-MpPreference -AttackSurfaceReductionRules_Ids BE9BA2D9-53EA-4CDC-84E5-9B1EEEE46550 -AttackSurfaceReductionRules_Actions Enabled
 | 
						|
    Add-MpPreference -AttackSurfaceReductionRules_Ids 92E97FA1-2EDF-4476-BDD6-9DD0B4DDDC7B -AttackSurfaceReductionRules_Actions Enabled
 | 
						|
 | 
						|
    if ($false -eq (Test-Path ProcessMitigation.xml))
 | 
						|
    {
 | 
						|
        Write-Host # Downloading Process Mitigation file from https://demo.wd.microsoft.com/Content/ProcessMitigation.xml# 
 | 
						|
        $url = 'https://demo.wd.microsoft.com/Content/ProcessMitigation.xml'
 | 
						|
        Invoke-WebRequest $url -OutFile ProcessMitigation.xml
 | 
						|
    }
 | 
						|
 | 
						|
    Write-Host # Enabling Exploit Protection# 
 | 
						|
    Set-ProcessMitigation -PolicyFilePath ProcessMitigation.xml
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
else
 | 
						|
{
 | 
						|
    # #  Workaround for Windows 10 version 1703
 | 
						|
    # Set cloud block level to 'High'# 
 | 
						|
    SetRegistryKey -key MpCloudBlockLevel -value 2
 | 
						|
 | 
						|
    # Set cloud block timeout to 1 minute# 
 | 
						|
    SetRegistryKey -key MpBafsExtendedTimeout -value 50
 | 
						|
}
 | 
						|
 | 
						|
Write-Host # `nSettings update complete#   -ForegroundColor Green
 | 
						|
 | 
						|
Write-Host # `nOutput Windows Defender AV settings status#   -ForegroundColor Green
 | 
						|
Get-MpPreference
 |