如果未提供值,如何从cmdlet省略powershell参数?

时间:2018-10-01 08:02:55

标签: powershell exchange-server

我正在尝试执行下面的Powershell命令,以在Exchange服务器上使用名称,容器等参数创建新的地址列表。

class ParentClass { public void Display() { Console.WriteLine("Display method in Parent class");//second get executed } } class ChildClass : ParentClass { public ChildClass(string x)//first get executed { Console.WriteLine(x); } public void Display1() { Console.WriteLine("Display method in Child class"); } } public class Program { public static void Main() { ParentClass P = new ChildClass("First get Executed"); P.Display(); Console.ReadKey(); } } 是可选的输入/参数,如果未提供cmdlet的值,如何从cmdlet中忽略它?

我尝试了Container个条件,但似乎不起作用。这里有帮助吗?

IF

3 个答案:

答案 0 :(得分:2)

您可以通过 hashtable 传递所需的参数及其相应的值。添加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)

答案 1 :(得分:0)

-Container中查看New-AddressList参数的文档:https://docs.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

答案 2 :(得分:-1)

看看Get-Help *splatting,看看有什么方法。

更详细一点……“ splat”是parameter = value对的哈希表。一旦有了最基本的总是存在的项目,就可以像$Param_Splat.Add(ParameterName, 'Value')一样将其他项目添加到任何哈希表中。然后,当您调用cmdlet时,您将使用Verb-Noun @Param_Splat。请注意,@符号而不是通常的$。 [咧嘴]

保重,