严重性级别:信息
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。