I've searched around, and I can't find a straight answer of 'no', but also no straight answer of yes either.
What I already know:
[Parameter(DontShow)]only affects tab completion- One suggestion was to use a Common Parameter and test for it's existence in
$PSBoundParameters- while technically viable, this has the side-effect of not having the name that I want for it. - Another suggestion was to hide it within another param as an Alias, but that suits deprecation more.
The scenario I have is having a parameter that shouldn't be used by any 3rd Party, but is used by companion scripts
example:
[CmdletBinding(SupportsShouldProcess)]param(
[switch]$VisibleSwitch,
[switch]$HiddenSwitch ### This switch should not be visible to human-beings.
)
#...
if( $HiddenSwitch) {
#do something
return
}
#...