Skip to main content
powershell/PSAvoidUsingPositionalParameters is a PSScriptAnalyzer diagnostic emitted by tally for PowerShell snippets embedded in Dockerfiles.
tally disables this rule by default for Dockerfile RUN snippets because there is no downstream pipeline or caller in a one-shot container build, so the script-reusability concerns this rule targets do not apply. Re-enable it with include = ["powershell/PSAvoidUsingPositionalParameters"] or by setting rules.powershell.PSAvoidUsingPositionalParameters.severity = "warning" in .tally.toml.

Description

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.

Configuration

Parameters

CommandAllowList: string[] (Default value is @())

Commands or scripts to be excluded from this rule.

Enable: bool (Default value is $true)

Enable or disable the rule during ScriptAnalyzer invocation.

How

Use full parameter names when calling commands.

Examples

Problematic code

Correct code

Source

This rule documentation is adapted from Microsoft’s PSScriptAnalyzer documentation for AvoidUsingPositionalParameters, licensed under CC BY 4.0.