重大度レベル: 警告
形容
このルールは、対象となるPowerShellエディション、バージョン、OSで利用できないコマンドレットを検出します。 このルールは、スクリプト内の各コマンドレットをPSScriptAnalyzerに付属する互換性許容リストと比較します。 これらのファイルは以下の場所にあります: /path/to/PSScriptAnalyzerModule/Settings。
各ファイルは以下の命名形式を使用しています:
<psedition>-<psversion>-<os>.json
Where:
-
<psedition>がCoreまたはDesktop -
<psversion>はPowerShellのバージョンです -
<os>はWindows、Linux、Linux-Arm、またはMacOSです
例
スクリプトがWindowsのPowerShell Core 6.1と互換性があるかを確認するには、以下の設定を追加してください:
@{
'Rules' = @{
'PSUseCompatibleCmdlets' = @{
'compatibility' = @('core-6.1.0-windows')
}
}
}
互換性パラメータは、以下のような1つ以上のターゲット識別子のリストを受け入れます。
- desktop-2.0-windows
- desktop-3.0-windows
- desktop-4.0-windows(Windows Server 2012 R2より取得)
- desktop-5.1.14393.206-windows
- core-6.1.0-windows(Windows 10、バージョン1803より)
- core-6.1.0-linux (Ubuntu 18.04 から取得)
- core-6.1.0-linux-arm (Raspbian から取得)
- core-6.1.0-macos
パッチ適用されたPowerShellのバージョンは通常同じコマンドレットデータを持つため、このルールは主にメジャーとマイナーのバージョンプロファイルを配布します。
また、 New-CommandDataFile.ps1でカスタムプロフィールを作成することもできます。 生成されたJSONファイルをSettingsモジュールのPSScriptAnalyzerフォルダに入れます。 その後、 compatibilityでファイル名で参照できます。
PowerShell 6.0が終了したため、PSScriptAnalyzer 1.18で core-6.0.2-* ファイルは削除されました。