Powershell: Lidando com vários conjuntos de parâmetros

2

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?

    
por RyanL 28.07.2015 / 18:53

0 respostas

Tags