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 -CopyPermissions
sendiri 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?
powershell
RyanL
sumber
sumber
Lihatlah pertanyaan ini: Menggunakan Set Parameter Lanjut dalam Fungsi dengan Beberapa Sakelar Unik
beatcracker