严重性级别:警告
描述
此规则标记给定版本的 PowerShell 中提供的 cmdlet,这些 cmdlet 由函数声明覆盖。 它的工作原理是将函数声明与 PSScriptAnalyzer 附带的一组允许列表进行比较。 这些允许列表文件由其他 PSScriptAnalyzer 规则使用。 有关详细信息,请参阅 UseCompatibleCmdlet 规则的文档。
配置
若要启用规则以检查脚本是否在 Windows 上的 PowerShell Core 上兼容,请放置以下设置文件。
@{
'Rules' = @{
'PSAvoidOverwritingBuiltInCmdlets' = @{
'PowerShellVersion' = @('core-6.1.0-windows')
}
}
}
参数
PowerShellVersion
参数 PowerShellVersion 是 PSScriptAnalyzer 附带的允许列表列表。
注意
如果安装了 PowerShell 6 或更高版本,则 core-6.1.0-windowsPowerShellVersion 的默认值,如果未安装,则 desktop-5.1.14393.206-windows。
通常,已修补的 PowerShell 版本具有相同的 cmdlet 数据,因此仅提供 PowerShell 的主要版本和次要版本的设置。 还可以使用 New-CommandDataFile.ps1 脚本创建自定义设置文件,并通过将创建的 JSON 放入 PSScriptAnalyzer 模块安装文件夹的 Settings 文件夹中来使用它,然后 PowerShellVersion 参数只是其文件名(如果需要也可以更改)。 请注意,自 PowerShell 6.0 结束以来,PSScriptAnalyzer 1.18 中删除了 core-6.0.2-* 文件。