Exchange 2013 PowerShell控制语句

流控语句中,我们使用Shell来运行基于条件测试结果的一条或多条命令。你可以使用if语句来测试一个或多个条件语句,也可以使用switch语句,这一节,讲讨论下如何使用流控语句

先来看看示例

首先我创建一个变量,可以被用来进行条件检查:

当使用一个if语句时,如果你使用的关键字在进行条件检查时,如果表达式的值为真,那么才会执行脚本块$DB1 = Get-MailboxDatabase “Mailbox Database 1014271532” –Status

if($DB1.DatabaseSize -gt 100mb) {

"The Database is larger than 100mb"

}

也可以使用ElseIf 关键字添加其它条件检查

if($DB1.DatabaseSize -gt 50mb) {

"The Database is larger than 5gb"

}

elseif($DB1.DatabaseSize -gt 100mb) {

"The Database is larger than 10gb"

}

如果没有条件评估是正确的,也可以添加Else语句

if($DB1.DatabaseSize -gt 50mb) {

"The Database is larger than 50mb"

}

elseif($DB1.DatabaseSize -gt 100mb) {

"The Database is larger than 100mb"

}

else {

"The Database is not larger than 50mb or 100mb"

}

如果检查有多个条件,我们可以考虑使用Switch语句,而不是一系列的if和Elseif语句

switch($DB1.DatabaseSize) {

{$_ -gt 50MB} {"Larger than 50MB"; break}

{$_ -gt 100MB} {"Larger than 100MB"; break}

{$_ -gt 300MB} {"Larger than 300MB"; break}

{$_ -gt 500MB} {"Larger than 500MB"; break}

Default {"Smaller than 50MB"}

}

在执行脚本的时候,使用控制流语句,可以是if,Elseif和Else条件语句。

继续看下面一个示例,可以使用一个Switch语句,能够命令时匹配一个特定值,看看下面的代码:

$number = 3

switch ($number) {

1 {"One" ; break}

2 {"Two" ; break}

3 {"Three" ; break}

4 {"Four" ; break}

5 {"Five" ; break}

Default {"No matches found"}

}

看看运行结果:

在这个示例中,变量$number的值设置为3,当Switch语句运行时,这个单词Three将会被返回。但是假如变量的值没有被定义,例如,42,这个脚本的运行结果将会显示No Matches found

Switch语句可以用来执行复杂的正则表达式匹配,通配符,精确匹配以及大小写敏感值等,更多关于Switch的语句可以使用帮助系统get-Help About_Switch

让我们看看一个更实际点的例子,如何使用一个流控语句在一个脚本中,遍历组织配置中每个邮箱的配额设置

foreach ($mailbox in Get-Mailbox) {

if($mailbox.office -eq "Sales") {

Set-Mailbox $mailbox -ProhibitSendReceiveQuota 5gb `

-UseDatabaseQuotaDefaults $false

}

elseif($mailbox.office -eq "Accounting") {

Set-Mailbox $mailbox -ProhibitSendReceiveQuota 2gb `

-UseDatabaseQuotaDefaults $false

}

else {

Set-Mailbox $mailbox -UseDatabaseQuotaDefaults $true

}

}

在这个例子中,我们使用if语句去检查每个邮箱的办公室(Office)是Sales的邮箱,假如是,则把ProhibitSendReseiveQuota配置为5gb,假如不是,ElseIf语句将检查办公室是否为Accounting,如果是,则把ProhibitSendReceiveQuota配置为 2gb,如果办公室不是这两个值,那么把配额配置为数据库的默认值。

时间: 2024-08-25 01:54:53

Exchange 2013 PowerShell控制语句的相关文章

Exchange 2013 PowerShell管理联系人&通讯组&资源邮箱

