我觉得我已经快到了,但是现在看不到木头。
我有一个需要两个参数集的函数,它们都是可选的,但是每个参数集在使用时都具有强制性参数,如果需要,我需要能够同时运行两个参数集:
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>]
当前此功能仅在使用一个参数集或另一个参数集时运行,而不是同时运行-有人可以将我指向正确的方向吗?