Eu tenho uma função trabalhada que possui 2 conjuntos de parâmetros, ambos contendo parâmetros obrigatórios. Eu gostaria de projetar a função para que os conjuntos possam ser usados individualmente ou juntos. Foi isso que eu coloquei:
function Do-This {
[CmdletBinding(DefaultParameterSetName='NoTransferOrCopy')]
Param(
[Parameter(ParameterSetName='CopyPermissions')]
[Parameter(ParameterSetName='CopyAndTransfer')]
[switch]$CopyPermissions,
[Parameter(ParameterSetName='CopyPermissions', Mandatory=$True)]
[Parameter(ParameterSetName='CopyAndTransfer', Mandatory=$True)]
[string]$FromUser,
[Parameter(ParameterSetName='CopyPermissions')]
[Parameter(ParameterSetName='CopyAndTransfer')]
[switch]$CopyAll,
[Parameter(ParameterSetName='TransferMDrive')]
[Parameter(ParameterSetName='CopyAndTransfer')]
[switch]$TransferMDrive,
[Parameter(ParameterSetName='TransferMDrive', Mandatory=$True)]
[Parameter(ParameterSetName='CopyAndTransfer', Mandatory=$True)]
[string]$OldServer,
[Parameter(ParameterSetName='TransferMDrive', Mandatory=$True)]
[Parameter(ParameterSetName='CopyAndTransfer', Mandatory=$True)]
[string]$NewServer
)
}
O único problema que tenho é que, por exemplo, se eu especificar -CopyPermissions
sozinho na linha de comando, recebo uma mensagem de conjunto de parâmetros ambíguos em vez de ser solicitado por um valor para FromUser
.
Eu entendo porque isso está ocorrendo, no entanto, se possível, eu gostaria de lançar um erro mais descritivo, algo como FromUser must be specified whenever CopyPermissions is set
. Existe alguma maneira de fazer isso?
Tags powershell