Microsoft Exchange 自动化
使用 PowerShell 自动执行重复的 Microsoft Exchange 和 Exchange Online 任务是成功的 IT 专业人员和系统工程师的关键。本文探讨了用于管理 Microsoft Exchange 的六个 PowerShell 用例。
Microsoft Exchange 和 Exchange Online 仍然是许多组织内电子邮件、日历和联系人的基石。随着 Exchange 环境变得越来越复杂,管理员寻求能够简化管理任务的工具。 PowerShell 凭借其强大的命令行 shell 和脚本语言,提供了比传统图形用户界面 (GUI) 更有效地管理 Exchange(在线)的强大解决方案。
为什么使用 PowerShell 进行 Microsoft Exchange 管理?
- 自动化:PowerShell 脚本自动执行重复任务,确保一致性并节省时间。
- 访问各种功能:某些 Exchange 设置和功能只能通过 PowerShell 访问,从而提供对系统的更多控制。
- 批量操作:PowerShell允许批量处理任务,例如同时更新多个邮箱,这通过GUI来说很麻烦。
- 远程管理:管理员可以通过 PowerShell 远程管理 Exchange 环境,这是跨多个位置管理服务器的必要条件。
- 集成:PowerShell 脚本可以与其他系统和服务集成,提供统一的 IT 管理方法。
让我们看一下 Microsoft Exchange PowerShell 自动化的一些实际用例。
Cmdlet 1:获取邮箱
Get-Mailbox 检索有关 Exchange(在线)环境中邮箱的信息。
这一行可以快速审核整个组织的邮箱设置和状态:
Get-Mailbox -ResultSize Unlimited | Format-Table DisplayName, ServerName, ProhibitSendQuota Cmdlet 2:获取 EXOMailbox
Get-EXOMailbox 仅在 Exchange Online 中可用。 它提供 Exchange Online 邮箱属性和设置的详细信息。以下示例将 Get-EXOMailbox 与 Get-EXOMailboxStatistics cmdlet 结合起来,并显示环境中最大的 10 个邮箱。
Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxStatistics | Sort-Object TotalItemSize -Descending | Select-Object DisplayName,TotalItemSize -First 10 Cmdlet 3:设置邮箱
Set-Mailbox cmdlet 允许您配置邮箱属性。您可以更改 130 多项邮箱设置,例如配额或权限。以下代码示例包含 -WhatIf 参数。它允许首先模拟和测试结果。
Get-User | where {$_.Department -eq "Sales"} | Get-Mailbox | Set-Mailbox -ProhibitSendQuota 5GB -ProhibitSendReceiveQuota 5GB -IssueWarningQuota 4GB -Whatif Cmdlet 4:获取分发组
您想查找现有的通讯组吗?那么 Get-DistributionGroup 就是正确的 cmdlet。以下示例显示包含名称“Consulting”的通讯组的所有属性。
Get-DistributionGroup -Filter {name -like "*Consulting*"} |Select-Object * |Out-GridViewCmdlet 5:新邮箱
使用 New-Mailbox,您可以创建一个或多个 Exchange 邮箱。以下是基于 csv 文件创建新邮箱的示例。
$mbxs = Import-Csv 'C:\users.csv'Foreach ($mbx in $mbxs) {New-Mailbox -Name $mbx.DisplayName -DisplayName $mbx.DisplayName -MicrosoftOnlineServicesID $mbx.UserPrincipalName -Password (ConvertTo-SecureString -String 'YourPassword' -AsPlainText -Force) -ResetPasswordOnNextLogon $true -MailboxPlan 'MailboxPlan'}Cmdlet 6:设置邮箱自动回复配置
使用 Set-MailboxAutoReplyConfiguration cmdlet 为用户激活外出通知。它允许您无限期地启用消息或将其安排在特定的时间段内。
$autoReplyParams = @{
Identity = "john@doe.com"
AutoReplyState = "Enabled"
ExternalMessage = "Hello, I'm currently not in the office."
InternalMessage = "Hello colleague, I'm currrently not in the office"
}
Set-MailboxAutoReplyConfiguration @autoReplyParams结论
利用 PowerShell 管理 Exchange,无论是本地还是在线,都可以提供高水平的效率、灵活性和控制力。上面列出的 cmdlet 是管理员比通过 GUI 更有效地执行各种任务的基本工具。通过掌握这些 cmdlet,管理员可以确保其 Exchange 环境得到良好管理、安全并根据其组织的需求进行定制。观看我们的网络研讨会“使用 PowerShell 简化 Exchange(在线)管理”,了解有关使用 PowerShell 管理 Exchange(在线)的更多信息。
