UseCompatibleCmdlets

poziom ważności: ostrzeżenie

Opis

Ta reguła wykrywa cmdlety, które nie są dostępne dla edycji, wersji i systemu operacyjnego, na który wybierasz. Reguła porównuje każdy cmdlet w twoim skrypcie z listą dozwolonych kompatybilności, która jest dostarczana z PSScriptAnalyzer. Te pliki znajdują się w następującym miejscu: /path/to/PSScriptAnalyzerModule/Settings.

Każdy plik używa tego formatu nazewnictwa:

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

Where:

  • <psedition> jest Core lub Desktop
  • <psversion> to wersja PowerShell
  • <os> to Windows, Linux, Linux-Arm lub MacOS

Example

Aby sprawdzić, czy Twój skrypt jest kompatybilny z PowerShell Core 6.1 na Windows, dodaj taką konfigurację:

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

Parametr zgodności akceptuje listę jednego lub więcej identyfikatorów docelowych, takich jak:

  • desktop-2.0-windows
  • desktop-3.0-windows
  • desktop-4.0-windows (zaczerpnięte z Windows Server 2012 R2)
  • desktop-5.1.14393.206-windows
  • core-6.1.0-windows (zaczerpnięte z Windows 10, wersja 1803)
  • core-6.1.0-linux (pobrany z systemu Ubuntu 18.04)
  • core-6.1.0-linux-arm (pobrany z Raspbian)
  • core-6.1.0-macos

Poprawki PowerShell zwykle zawierają te same dane cmdlet, więc ta zasada głównie dostarcza profile głównych i pobocznych.

Możesz też stworzyć własny profil za pomocą New-CommandDataFile.ps1. Umieść wygenerowany plik JSON w Settings folderze modułu PSScriptAnalyzer . Następnie możesz odwołać się do tego pliku po nazwie pod .compatibility

Pliki zostały usunięte core-6.0.2-* w PSScriptAnalyzer 1.18, ponieważ PowerShell 6.0 osiągnął koniec swojego życia.