AzStackHci.DiagnosticSettings.psd1

#
# Module manifest for module 'AzStackHci.DiagnosticSettings'
#
# Generated by: Microsoft Corporation.
#
# Generated on: March 18th 2026.
#

@{

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

    # Version number of this module.
    ModuleVersion = '0.6.2'

    # Supported PSEditions of this module (Desktop, Core, CoreCLR, etc.)
    CompatiblePSEditions = @('Desktop', 'Core')

    # ID used to uniquely identify this module.
    GUID = '741476f0-267c-4a20-9830-c8478444638e'

    # Author of this module.
    Author = 'Microsoft Corporation'

    # Company or vendor of this module.
    CompanyName = 'Microsoft Corporation'

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

    # Description of the functionality provided by this module.
    Description = 'Microsoft Azure Local - Diagnostics settings and connectivity tests support module'

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

    # Name of the Windows PowerShell host required by this module.
    # PowerShellHostName = ''

    # Minimum version of the Windows PowerShell host required by this module.
    # PowerShellHostVersion = ''

    # Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
    # DotNetFrameworkVersion = ''

    # Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
    # CLRVersion = ''

    # Processor architecture (None, X86, Amd64) required by this module.
    # ProcessorArchitecture = ''

    # Modules that must be imported into the global environment prior to importing this module
    #RequiredModules = ''

    # Assemblies that must be loaded prior to importing this module
    # RequiredAssemblies = @()

    # Script files (.ps1) that are run in the caller's environment prior to importing this module.
    # ScriptsToProcess = @()

    # Type files (.ps1xml) to be loaded when importing this module
    # TypesToProcess = @()

    # Format files (.ps1xml) to be loaded when importing this module
    # FormatsToProcess = @()

    # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
    # IMPORTANT: .ps1 files listed here are dot-sourced into the root module scope.
    # Private (internal) helpers are listed first, then Public (exported) functions.
    NestedModules = @(
        # Constants and module state initialization (loaded first)
        'Private\AzStackHci.Constants.ps1',

        # Private helpers (loaded after constants - order matters)
        'Private\AzStackHci.MemoryDump.Helpers.ps1',
        'Private\AzStackHci.Connectivity.Helpers.ps1',
        'Private\AzStackHci.Layer7.Helpers.ps1',
        'Private\AzStackHci.DNS.Helpers.ps1',
        'Private\AzStackHci.WildcardAndSubdomain.Helpers.ps1',
        'Private\AzStackHci.HardwareOEM.Helpers.ps1',
        'Private\AzStackHci.ModuleManagement.Helpers.ps1',
        'Private\AzStackHci.Network.Helpers.ps1',
        'Private\AzStackHci.Results.Helpers.ps1',
        'Private\AzStackHci.OsConfigReport.Helpers.ps1',
        'Private\AzStackHci.Utility.Helpers.ps1',

        # Public exported functions
        'Public\AzStackHci.MemoryDumpSettings.ps1',
        'Public\AzStackHci.PageFileSettings.ps1',
        'Public\AzStackHci.CrashDumpSettings.ps1',
        'Public\AzStackHci.SSLInspection.ps1',
        'Public\AzStackHci.ClusterPerformance.ps1',
        'Public\AzStackHci.ConnectivityTests.ps1',
        'Public\AzStackHci.OsConfigSettings.ps1',
        'Public\AzStackHci.PrivateLinkScope.ps1'
    )

    # Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
    FunctionsToExport = @(
        'Get-AzStackHciMemoryDumpSettings',
        'Set-AzStackHciMemoryDumpSettings',
        'Restore-AzStackHciMemoryDumpSettings',
        'Get-AzStackHciPageFileSettings',
        'Restore-AzStackHciPageFileSettings',
        'Set-AzStackHciPageFileMinimumSettings',
        'Set-AzStackHciUserModeCrashDumpSettings',
        'Test-AzStackHciSSLInspection',
        'Send-ClusterPerformanceHistory',
        'Test-AzureLocalConnectivity',
        'Test-Layer7Connectivity',
        'Test-TCPConnectivity',
        'Get-AzStackHciOsConfigSettings',
        'Test-ArcMachinePrivateLinkScopeEnabled'
    )

    # Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
    CmdletsToExport = @()

    # Variables to export from this module
    # Set to empty array to prevent leaking internal script-scoped variables to consumers
    VariablesToExport = @()

    # Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
    # AliasesToExport = '*'

    # DSC resources to export from this module
    # DscResourcesToExport = @()

    # List of all modules packaged with this module
    # ModuleList = @()

    # List of all files packaged with this module
    # FileList = @()

    # Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
    PrivateData = @{

        PSData = @{

            # Tags applied to this module. These help with module discovery in online galleries.
            Tags = @('Microsoft', 'AzStackHci', 'Diagnostic', 'Settings', 'Connectivity', 'AzureLocal')

            # A URL to the license for this module.
            LicenseUri = 'https://github.com/Azure/AzureLocal-Supportability/blob/main/LICENSE'

            # A URL to the main website for this project.
            ProjectUri = 'https://github.com/Azure/AzureLocal-Supportability'

            # A URL to an icon representing this module.
            # IconUri = ''

            # ReleaseNotes of this module — full history in CHANGELOG.md shipped with the module
            ReleaseNotes = @'
## v0.6.2
 
### Test-AzureLocalConnectivity
- Added -OutputFormat parameter (HTML or CSV); JSON is always generated automatically alongside the chosen format
- Changed default output from CSV to HTML with Azure-themed styling (color-coded rows, bold status, scrollable tables with synced scrollbars)
- Added Write-Progress with sub-progress bars for redirects, remaining URLs, and wildcard expansion
- Added ArcGateway parameter set: -ArcGatewayDeployment and -ArcGatewayURL mandatory together
- Enhanced SSL inspection detection with known root CA thumbprint validation
- Added exponential backoff to DNS retry logic
- Added URL validation for endpoints parsed from markdown
- Added support for prefix wildcard patterns (e.g. azgn*.servicebus.windows.net)
- Fixed double redirect Note prefix on multi-hop redirects (e.g. download.microsoft.com)
- Fixed VerbosePreference leak on Azure Local nodes where machine-level $VerbosePreference = 'Continue'
- Improved Managed Identity error handling in Private Link Scope detection
- Certificate validation callback reset to null in end block (prevents leaking to other sessions)
 
### Test-Layer7Connectivity
- SSL certificate retrieval retries once on failure (handles intermittent backend server TLS handshake timeouts)
- Reduced HttpClient timeout for certificate retrieval from 60s to 15s
- Certificate validation callback reset to null in end block
- Added Write-Verbose streaming alongside Write-Host output
 
### Get-AzStackHciOsConfigSettings
- Parallel data collection across cluster nodes via Invoke-Command fan-out (near-linear speedup)
- All per-node collections consolidated into single self-contained remote script block
- Consolidated tabbed HTML report with cluster name and datetime in filename
- JSON output always generated automatically alongside HTML report
- HTML report copied to C:\ProgramData\AzStackHci.DiagnosticSettings\ for persistence
- Summary tab: cluster/host info, GPO status overview, data collection matrix per node
- Cluster Consistency checks: UBR, Windows Features, NIC Drivers, Power Plan, Hardware, Hotfix, DNS, NTP
- Summary tab health checks: Storage Health, NetworkATC Status, Key Services Health (cluster-aware), Arc Agent Health
- JSON output redesigned as lightweight PASS/FAIL health summary, to avoid excessive JSON serialization of the entire report data structure
- Key Services cluster-group awareness: blue badge for cluster-owned services expected Stopped on non-owner nodes
- Arc Agent Health: status, version, heartbeat validation; version drift detection across nodes
- GPO Health Check badge changed from red to yellow for domain GPOs (warning instead of error)
- Cluster Drift Control made non-blocking and is executed against the cluster scope as a background job
- Excluded vmic* guest integration services from Key Services (expected Stopped on hosts)
- Per-node sub-tabs: OS Policy & Config, Network & Connectivity, Time & Crypto, System & Hardware, Services & Agents, Events & Reboot
- Data collected: System Info, Network Config, Virtual Switch/SET, WinHTTP Proxy, Firewall Profiles, W32Time/NTP, TLS/SCHANNEL, Hotfixes, Windows Features, Power Plan, Key Drivers, Key Services, Arc Agent, Defender, Event Logs (7 days), Pending Reboot, NetIntentStatus, ClusterGroups
- Stability Events (Unexpected Restarts & Bug Checks) moved to top of Summary tab, before GPO Overview
- Added GPO Overview summary card with green/yellow status and knowledge base link
- GPOs contribute warning to Summary tab three-level rollup
- Non-Microsoft Services detection on Summary tab
- Section status icons moved to left side in collapsible section headers
- Report filenames prefixed with cluster name (e.g. ClusterName_AzureLocal_OsConfigReport-...)
- Export folder prefixed with cluster/node name; collected data stored under Data-Collection subfolder
- Status Overview table at top of Summary tab with pass/warn/fail status and anchor links per section
- JSON report also copied to C:\ProgramData\AzStackHci.DiagnosticSettings\
- Added tip about opening HTML report from IT jump box or EUC device
 
### Set-AzStackHciMemoryDumpSettings
- Added SupportsShouldProcess (-WhatIf/-Confirm)
- Added registry rollback on failure (captures original values, restores on error)
- Fixed misleading verbose: "Dedicated Dump File Size set to" changed to "required"
 
### Restore-AzStackHciMemoryDumpSettings
- Added SupportsShouldProcess with ConfirmImpact='High' (replaces manual Read-Host prompt)
 
### Set-AzStackHciPageFileMinimumSettings / Set-AzStackHciUserModeCrashDumpSettings
- Added SupportsShouldProcess (-WhatIf/-Confirm) to both functions
 
### Auto-Update (Module Version Management)
- Fixed Sort-Object to use -Descending for correct newest version selection
- Fixed Find-Module handling of multiple PSRepositories returning an array
- Fixed Get-LatestModuleVersion early return emitting duplicate null
- Stale module cleanup moved to after successful install only
 
### Module Architecture (no functional changes to exported commands)
- Refactored into modular file structure: 10 Private/ helpers + 8 Public/ function files
- Added Constants file centralizing all configuration values (timeouts, ports, redirect limits)
- Added Initialize-ModuleState for clean state reset between runs
- Extracted redirect tracking into Add-RedirectedUrlToResults helper
- Added Write-AzSError helper for consistent error output
- Added CompatiblePSEditions (Desktop and Core), LicenseUri, ProjectUri
- Expanded Pester test coverage; all 14 exported functions remain unchanged
- Converted all source files to UTF-8 BOM encoding for readable git diffs
 
### Improvements
- Certificate validation callback cleanup guaranteed via try/finally (prevents stale callback on exceptions)
- Auto-update version check uses 15-second timeout to prevent hangs when PSGallery is unreachable
- Auto-update validates installed module version after import
- Added [OutputType()] declarations to all 14 exported functions
- Added comment-based help to Test-Layer7Connectivity, Test-TCPConnectivity, Test-AzureLocalConnectivity, Get-AzStackHciOsConfigSettings
- Write-Progress shows estimated time remaining during endpoint testing
 
For full version history see CHANGELOG.md shipped with this module.
'@


            # External dependent modules of this module
            # ExternalModuleDependencies = ''

        } # End of PSData hashtable

    } # End of PrivateData hashtable

    # HelpInfo URI of this module
    HelpInfoURI = 'https://github.com/Azure/AzureLocal-Supportability/blob/main/TSG/Networking/Arc-Gateway-Outbound-Connectivity/Troubleshoot-Outbound-Connectivity.md'

    # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
    # DefaultCommandPrefix = ''

}
# Generated by: Microsoft Corporation.