UseCompatibleSyntax

Livello di gravità: Errore

Stato predefinito: Disabilitato

Description

Questa regola rileva elementi sintattici che non sono compatibili con le versioni di riferimento PowerShell specificate. Quando esegui questa regola da PowerShell 3 o 4, non può rilevare sintassi incompatibile con quelle versioni perché quelle versioni non possono analizzare le nuove costruzioni sintassiche.

Example

Non conforme

Il seguente esempio utilizza la sintassi di PowerShell 7. Se TargetVersions include 5.1 o è precedente, questa regola segnala queste affermazioni.

$message = $IsReady ? 'Ready' : 'Not ready'
$displayName = $name ?? 'Unknown'

Compliant

if ($IsReady) {
    $message = 'Ready'
} else {
    $message = 'Not ready'
}

if ($name -ne $null) {
    $displayName = $name
} else {
    $displayName = 'Unknown'
}

Configurare regola

@{
    Rules = @{
        PSUseCompatibleSyntax = @{
            Enable = $true
            TargetVersions = @(
                '6.0',
                '5.1',
                '4.0'
            )
        }
    }
}

Parameters

Enable

Questo parametro controlla se ScriptAnalyzer verifica il codice rispetto a questa regola. Accetta un valore booleano. Per abilitare questa regola, imposta questo parametro a $true. Il valore predefinito è $false.

TargetVersions

Questo parametro specifica le versioni PowerShell con cui il tuo codice deve essere compatibile. Accetta un array di stringhe di versione, come '7.0', '5.1', o '4.0'. ScriptAnalyzer segnala una sintassi che non è supportata in nessuna versione che preferisci.