MDEValidator
1.1.0
PowerShell module to validate Microsoft Defender for Endpoint (MDE) configurations and security settings.
Minimum PowerShell version
5.1
Installation Options
Owners
Copyright
(c) 2026 Nathan Hutchinson. All rights reserved.
Package Details
Author(s)
- Nathan Hutchinson
Tags
Security Defender MDE Endpoint Validation Windows
Functions
Test-MDEConfiguration Get-MDEValidationReport Get-MDEOperatingSystemInfo Get-MDESecuritySettingsManagementStatus Get-MDEOnboardingStatusString Get-MDEManagementType Get-MDEManagedDefenderProductType Get-MDEManagementTypeFallback Get-MDEPolicyRegistryPath Get-MDEPolicySettingConfig Test-MDEPolicyRegistryValue Test-MDEPolicyRegistryVerification Test-MDEServiceStatus Test-MDEPassiveMode Test-MDEAntiSpywareEnabled Test-MDEIoavProtectionEnabled Test-MDENISEnabled Test-MDESignatureAge Test-MDESignatureInfo Test-MDERealTimeProtection Test-MDECloudProtection Test-MDECloudBlockLevel Test-MDECloudExtendedTimeout Test-MDESampleSubmission Test-MDEBehaviorMonitoring Test-MDEOnboardingStatus Test-MDEDeviceTags Test-MDENetworkProtection Test-MDENetworkProtectionWindowsServer Test-MDEDatagramProcessingWindowsServer Test-MDEAutoExclusionsWindowsServer Test-MDEAttackSurfaceReduction Test-MDEThreatDefaultActions Test-MDETroubleshootingMode Test-MDETamperProtection Test-MDETamperProtectionForExclusions Test-MDEExclusionVisibilityLocalAdmins Test-MDEExclusionVisibilityLocalUsers Test-MDESmartScreen Test-MDESmartScreenPUA Test-MDESmartScreenPromptOverride Test-MDESmartScreenDownloadOverride Test-MDESmartScreenDomainExclusions Test-MDESmartScreenAppRepExclusions Test-MDEDisableCatchupQuickScan Test-MDERealTimeScanDirection Test-MDESignatureUpdateFallbackOrder Test-MDESignatureUpdateInterval Test-MDEDisableLocalAdminMerge Test-MDEFileHashComputation
PSEditions
Dependencies
This module has no dependencies.
Release Notes
v1.1.0 — Onboarding & Device State Expansion
New checks added to Test-MDEOnboardingStatus:
- DiagTrack (Connected User Experiences and Telemetry) service status — Warning if absent or stopped
- OrgId registry value (HKLM:\SOFTWARE\Microsoft\Windows Advanced Threat Protection\Status) — Info when present, Warning when absent
- WDATPOnboarding event log query — surfaces event count and latest timestamp; Warning if no events found
New device state functions:
- Test-MDEAntiSpywareEnabled — Pass when enabled, Warning when disabled
- Test-MDEIoavProtectionEnabled — Pass when enabled, Warning when disabled
- Test-MDENISEnabled — Pass when enabled, Warning when disabled
- Test-MDESignatureAge — Pass (0-1 days), Warning (2-3 days), Fail (>3 days) for both AV and AS signatures
- Test-MDESignatureInfo — Informational AV signature version and last updated date
Extended existing functions:
- Test-MDEPassiveMode now also surfaces AMRunningMode — Pass when Normal, Warning otherwise
Bug fixes:
- Null guards added to Test-MDESignatureAge preventing silent false-positives when WMI returns null signature age
- Null guard added to Test-MDESignatureInfo preventing empty version string when WMI returns null
Total: 377 Pester tests (0 failures), zero PSScriptAnalyzer violations
FileList
- MDEValidator.nuspec
- MDEValidator.psd1
- MDEValidator.psm1
- Private\ConvertTo-HtmlEncodedString.ps1
- Private\Test-IsElevated.ps1
- Private\Test-IsWindowsServer.ps1
- Private\Write-ValidationResult.ps1
- Public\Get-MDEManagedDefenderProductType.ps1
- Public\Get-MDEManagementType.ps1
- Public\Get-MDEManagementTypeFallback.ps1
- Public\Get-MDEOnboardingStatusString.ps1
- Public\Get-MDEOperatingSystemInfo.ps1
- Public\Get-MDEPolicyRegistryPath.ps1
- Public\Get-MDEPolicySettingConfig.ps1
- Public\Get-MDESecuritySettingsManagementStatus.ps1
- Public\Get-MDEValidationReport.ps1
- Public\Test-MDEAntiSpywareEnabled.ps1
- Public\Test-MDEAttackSurfaceReduction.ps1
- Public\Test-MDEAutoExclusionsWindowsServer.ps1
- Public\Test-MDEBehaviorMonitoring.ps1
- Public\Test-MDECloudBlockLevel.ps1
- Public\Test-MDECloudExtendedTimeout.ps1
- Public\Test-MDECloudProtection.ps1
- Public\Test-MDEConfiguration.ps1
- Public\Test-MDEDatagramProcessingWindowsServer.ps1
- Public\Test-MDEDeviceTags.ps1
- Public\Test-MDEDisableCatchupQuickScan.ps1
- Public\Test-MDEDisableLocalAdminMerge.ps1
- Public\Test-MDEExclusionVisibilityLocalAdmins.ps1
- Public\Test-MDEExclusionVisibilityLocalUsers.ps1
- Public\Test-MDEFileHashComputation.ps1
- Public\Test-MDEIoavProtectionEnabled.ps1
- Public\Test-MDENISEnabled.ps1
- Public\Test-MDENetworkProtection.ps1
- Public\Test-MDENetworkProtectionWindowsServer.ps1
- Public\Test-MDEOnboardingStatus.ps1
- Public\Test-MDEPassiveMode.ps1
- Public\Test-MDEPolicyRegistryValue.ps1
- Public\Test-MDEPolicyRegistryVerification.ps1
- Public\Test-MDERealTimeProtection.ps1
- Public\Test-MDERealTimeScanDirection.ps1
- Public\Test-MDESampleSubmission.ps1
- Public\Test-MDEServiceStatus.ps1
- Public\Test-MDESignatureAge.ps1
- Public\Test-MDESignatureInfo.ps1
- Public\Test-MDESignatureUpdateFallbackOrder.ps1
- Public\Test-MDESignatureUpdateInterval.ps1
- Public\Test-MDESmartScreen.ps1
- Public\Test-MDESmartScreenAppRepExclusions.ps1
- Public\Test-MDESmartScreenDomainExclusions.ps1
- Public\Test-MDESmartScreenDownloadOverride.ps1
- Public\Test-MDESmartScreenPUA.ps1
- Public\Test-MDESmartScreenPromptOverride.ps1
- Public\Test-MDETamperProtection.ps1
- Public\Test-MDETamperProtectionForExclusions.ps1
- Public\Test-MDEThreatDefaultActions.ps1
- Public\Test-MDETroubleshootingMode.ps1
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 1.1.0 (current version) | 37 | 4/12/2026 |
| 1.0.1 | 22 | 3/23/2026 |
| 1.0.0 | 17 | 3/19/2026 |