I have the following param()
block with a lot of ParameterSetNames
This is inside a function that I use to update, delete or create new rows in a SQL table.
Set-User
# this will use "List"Set-User user value
# this will use "DoWork"Set-User user value -new
# this will use "New"Set-User user -delete
# this will use "Delete"
but since I added the "Delete" and "New" ParameterSets, I can't use "DoWork" anymore. Why?
Error (unfortunately in German):
Set-User : Der Parametersatz kann mit den angegebenen benannten Parametern nicht aufgelöst werden. In Zeile:1 Zeichen:1 + set-user user value + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Set-user], ParameterBindingException + FullyQualifiedErrorId : AmbiguousParameterSet,Set-user
function Set-User {
[CmdLetBinding(DefaultParameterSetName = "list")]
param(
[Parameter(ParameterSetName = "DoWork", Mandatory = $true, Position = 0)]
[Parameter(ParameterSetName = "New", Mandatory = $true, Position = 0)]
[Parameter(ParameterSetName = "Delete", Mandatory = $true, Position = 0)]
[Alias("d")]
[string]$domain,
[Parameter(ParameterSetName = "DoWork", Mandatory = $true, Position = 1)]
[Parameter(ParameterSetName = "New", Mandatory = $true, Position = 1)]
[Alias("t")]
[ValidateSet("XMLOrder","EdiOrder","EmailOrder","Edi")]
[string]$type,
[Parameter(ParameterSetName = "list")]
[Alias("l")]
[switch]$list,
[Parameter(ParameterSetName = "New")]
[switch]$new,
[Parameter(ParameterSetName = "Delete")]
[switch]$delete,
[string]$connectionstring
)
}