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
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
Prerequisites
Steps to reproduce
ProgressAction causing parameter collisions in advanced functions. The input of -ProgressAction takes over the first parameter.
Simple repro function:
Expected behavior
Actual behavior
Error details
Environment data
Visuals
EDIT: Dumping info from
$PSBoundParametersin the repro function: