Private/Advisors/Test-SmbAdvisory.ps1

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

    if (-not $Result.PSObject.Properties['Smb']) { return @() }
    $smb = $Result.Smb
    if ($null -eq $smb) { return @() }

    if ($smb.Smb1Enabled -eq $true) {
        [pscustomobject]@{
            Section='Smb'; Severity='Critical'; Rule='Smb1Enabled'
            Message='SMB1 is enabled. EternalBlue/WannaCry vector — disable immediately.'
            Context=@{ Setting='EnableSMB1Protocol'; Recommended=$false }
        }
    }
    if ($smb.SigningRequired -eq $false) {
        [pscustomobject]@{
            Section='Smb'; Severity='Warning'; Rule='SmbSigningNotRequired'
            Message='SMB signing is not required. Enables relay attacks against this server.'
            Context=@{ Setting='RequireSecuritySignature'; Recommended=$true }
        }
    }
}