Skip to content

ProgressAction seems to cause parameter collision #26579

@hudsonm62

Description

@hudsonm62

Prerequisites

Steps to reproduce

ProgressAction causing parameter collisions in advanced functions. The input of -ProgressAction takes over the first parameter.
Simple repro function:

function test {
    [CmdletBinding()]
    param(
        [Parameter()]$P1,
        [Parameter()]$P2
    )

    write-output "$P1 $P2"
}

Expected behavior

PS> test -P1 'Hello' -P2 'World' -ProgressAction SilentlyContinue
Hello World

Actual behavior

PS> test -P1 'Hello' -P2 'World' -ProgressAction SilentlyContinue
SilentlyContinue World

Error details

Environment data

Name                           Value
----                           -----
PSVersion                      7.5.4
PSEdition                      Core
GitCommitId                    7.5.4
OS                             Microsoft Windows 10.0.19045
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Visuals

Image Image

EDIT: Dumping info from $PSBoundParameters in the repro function:

function test {
    [CmdletBinding()]
    param([Parameter()]$P1,[Parameter()]$P2)
    $PSBoundParameters
    "`nOutput: $P1 $P2"
}

PS> test -P1 'Hello' -P2 'World' -ProgressAction SilentlyContinue

Key            Value
---            -----
P1             Hello
P2             World
ProgressAction SilentlyContinue

Output: SilentlyContinue World

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions