UseCompatibleCmdlet

严重性级别:警告

描述

此规则标记在给定操作系统上的给定版本和 PowerShell 版本中不可用的 cmdlet。 它的工作原理是将 cmdlet 与附带 PSScriptAnalyzer 的一组允许列表进行比较。 可以在 /path/to/PSScriptAnalyzerModule/Settings找到它们。 这些文件是窗体,<psedition>-<psversion>-<os>.json 其中 <psedition> 可以是 CoreDesktop<os> 可以是 WindowsLinuxMacOS<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-* 文件。