AvoidUsingPositionalParameters

严重性级别:信息

Description

该规则检测命令是否带有三个或更多位置参数而非命名参数。 使用位置参数会降低代码可读性,并可能引入错误。 未来某个版本的指令小工具可能会以某种方式变动,导致依赖参数位置的现有脚本失效。

对于仅有少量位置参数的简单cmdlet,风险要小得多。 为了防止这个规则过于嘈杂,不要提供三个或更多参数。 一个使用位置参数风险可忽略的简单例子是 Test-Path $Path

调用命令时使用完整的参数名称。

Example

非符合性

Get-Command ChildItem Microsoft.PowerShell.Management

合规的

Get-Command -Noun ChildItem -Module Microsoft.PowerShell.Management

配置规则

Rules = @{
    PSAvoidUsingPositionalParameters = @{
        CommandAllowList = 'Join-Path', 'MyCmdletOrScript'
        Enable           = $true
    }
}

参数

命令允许列表

该参数指定了该规则中排除的命令或脚本。 它接受字符串数组。 默认值为 @()

启用

该参数控制 ScriptAnalyzer 是否会根据该规则检查代码。 它接受一个布尔值。 要禁用此规则,将该参数 $false设置为 。 默认值为 $true