UseCompatibleCmdlets

úroveň závažnosti : Upozornění

Výchozí stav: Vždy zapnutý

Popis

Toto pravidlo detekuje cmdlety, které nejsou dostupné pro edici, verzi a operační systém PowerShell, na který cílíte. Pravidlo porovnává každý cmdlet ve vašem skriptu s seznamem povolených kompatibility, který je dodáván s PSScriptAnalyzerem. Tyto soubory se nacházejí na následujícím místě: /path/to/PSScriptAnalyzerModule/Settings.

Každý soubor používá tento formát pojmenování:

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

Kde:

  • <psedition> je Core nebo Desktop
  • <psversion> je verze PowerShell
  • <os> je Windows, Linux, Linux-Arm nebo MacOS

Konfigurovat pravidlo

Chcete-li ověřit, zda je váš skript kompatibilní s PowerShell Core 6.1 na Windows, přidejte tuto konfiguraci:

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

Parametr kompatibility přijímá seznam jednoho nebo více cílových identifikátorů, například:

  • desktop-2.0-windows
  • desktop-3.0-windows
  • desktop-4.0-windows (převzato z Windows Server 2012 R2)
  • desktop-5.1.14393.206-windows
  • core-6.1.0-windows (převzato z Windows 10, verze 1803)
  • core-6.1.0-linux (převzato z Ubuntu 18.04)
  • core-6.1.0-linux-arm (převzato z Raspbian)
  • core-6.1.0-macos

Patchované verze PowerShellu obvykle obsahují stejná data cmdletu, takže toto pravidlo většinou posílá profily hlavních a vedlejších verzí.

Můžete si také vytvořit vlastní profil pomocí New-CommandDataFile.ps1. Vložte vygenerovaný JSON soubor do složky Settings modulu PSScriptAnalyzer . Pak můžete tento soubor odkazovat podle názvu pod .compatibility

Soubory core-6.0.2-* byly odstraněny v PSScriptAnalyzer 1.18, protože PowerShell 6.0 dosáhl konce své životnosti.

I když je pravidlo konfigurovatelné, je vždy povoleno. Použijte jednu z následujících metod, abyste se tomuto pravidlu vyhnuli:

  • Vytvořte si vlastní konfigurační soubor pravidel, který bude obsahovat pouze ta pravidla, která chcete, nebo vyloučit ta, která nechcete.
  • Přidejte příslušné atributy potlačení pravidel do svého kódu, abyste potlačili pravidlo pro konkrétní bloky kódu. Pro více informací viz sekce Potlačení pravidelv Používání PSScriptAnalyzer.