我正在尝试执行下面的Powershell命令,以在交换服务器上创建一个新的地址列表,其中包含名称,容器等参数。
Container
是可选的输入/参数,如果未提供其值,如何从 cmdlet 中省略它?
我尝试使用IF
条件,但似乎不起作用。这里有任何帮助吗?
New-AddressList -Name -Container test MyAddressList5 -ConditionalStateOrProvince maha -IncludedRecipients MailboxUsers
您可以通过哈希表传递所需的参数及其相应的值。添加If/Else
条件以包含属性。这样:
$Container = 'test MyAddressList5'
$Parameters = @{}
$Parameters.Add('ConditionalStateOrProvince','maha')
$Parameters.Add('IncludedRecipients','MailboxUsers')
if($Container){$Parameters.Add('Container',$Container)}
New-AddressList @Parameters
此外,当您需要包含Switch
参数时,只需传递$True
.这样:
$Parameters.Add('SomeSwitchParameter',$True)
请查看New-AddressList
中-Container
参数的文档: https://learn.microsoft.com/en-us/powershell/module/exchange/email-addresses-and-address-books/new-addresslist?view=exchange-ps#optional-parameters
具体说来:
如果不使用此参数,则会在根 (\( 下创建地址列表。
。
默认值:无
$container = $null
New-AddressList -Container $container
# or...
$container = ""
New-AddressList -Container $container
看看Get-Help *splatting
,看看一种方法。
更多细节..."splat"是parameter = value
对的哈希表。一旦您在 SPLAT 中拥有基本的始终存在的项目,您就可以像通过$Param_Splat.Add(ParameterName, 'Value')
添加到任何哈希表中一样添加其他项目。然后,当您调用 cmdlet 时,您使用Verb-Noun @Param_Splat
.请注意@
符号,而不是通常的$
。[咧嘴一笑]
保重,
李