Search code examples
powershellexchange-server

How to omit powershell parameter from cmdlet if value not provided?


I'm trying to execute a below Powershell command to create a new address list on exchange server with parameters like Name, Container, etc.

Container is an optional input/parameter, how do I omit it from cmdlet if its value is not provided?

I tried with IF conditionals but but does not seems working. Any help here?

New-AddressList -Name -Container \test MyAddressList5 -ConditionalStateOrProvince maha -IncludedRecipients MailboxUsers

Solution

  • You can pass needed parameters with their corresponding values via hashtable. Add If/Else conditions to include properties. Like so:

    $Container  = '\test MyAddressList5'
    
    $Parameters = @{}
    $Parameters.Add('ConditionalStateOrProvince','maha')
    $Parameters.Add('IncludedRecipients','MailboxUsers')
    if($Container){$Parameters.Add('Container',$Container)}
    
    New-AddressList @Parameters
    

    Also, when you need to include Switch parameter just pass $True. Like so:

    $Parameters.Add('SomeSwitchParameter',$True)