Powershell: Berurusan dengan beberapa set parameter


2

Saya memiliki fungsi bekerja yang memiliki 2 set parameter, yang keduanya berisi parameter wajib. Saya ingin merancang fungsi sehingga masing-masing set dapat digunakan sendiri, atau bersama-sama. Inilah yang saya kumpulkan:

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
    )
}

Satu-satunya masalah yang saya miliki adalah bahwa misalnya, jika saya tentukan -CopyPermissionssendiri pada baris perintah, saya mendapatkan pesan parameter set yang mendua alih-alih diminta nilai untuk FromUser.

Saya mengerti mengapa ini terjadi, namun jika mungkin saya ingin melemparkan kesalahan yang lebih deskriptif, seperti FromUser must be specified whenever CopyPermissions is set. Apakah ada cara saya bisa melakukan itu?


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.