description | ms.custom | ms.date | ms.topic | title |
---|---|---|---|---|
Avoid Using Positional Parameters |
PSSA v1.22.0 |
02/13/2024 |
reference |
AvoidUsingPositionalParameters |
** Severity Level: Information **
Using positional parameters reduces the readability of code and can introduce errors. It is possible that a future version of the cmdlet could change in a way that would break existing scripts if calls to the cmdlet rely on the position of the parameters.
For simple cmdlets with only a few positional parameters, the risk is much smaller. To prevent this
rule from being too noisy, this rule gets only triggered when there are 3 or more parameters
supplied. A simple example where the risk of using positional parameters is negligible, is
Test-Path $Path
.
Rules = @{
PSAvoidUsingPositionalParameters = @{
CommandAllowList = 'Join-Path', 'MyCmdletOrScript'
Enable = $true
}
}
Commands or scripts to be excluded from this rule.
Enable or disable the rule during ScriptAnalyzer invocation.
Use full parameter names when calling commands.
Get-Command ChildItem Microsoft.PowerShell.Management
Get-Command -Noun ChildItem -Module Microsoft.PowerShell.Management