Powershell参数集-两个带有强制/可选参数的可选集

时间:2018-08-07 14:56:40

标签: powershell parameters

我觉得我已经快到了,但是现在看不到木头。

我有一个需要两个参数集的函数,它们都是可选的,但是每个参数集在使用时都具有强制性参数,如果需要,我需要能够同时运行两个参数集:

Function Submit-CSRwithSAN {
   [CmdletBinding(DefaultParameterSetName='MyDefault')]
        Param (
        [Parameter(Mandatory=$true)]
        [ValidateScript({Test-Path $_ -PathType ‘Leaf’})]
        [string]$CSRinPath,

        [Parameter(Mandatory=$true)]
        [string]$CertAuth,

        [Parameter(ParameterSetName="MyDefault",Mandatory=$false)]
        [Parameter(ParameterSetName="CSRequest",Mandatory=$true)]
        [switch]$SubmitToCSR,

        [Parameter(ParameterSetName="CSRequest",Mandatory=$true)]
        [string]$RequestTemplate,

        [Parameter(ParameterSetName="MyDefault",Mandatory=$false)]
        [Parameter(ParameterSetName="AddSANs",Mandatory=$true)]
        [switch]$AddSAN,

        [Parameter(ParameterSetName="AddSANs",Mandatory=$true)]
        [string]$SanDNS1,

        [Parameter(ParameterSetName="AddSANs",Mandatory=$false)]
        [string]$SanDNS2,

        [Parameter(ParameterSetName="AddSANs",Mandatory=$false)]
        [string]$SanIP,

        [Parameter(ParameterSetName="AddSANs",Mandatory=$false)]
        [string]$CSRoutPath
    )

所以,期望的输出是(我认为)

Submit-CSRwithSAN -CSRinPath <string> -CertAuth <string> [-SubmitToCSR] [-AddSAN]  
Submit-CSRwithSAN -CSRinPath <string> -CertAuth <string> -SubmitToCSR -RequestTemplate <string> [-AddSAN -SanDNS1 <string> [-SanDNS2 <string>] [-SanIP <string>] [-CSRoutPath <string>]]
Submit-CSRwithSAN -CSRinPath <string> -CertAuth <string> -AddSAN -SanDNS1 <string> [-SanDNS2 <string>] [-SanIP <string>] [-CSRoutPath <string>] [-SubmitToCSR -RequestTemplate <string>]

当前此功能仅在使用一个参数集或另一个参数集时运行,而不是同时运行-有人可以将我指向正确的方向吗?

0 个答案:

没有答案
相关问题