exchange server - Powershell script combine -


how can combine these powershell cmdlets instead of running them separately? these commands ran on our exchange server on premise , office 365.

# general new-distributiongroup -name dis_its3 -displayname dis_its3 -alias dis_its3 -primarysmtpaddress dis_its3@jackson.k12.ms.us   # ownership set-distributiongroup -identity "dis_its3" –managedby robinson mykal -bypasssecuritygroupmanagercheck   # membership approval get-distributiongroup | set-distributiongroup -memberjoinrestriction:closed -memberdepartrestriction:closed   # delivery management set-distributiongroup "dis_its3" -requiresenderauthenticationenabled $false 

in picture shown powershell script automating:

o365 screenshot

you create function below , throw .psm1 , import module or .ps1 , dot source session. can call function have shown below. mind you want add error handling.

 function set-customdistributiongroup  {      [cmdletbinding()]      param      (          [parameter(              position = 0,              mandatory = $true          )]          [validatenotnullorempty()]          [alias('distributiongroupname')]          [string] $name,           [parameter(              position = 1,              mandatory = $true          )]          [validatenotnullorempty()]          [alias('distributiongroupdisplayname')]          [string] $displayname,           [parameter(              position = 2,              mandatory = $true          )]          [validatenotnullorempty()]          [alias('distributiongroupalias')]          [string] $alias,           [parameter(              position = 3,              mandatory = $true          )]          [validatenotnullorempty()]          [alias('distributiongroupprimarysmtpaddress')]          [string] $primarysmtpaddress,           [parameter(              position = 4,              mandatory = $true          )]          [validatenotnullorempty()]          [alias('distributiongroupmanagedby')]          [string] $managedby              )      process      {          # general          new-distributiongroup -name $name -displayname $displayname -alias $alias -primarysmtpaddress $primarysmtpaddress           # ownership          set-distributiongroup -identity $name –managedby $managedby -bypasssecuritygroupmanagercheck            # membership approval          get-distributiongroup | set-distributiongroup -memberjoinrestriction:closed -memberdepartrestriction:closed            # delivery management          set-distributiongroup -identity $name -requiresenderauthenticationenabled $false      }  } 

and call this:

 set-customdistributiongroup -name 'dis_its3' -displayname 'dis_its3' -alias 'dis_its3' -primarysmtpaddress 'jackson.k12.ms.us' -managedby 'robinson mykal' 

however careful call because not specifying get. lot of powershell cmdlets return , net effect update of them.

 # membership approval  get-distributiongroup | set-distributiongroup -memberjoinrestriction:closed -memberdepartrestriction:closed 

Comments