I have defined the following parameter sets in MyCustomCmdlet with default parameterset as two:
[Parameter(Mandatory = true, ParameterSetName = one)]
[Parameter(Mandatory = true, ParameterSetName = two)]
[Parameter(Mandatory = true, ParameterSetName = three)]
[Parameter(Mandatory = true, ParameterSetName = four)]
[ValidateNotNullOrEmpty]
[Alias("a")]
public string A { get; set; }
[Parameter(Mandatory = true, ParameterSetName = two)]
[ValidateNotNullOrEmpty]
[Alias("b")]
public string B { get; set; }
[Parameter(Mandatory = true, ParameterSetName = three)]
[SupportsWildcards]
[ValidateNotNullOrEmpty]
[Alias("c")]
public string C { get; set; }
[Parameter(Mandatory = true, ParameterSetName = four)]
[ValidateNotNullOrEmpty]
[Alias("d")]
public string D { get; set; }
[Parameter]
[ValidateNotNullOrEmpty]
public string E{ get; set; }
[Parameter]
[ValidateNotNullOrEmpty]
public string F { get; set; }
During debug, am getting expected number of parameter sets i.e. 4 with following parameters:
1.ParameterSetName: one Parameters: A , E, F
2.ParameterSetName: two Parameters: A, B , E, F
3.ParameterSetName: three Parameters: A, C , E, F
4.ParameterSetName: four Parameters: A, D , E, F
However, when I execute:
MyCustomCmdlet -A or MyCustomCmdlet -A -E -F
I am getting error stating, requires mandatory parameter B which is part of default parameter set.
- Can someone please help me understand this behavior?
- How to execute the cmdlet using parameter set "one"