我正在尝试在PowerShell中创建一个函数,其中有一个特定的参数开关,然后会给出其他选项,但只有在与主要参数一起使用时才能使用这些选项。这将用于将用户添加到AD组中。我仍在学习ParameterSet的工作原理。
我想要实现的是类似下面这样的功能:
可行:(其中21和22是多选开关)
请问如何创建参数集以允许此操作?基本上,我目前所拥有的是(为了这个问题而更名)。
请告知是否需要澄清其中任何内容。
我想要实现的是类似下面这样的功能:
可行:(其中21和22是多选开关)
Set-UserAccess -user Username -Access1 -Access2 -Access21
Set-UserAccess -user Username -Access1 -Access2 -Access21 -Access22
Set-UserAccess -user Username -Access1 -Access2 -Access22
Set-UserAccess -user Username -Access2 -Access22
不行:
Set-UserAccess -user Username -Access1 -Access21
Set-UserAccess -user Username -Access1 -Access2
Set-UserAccess -Access21
请问如何创建参数集以允许此操作?基本上,我目前所拥有的是(为了这个问题而更名)。
[CmdletBinding(DefaultParameterSetName='Default')]
Param
(
[Parameter(Mandatory=$true,
ValueFromPipelineByPropertyName=$true,
Position=0)][string[]]
$user,
[Parameter()][switch]$Access1,
[Parameter()][switch]$Access2,
[Parameter()][switch]$Access3,
[Parameter(ParameterSetName='Access4')][Switch]$Access4,
[Parameter(ParameterSetName='Access4')][Switch]$Access4Choice1,
[Parameter(ParameterSetName='Access4')][Switch]$Access4Choice2,
)
请告知是否需要澄清其中任何内容。
[string[]]$Access4
(ISE不会显示第二个参数的菜单,但是TAB键有效)。 - Frode F.