Config/ADEHM.config.psd1

@{
    # =====================================================================
    # ADEHM - Active Directory Enterprise Health Monitor
    # Central configuration file
    #
    # Every engine parameter lives here. Never hard-code values in the
    # modules: any new tunable belongs in this file.
    # =====================================================================

    General = @{
        CompanyName    = 'YourCompany'
        TimeoutSeconds = 15          # Ping / WinRM / CIM timeout (seconds)
        DebugMode      = $false      # $true => verbose logging (DEBUG level)
        ArchiveReports = $true       # Automatically archive old reports/logs
        ArchiveDays    = 30          # Age (days) after which a file is archived
    }

    # Domain controllers to monitor (DNS name or FQDN)
    DomainControllers = @(
        'DC01.domain.local'
        'DC02.domain.local'
        'DC03.domain.local'
    )

    # System alert thresholds
    Thresholds = @{
        CpuWarningPercent   = 70
        CpuCriticalPercent  = 90
        RamWarningPercent   = 75
        RamCriticalPercent  = 90
        DiskWarningFreePct  = 15     # Warning when free space < 15 %
        DiskCriticalFreePct = 5      # Critical when free space < 5 %
    }

    # Active Directory services checked on each DC
    Services = @(
        @{ Name = 'NTDS';     DisplayName = 'Active Directory Domain Services' }
        @{ Name = 'DNS';      DisplayName = 'DNS Server' }
        @{ Name = 'DFSR';     DisplayName = 'DFS Replication' }
        @{ Name = 'Netlogon'; DisplayName = 'Netlogon' }
        @{ Name = 'KDC';      DisplayName = 'Kerberos Key Distribution Center' }
        @{ Name = 'ADWS';     DisplayName = 'Active Directory Web Services' }
    )

    # Network shares checked on each DC
    Shares = @('SYSVOL', 'NETLOGON')

    # Engine directories (relative paths are resolved against the project root)
    Paths = @{
        Reports = '.\Reports'
        Logs    = '.\Logs'
        Assets  = '.\Assets'
        Archive = '.\Archive'
    }

    # Email delivery settings
    Mail = @{
        Enabled           = $true
        SmtpServer        = 'smtp.domain.local'
        Port              = 587
        UseSsl            = $true
        From              = 'adehm-noreply@domain.local'
        To                = @('it-ops@domain.local')
        Cc                = @()
        Subject           = 'ADEHM - Active Directory Health Report - {0}'
        AttachReport      = $true
        # When $true, the email body contains an email-client-optimized
        # rendering of the report (HTML tables + inline styles, generated by
        # New-ADEHMEmailReport), reliable even in Outlook (Word engine).
        # The attachment remains the full browser-grade report.
        EmbedReportInBody = $true

        # The SMTP service account password is NEVER stored in clear text in
        # this file. Use Windows Credential Manager, a group Managed Service
        # Account (gMSA), or pass -Credential to Start-ADEHM.ps1.
        # See Docs/PERMISSIONS.md.
        CredentialTarget  = 'ADEHM-SMTP-Account'
    }
}