UseCompatibleSyntax

Allvarlighetsgrad: Fel

Standardtillstånd: Inaktiverat

Beskrivning

Denna regel upptäcker syntaxelement som inte är kompatibla med dina angivna PowerShell-målversioner. När du kör denna regel från PowerShell 3 eller 4 kan den inte upptäcka syntax som är inkompatibel med dessa versioner eftersom de versionerna inte kan tolka nyare syntaxkonstruktioner.

Example

Ej överensstämmande

Följande exempel använder PowerShell 7-syntaxen. Om TargetVersions inkluderar 5.1 eller tidigare, flaggar denna regel dessa påståenden.

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

Godkänd

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

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

Konfigurera regel

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

Parameters

Enable

Denna parameter styr om ScriptAnalyzer kontrollerar koden mot denna regel. Den accepterar ett boolesk värde. För att aktivera denna regel, sätt denna parameter till $true. Standardvärdet är $false.

TargetVersions

Denna parameter specificerar vilka PowerShell-versioner din kod måste vara kompatibel med. Den accepterar en array av versionssträngar, såsom '7.0', '5.1', , eller '4.0'. ScriptAnalyzer flaggar syntax som inte stöds i någon version du riktar dig mot.