How to Declare Parameter Sets
This example shows how to define two parameter sets when you declare the parameters for a cmdlet. Each parameter set has both a unique parameter and a shared parameter that is used by both parameter sets. For more information about parameters sets, including how to specify the default parameter set, see Cmdlet Parameter Sets.
Important
Whenever possible, define the unique parameter of a parameter set as a required parameter. However, if you want your cmdlet to run without specifying any parameters, the unique parameter can be an optional parameter. For example, the unique parameter of the Get-Command
cmdlet is optional.
How to Define Two Parameter Sets
Add the
ParameterSet
keyword to the Parameter attribute for the unique parameter of the first parameter set.[Parameter(Position = 0, Mandatory = true, ParameterSetName = "Test01")] public string UserName { get { return userName; } set { userName = value; } } private string userName;
Add the
ParameterSet
keyword to the Parameter attribute for the unique parameter of the second parameter set.[Parameter(Position = 0, Mandatory = true, ParameterSetName = "Test02")] public string ComputerName { get { return computerName; } set { computerName = value; } } private string computerName;
For the parameter that belongs to both parameter sets, add a Parameter attribute for each parameter set and then add the
ParameterSet
keyword to each set. In each Parameter attribute, you can specify how that parameter is defined. A parameter can be optional in one set and mandatory in another.[Parameter(Mandatory= true, ParameterSetName = "Test01")] [Parameter(ParameterSetName = "Test02")] public string SharedParam { get { return sharedParam; } set { sharedParam = value; } } private string sharedParam;