Say you have and old, deprecated parameter set, and a new parameter set:
SYNTAX
Get-FooBar -SomeCommonParameter <string> -NewParameter <NewResourceType>
Get-FooBar -SomeCommonParameter <string> -OldParameter <OldResourceType>
I want both parameter sets to continue working, to preserve compatibility with existing scripts, but I do not want the old deprecated parameter set to appear in the Get-Help output. Or, at the very least, clearly marked as deprecated within the SYNTAX section of Get-Help.
The DontShow property of the parameter attribute in PowerShell 4.0 helps a bit, as then IntelliSense/tab completion won't use it, but the parameter set still appears in the Get-Help output.
We are currently using PowerShell 3.0, but I don't think updating the version of PowerShell we target would be a blocker.
Are you changing names, or is the functionality different as well? If you're just changing names, make the new name the name of the parameter and
aliasthe old names.If you're changing functionality as well, the
dbatoolsmodule does the following:Example:
Get-DbaDiskSpacecallsTest-DbaDeprecationfrom itsbeginblock.Test-DbaDeprecationparses the function call to find usage of the passed-in (deprecated) parameter name.