管理联系人 创建联系人,使用如下语法: New-MailContact -Alias rjones ` -Name "Rob Jones" ` -ExternalEmailAddress [email protected] ` -OrganizationalUnit sales 已启用邮箱的用户可以使用如下语法: New-MailUser -Name 'John Davis' ` -Alias jdavis ` -UserPrincipalName [email protected]

Exchange 2013 PowerShell新建&修改&删除邮箱

在我们日常使用Exchange Management Shell最多的应该就是邮箱的管理了.在这一节中,将主要介绍下在Exchange中使用语法命令在组织中创建.更新和删除邮箱. 先来看一个示例: 1.  我们可以使用Exchange Management Shell创建一个启用了邮箱功能的AD账户.语法如下: $password = ConvertTo-SecureString -AsPlainText abc.123 -Force New-Mailbox -UserPrincipalName

Exchange 2013 PowerShell 传输文件及并行管道

自从Exchange 2013管理Shell命令是通过远程PowerShell会话执行,导入和导出文件需要一个新的特定参数.大概有上百个Shell命令需要用到,那么这一小节,我们就看看如何使用这些参数通过远程Shell连接进行传输文件的. 传输文件工作方式: 假如你正在当前活动目录站点中创建一个边缘订阅中心到传输服务器.当你在边缘服务器上生成了xml文件后,你可以通过New-EdgeSubscription命令,具体语法如下: [byte[]]$data = Get-Content -Path

Exchange 2013 PowerShell手动配置远程PowerShell连接

介绍 在Exchange 2007的时候,微软就推出了一套全新的基于Shell的管理工具:PowerShell V1,而且所有的图形化界面也是建立在这种技术之上的. 到了Exchange 2010,PowerShell更紧密的集成在产品中,Exchange 2010使用的是PowerShell V2,很大程度上依赖于其新的远程架构.即使你的服务器在本地或云端,都可以方便的使用这套管理工具. 在Exchange 2013中,使用的是PowerShell V3,有了更多的命令以及核心功能改变.在20

Exchange 2013 PowerShell数组和哈希表

示例: 你可以使用一个变量来存放一个数组,通过这个数组对变量分配多个值,在值之间,值需要用分隔号隔开,下面来创建一个示例: $servers = "EX1","EX2","EX3" 创建一个空的哈希表,可以使用如下语法: $hashtable = @{} 创建完哈希表后,我们可以对它进行赋值: $hashtable["server1"] = 1 $hashtable["server2"] = 2 $hash

Exchange 2013 PowerShell关键概念之一

介绍 当你的组织决定升级到Exchange Server 2013,去体验一些新的功能,如集成的电子邮件存档.发现功能以及高可用功能.不管你是否喜欢,你应该意识到PowerShell已经是Exchange服务器管理工具的一部分,而且你需要去学习一些基本脚本知识,从而建立一些脚本管理Exchange Server.这本书就是关于这方面的介绍.在这一章,将介绍一些PowerShell的一些核心概念,这些概念讲方便你学习这本书中提到的一些实例知识.当然,假如你的PowerShell比较熟悉,可以跳过本

Exchange 2013 PowerShell管理域或整个林的收件人范围

Exchange管理工具可以配置为使用特定的部分活动目录层次结构使用特定的收件人范围.当你设置收件人范围为活动目录中的一个位置,例如一个域或者一个组织单元,Exchange Management Shell仅仅允许你查看指定范围内的收件人信息.在这一节,我们来看看使用Exchange Management Shell如何设定收件人范围. 如何做到这一点呢? 可以在Exchange Management Shell中使用Set-AdServerSettings命令来设置一个收件人范围.例如,设置当

Exchange 2013 PowerShell创建自定义对象

PowerShell是一个基于对象的Shell,在写一行程序,脚本和函数时,給了我们很大的灵活性.当生成详细的报告时,我们需要从代码中自定义我们的数据输出,或者可以通过管道输送到其它的命令.我们还需要能够控制和定制代码的输出,这样我们可以合并来自多个源的数据到一个单独的对象.在这一节中,我们将学习下基本的构建定制的对象 首先我们要做的时创建一个邮箱对象的集合,将用来作为一组新的自定义对象的数据源: $mailboxes = Get-Mailbox 可以添加自定义的属性用于后续整个管道的对象属性,

Exchange 2013 PowerShell发送SMTP邮件

作为一个Exchange管理员,我们可能需要使用PowerShell脚本自动化的发送电子邮件.下面一起学习下如何使用PowerShell脚本在你的组织中发送SMTP电子邮件信息. 怎么做到这点呢? PowerShell V2以及后续版本都提供了核心命令可以通过SMTP发送电子邮件信息.使用下面的语法可以发送一份电子邮件信息: Send-MailMessage -To [email protected] ` -From [email protected] ` -Subject "Test E-ma