Freigeben über


UseCompatibleCmdlets

Schweregrad: Warnung

Beschreibung

Diese Regel kennzeichnet Cmdlets, die in einer bestimmten Edition und Version von PowerShell auf einem bestimmten Betriebssystem nicht verfügbar sind. Es funktioniert, indem ein Cmdlet mit einer Reihe von Zulassungslisten verglichen wird, die mit PSScriptAnalyzer ausgeliefert werden. Sie finden sie unter /path/to/PSScriptAnalyzerModule/Settings. Diese Dateien sind der Form, <psedition>-<psversion>-<os>.json wobei <psedition> entweder Core oder Desktopsein können, <os> entweder Windows, Linux oder MacOSsein können und <psversion> die PowerShell-Version ist. Um die Regel zu aktivieren, um zu überprüfen, ob Ihr Skript auf PowerShell Core unter Windows kompatibel ist, fügen Sie die folgende Einstellungsdatei ein:

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

Der Parameter compatibility ist eine Liste, die eine der folgenden Elemente enthält:

  • Desktop-2.0-Windows
  • Desktop-3.0-Windows
  • desktop-4.0-windows (aus Windows Server 2012R2)
  • desktop-5.1.14393.206-windows
  • core-6.1.0-windows (aus Windows 10 - 1803)
  • core-6.1.0-linux (aus Ubuntu 18.04)
  • core-6.1.0-linux-arm (aus Raspbian)
  • core-6.1.0-macos

In der Regel verfügen patchte Versionen von PowerShell über dieselben Cmdlet-Daten, daher werden nur Einstellungen von Haupt- und Nebenversionen von PowerShell bereitgestellt. Sie können auch eine benutzerdefinierte Einstellungsdatei mit dem skript New-CommandDataFile.ps1 erstellen. Platzieren Sie die erstellte .json Datei im Ordner Settings des PSScriptAnalyzer Modulordners. Dann ist der compatibility Parameterwerte nur der Dateiname. Beachten Sie, dass die core-6.0.2-* Dateien in PSScriptAnalyzer 1.18 entfernt wurden, da PowerShell 6.0 das Ende der Lebensdauer erreicht hat.