Private/Advisors/Test-PageFileAdvisory.ps1

function Test-PageFileAdvisory {
    [CmdletBinding()]
    [OutputType([object[]])]
    param(
        [Parameter(Mandatory)][object]$Result,
        [Parameter(Mandatory)][object]$Roles
    )

    if (-not $Result.PSObject.Properties['PageFile']) { return @() }
    $pf = $Result.PageFile
    if ($null -eq $pf -or -not $pf.AutomaticManagedPagefile) { return @() }

    $sev = if ($Roles.HasSqlServer) { 'Warning' } else { 'Note' }
    [pscustomobject]@{
        Section  = 'PageFile'
        Severity = $sev
        Rule     = 'PageFileAutoManaged'
        Message  = 'Page file is system-managed. SQL/critical hosts should use a fixed Initial=Max page file (predictable, no growth fragmentation).'
        Context  = @{ AutomaticManagedPagefile = $true }
    }
}