[英]Powershell script combine
How can I combine these PowerShell cmdlets instead of running them separately? 如何合并这些PowerShell cmdlet,而不是分别运行它们? These commands are ran on our Exchange server for on premise and Office 365. 这些命令在内部和Office 365的Exchange服务器上运行。
# 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 the picture shown is what the PowerShell script is automating: 在显示的图片中,PowerShell脚本正在自动化:
You could create a function like below and throw it into a .psm1 and it import it as a module or into a .ps1 and dot source it to your session. 您可以创建如下所示的函数,然后将其放入.psm1中,然后将其作为模块导入,或者导入到.ps1中,并将其点源到会话中。 Then you can call this function like I have also shown below. 然后,您可以像下面也显示的那样调用此函数。 Mind you that you will probably want to add some 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 Then Call it like this: 然后像这样调用它:
Set-CustomDistributionGroup -Name 'dis_its3' -DisplayName 'dis_its3' -Alias 'dis_its3' -PrimarySmtpAddress 'jackson.k12.ms.us' -ManagedBy 'Robinson Mykal'
However I Would be careful with this call because you are not specifying what to get. 但是,我会谨慎处理此调用,因为您没有指定获取的内容。 A lot of powershell cmdlets will just return everything and the net effect will be that you update all of them. 许多powershell cmdlet只会返回所有内容,最终结果是您将所有这些cmdlet更新。
# Membership approval
Get-DistributionGroup | Set-DistributionGroup -MemberJoinRestriction:closed -MemberDepartRestriction:closed
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.