严重性级别:警告
描述
此规则标记在给定操作系统上的给定版本和 PowerShell 版本中不可用的 cmdlet。 它的工作原理是将 cmdlet 与附带 PSScriptAnalyzer 的一组允许列表进行比较。 可以在 /path/to/PSScriptAnalyzerModule/Settings找到它们。 这些文件是窗体,<psedition>-<psversion>-<os>.json 其中 <psedition> 可以是 Core 或 Desktop,<os> 可以是 Windows、Linux 或 MacOS,<psversion> 是 PowerShell 版本。 若要启用规则以检查脚本是否在 Windows 上的 PowerShell Core 上兼容,请放置以下设置文件:
@{
'Rules' = @{
'PSUseCompatibleCmdlets' = @{
'compatibility' = @('core-6.1.0-windows')
}
}
}
参数 compatibility 是包含以下任一项的列表
- desktop-2.0-windows
- desktop-3.0-windows
- desktop-4.0-windows(取自 Windows Server 2012R2)
- 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 版本具有相同的 cmdlet 数据,因此仅提供 PowerShell 的主要版本和次要版本的设置。 还可以使用 New-CommandDataFile.ps1 脚本创建自定义设置文件。 将创建的 .json 文件放置在 PSScriptAnalyzer 模块文件夹的 Settings 文件夹中。 然后,compatibility 参数值只是文件名。
请注意,自 PowerShell 6.0 达到生命周期结束以来,PSScriptAnalyzer 1.18 中删除了 core-6.0.2-* 文件。