UseCompatibleCmdlets

allvarlighetsgrad: Varning

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

Example

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.