使用PowerShell管理Exchange Server 2016
- 家
- StarWind博客
- 使用PowerShell管理Exchange Server 2016
使用PowerShell管理Exchange Server 2016
PowerShell已成为管理Microsoft服务器产品的首选工具。系统管理员可以充分利用PowerShell来管理角色和执行例行管理任务。通过使用命令行,sysadmins能够:
- 创建一个邮箱
- 配置接收连接器
- 生成自定义报告
- 管理通讯组成员,权限和组类型
- 管理交换服务
- 等等。
在本文中,我们不会介绍所有Exchange Management cmdlet,但我将描述几个示例以指导您朝着正确的方向发展。在所有Exchange Server版本中,Exchange安装会自动配置许多设置。因此,最好单独浏览所有设置以熟悉您的Exchange Server。
交换管理外壳
感谢上一篇文章,您已经安装了所有内容。现在是时候使用Exchange命令行管理程序控制台配置Exchange服务器了。它是什么?EMS(Exchange命令行管理程序)基于Microsoft Windows PowerShell,它提供了强大的命令行界面来执行和自动化管理任务。使用Exchange命令行管理程序,可以管理Exchange Server 2016的各个方面。
如何运行Exchange命令行管理程序?
让我们看一下可以在脚本环境中使用EMS的几种方法。安装Exchange Server时,会同时安装Exchange工具和Exchange工具,从而为您提供EMS。
单击开始> Microsoft Exchange Server 2016> Exchange命令行管理程序。
如您所见,它只是将加载Exchange PowerShell模块的“ powershell.exe”的自定义版本。您可能需要从PowerShell控制台手动连接到Exchange服务器。因此,让我们从创建PowerShell会话开始:
1
2
3
|
PS > $session = New-PSSession -ConfigurationName microsoft.exchange -ConnectionUri
https://mbx01.get-cmd.local/powershell
|
您需要手动指定要连接的服务器。接下来,您应该能够使用Import-PSSession cmdlet加载Exchange模块:
1
|
PS > Import-PSSession $session
|
现在,您可以通过运行Get-Mailbox cmdlet来比较两个控制台,以列出Exchange Server上的所有邮箱并确认结果是否相同:
您必须使用哪一个?好吧,这取决于您!
检查Microsoft Exchange Server状态
在配置Exchange之前,我们只需检查Exchange服务是否已启动:
1
2
3
|
PS > Get-Service -Name *Exchange* | select Status, DisplayName | sort Status | ft -Au
toSize
|
我不想使用IMAP和POP,因此这些Windows服务已停止。现在,我们可以检查一些有关我们的Exchange Server的有用信息:
1
2
3
|
PS > Get-ExchangeServer | select Fqdn, ServerRole, AdminDisplayVersion, IsEdgeServer
| ft -AutoSize
|
如何知道哪些cmdlet可用于配置Exchange?
当您打开控制台时,EMS向您显示一些有用的提示。因此,您可以运行以下命令以仅显示Exchange cmdlet:
1
|
PS > Get-ExCommand
|
您可以在TechNet网站上获取完整列表:
https://technet.microsoft.com/zh-CN/library/bb124413(v=exchg.160).aspx
配置Exchange Server 2016
现在,我们可以从配置接受的域和电子邮件地址策略开始。接受的域是您配置为接收电子邮件的SMTP名称空间。要创建一个接受域,请使用以下命令:
1
|
PS > New-AcceptedDomain -Name <Name> -DomainName <Domain> -DomainType <Authoritative | InternalRelay | ExternalRelay>
|
我们可以验证是否已成功创建了接受域并将其设置为默认域。
使用New-EmailAddressPolicy cmdlet创建电子邮件地址策略:
1
2
3
|
PS > New-EmailAddressPolicy -Name 'All External Users' -RecipientContainer 'get-cmd.local/External' -IncludedRecipients 'AllRecipients' -Priority 'Lowest' -EnabledEmailAddressTemplates 'SMTP:%g.%[email protected]'
PS > New-EmailAddressPolicy -Name 'All Internal Users' -RecipientContainer 'get-cmd.local/Internal' -IncludedRecipients 'AllRecipients' -Priority '1' -EnabledEmailAddressTemplates 'SMTP:%g.%[email protected]'
|
Exchange要求您使用变量来定义电子邮件地址的本地部分。下表(来自TechNet网站)描述了这些变量:
连接器
您必须创建一个发送连接器才能将出站邮件路由到Internet。我建议您通过智能主机(反垃圾邮件网关)路由出站邮件。
1
|
PS > New-SendConnector -Internet -Name SendToInternet -AddressSpaces * -FrontendProxyEnabled:$true –SmartHosts AntiSpamGW01.get-cmd.com
|
此连接器将通过Internet发送电子邮件。该-FrontendProxyEnabled参数设置为True。这意味着Exchange实际上将通过CAS服务器将出站电子邮件代理到Internet。
请注意以下信息:
- Exchange不会自动创建默认的发送连接器
- 基本连接器将通过DNS解析发送到Internet
请注意,如果要在Exchange上测试SMTP连接器,可以运行以下命令:
1
|
PS > Send-MailMessage –From sender@SenderDomain.com –To recipient@RecipientDomain.com –Subject “Test SMTP Connector” –Body “Test mail” -SmtpServer smtp.domain.com
|
Exchange Server 2016使用接收连接器来控制来自Exchange组织外部的邮件服务器的入站SMTP连接。Exchange创建一个默认的接收连接器:
但是,如果您需要创建一个新的,请使用以下命令:
1
|
PS > New-ReceiveConnector -Name FromSmartHost -Usage Custom -Bindings 192.168.0.143:25 -RemoteIPRanges 192.168.0.200
|
监控Exchange服务器
如何检查电子邮件队列的内容?
很高兴知道如何检查电子邮件队列。这对于确定邮件流是否流畅很有用。Exchange Server上有三种可用的队列:
- 提交:等待传输代理处理的邮件
- 无法访问:无法传递到目的地的邮件
- 毒害消息:分类为服务器危险消息。
要检查提交队列的内容,请运行以下命令:
1
|
PS > Get-Queue -Identity Submission
|
Exchange Server有一些有用的日志,您可以检查。使用Get-MessageTrackingLog cmdlet搜索存储在邮件跟踪日志中的邮件传递信息。
1
|
PS > Get-MessageTrackingLog -start '[date it started]' -resultsize unlimited | where-object {$_.Sender -like '*domain.com'}
|
您还可以计算Exchange Server处理的电子邮件总数:
几个月前,我编写了两个PowerShell脚本。第一个允许您从GUI在邮件跟踪日志中执行查询。该脚本可从Microsoft TechNet画廊获得:https : //gallery.technet.microsoft.com/Exchange-2013-Message-875b3eeb
第二个是针对您的Exchange环境的运行状况检查:https : //gallery.technet.microsoft.com/Exchange-2013-Audit-and-7e16fba5
StarWind HyperConverged Appliance是一个交钥匙的,完全由软件定义的超融合平台,专门用于密集型虚拟化工作负载。为了带来所需的性能并减少停机时间,该解决方案可以由预算和IT团队资源有限的组织部署。此外,它只需要一个现场节点即可为您的应用程序交付HA,从而使该解决方案更具成本效益。 | |
了解有关➡StarWind HyperConverged Appliance的更多信息 |
邮箱和通讯组管理
Exchange Server 2016中有不同类型的收件人。安装Exchange 2016之后,您可以创建用户邮箱,这是最常用的邮箱类型之一。但是,您也可以创建资源邮箱和通讯组。让我们看一些例子:
创建用户邮箱
1
2
3
4
5
|
PS > password = Read-Host "Enter password" -AsSecureString
Enter password: *********
PS > New-Mailbox -UserPrincipalName contact@get-cmd.com -Alias Contact -Name Contact -OrganizationalUnit Users -Password $password -FirstName Nicolas -LastName PRIGENT -DisplayName "Nicolas PRIGENT" -ResetPasswordOnNextLogon $true
|
创建资源邮箱
1
|
PS > New-Mailbox -Name "<Identity>" –Room
|
创建设备邮箱
1
|
PS > New-Mailbox -Name "<Name>" -Equipment
|
创建通讯组
1
|
PS > New-DistributionGroup -Name "ITDepartment" -Members contact@get-cmd.com
|
请记住,对于New- * cmdlet,通常(但并非总是)有Get- *和Set- * cmdlet可用。
管理Outlook / OWA配置
最后,大多数Outlook的Exchange特定功能(例如自动答复)(也称为“外出时的助手”或“ OOF”)也可以使用EMS进行配置。例如,Exchange管理员可以使用Set-MailboxAutoReplyConfiguration cmdlet启用另一个用户的自动答复,而无需登录到邮箱:
1
|
PS > Set-MailboxAutoReplyConfiguration -Identity <username> -AutoReplyState Enabled -InternalMessage "Your internal message." -ExternalMessage "Your external message."
|
结论
使用1000多个cmdlet可以使用PowerShell和Exchange进行很多操作。我无法涵盖所有这些cmdlet,但是本文的目的是描述几个示例并解释PowerShell如何在日常sysadmin任务中为您提供帮助。借助PowerShell,您现在可以轻松创建脚本以在新环境中自动部署和配置Exchange Server 2016。
谢谢阅读!
相关资料: