MDEValidator.psd1

@{
    # Module manifest for MDEValidator
    # Generated by: MDEValidator Team

    # Version number of this module
    ModuleVersion = '1.5.0'

    # Supported PSEditions
    CompatiblePSEditions = @('Desktop', 'Core')

    # ID used to uniquely identify this module
    GUID = 'e8f9c7d6-5a4b-3c2d-1e0f-9a8b7c6d5e4f'

    # Author of this module
    Author = 'Nathan Hutchinson'

    # Company or vendor of this module
    CompanyName = 'Nathan Hutchinson'

    # Copyright statement for this module
    Copyright = '(c) 2026 Nathan Hutchinson. All rights reserved.'

    # Description of the functionality provided by this module
    Description = 'PowerShell module to validate Microsoft Defender for Endpoint (MDE) configurations and security settings.'

    # Minimum version of the PowerShell engine required by this module
    PowerShellVersion = '5.1'

    # Script module or binary module file associated with this manifest
    RootModule = 'MDEValidator.psm1'

    # Functions to export from this module
    FunctionsToExport = @(
        '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',
        'Test-MDEPUAProtection'
    )

    # Cmdlets to export from this module
    CmdletsToExport = @()

    # Variables to export from this module
    VariablesToExport = @()

    # Aliases to export from this module
    AliasesToExport = @()

    # Private data to pass to the module specified in RootModule/ModuleToProcess
    PrivateData = @{
        PSData = @{
            # Tags applied to this module
            Tags = @('Security', 'Defender', 'MDE', 'Endpoint', 'Validation', 'Windows')

            # A URL to the license for this module
            LicenseUri = 'https://github.com/NateHutch365/MDEValidator/blob/main/LICENSE'

            # A URL to the main website for this project
            ProjectUri = 'https://github.com/NateHutch365/MDEValidator'

            # ReleaseNotes of this module
            ReleaseNotes = 'v1.5.0 — Automation & Performance
 
New automation features:
- JSON output format: Get-MDEValidationReport -OutputFormat JSON (metadata/summary/results envelope)
- -AsExitCode switch returns the Fail count as an integer for scheduled tasks, Intune remediation, and CI
- -Category and -ExcludeTest filtering on Test-MDEConfiguration and Get-MDEValidationReport
- Write-Progress reporting during validation runs
 
Enriched results:
- Every result now carries Category, Expected and Actual properties
- HTML report sections and Expected column are driven directly by result objects
 
Performance & maintainability:
- Defender CIM snapshots queried once per run (30-40 round-trips reduced to 2)
- HTML report generation extracted into private helpers
- New CONTRIBUTING.md guide for adding validation checks
 
Previous release (v1.4.0):
- Redesigned HTML report: gradient header, summary cards, section-grouped tables, print CSS
 
Total: 446 Pester tests (0 failures), zero PSScriptAnalyzer violations'

        }
    }
}