UseCompatibleCmdlets

allvarlighetsgrad: Varning

Standardläge: Alltid aktiverat

Beskrivning

Denna regel upptäcker cmdlets som inte finns tillgängliga för PowerShell-versionen, versionen och operativsystemet du siktar på. Regeln jämför varje cmdlet i ditt skript med en kompatibilitetstillåtelselista som levereras med PSScriptAnalyzer. Dessa filer finns på följande plats: /path/to/PSScriptAnalyzerModule/Settings.

Varje fil använder detta namngivningsformat:

<psedition>-<psversion>-<os>.json

Where:

  • <psedition> är Core eller Desktop
  • <psversion> är PowerShell-versionen
  • <os> är Windows, Linux, Linux-Arm eller MacOS

Konfigurera regel

För att kontrollera om ditt skript är kompatibelt med PowerShell Core 6.1 på Windows, lägg till denna konfiguration:

@{
    'Rules' = @{
        'PSUseCompatibleCmdlets' = @{
            'compatibility'      = @('core-6.1.0-windows')
        }
    }
}

Kompatibilitetsparametern accepterar en lista med en eller flera målidentifierare, såsom:

  • desktop-2.0-windows
  • desktop-3.0-windows
  • desktop-4.0-windows (hämtat från Windows Server 2012 R2)
  • desktop-5.1.14393.206-windows
  • core-6.1.0-Windows (hämtat från Windows 10, version 1803)
  • core-6.1.0-linux (hämtad från Ubuntu 18.04)
  • core-6.1.0-linux-arm (hämtad från Raspbian)
  • core-6.1.0-macos

Patchade PowerShell-versioner har vanligtvis samma cmdlet-data, så denna regel levererar främst huvud- och minorversionprofiler.

Du kan också skapa en anpassad profil med New-CommandDataFile.ps1. Placera den genererade JSON-filen i Settings modulens PSScriptAnalyzer mapp. Sedan kan du referera till den filen med namn under compatibility.

Filerna core-6.0.2-* togs bort i PSScriptAnalyzer 1.18 eftersom PowerShell 6.0 nådde slutet av sin livslängd.

Även om regeln är konfigurerbar, är regeln alltid aktiverad. Använd en av följande metoder för att undvika att använda denna regel:

  • Skapa en anpassad regelkonfigurationsfil som bara inkluderar de regler du vill ha eller uteslut de regler du inte vill ha.
  • Lägg till lämpliga attribut för regelundertryckning i din kod för att undertrycka regeln för specifika kodblock. För mer information, se avsnittet Suppressing rules i Using PSScriptAnalyzer.