如何使用PowerShell连接到Exchange Online

Exchange Online PowerShell 是一个命令行工具,允许您管理 Exchange Online 邮箱和用户。它可用于执行各种任务,如创建和管理邮箱、配置邮件流规则和管理用户权限。在本指南中,我们将向您展示如何安装并连接到 Exchange Online PowerShell。如果您是在 Exchange Online 服务中担任 Microsoft 365 管理职责的 IT 专业人员,本指南适合您!

如何安装并连接到 Exchange Online PowerShell

作为 IT 专业人员,您的 Microsoft 365 管理职责很可能涵盖 Exchange Online。虽然大多数任务可以通过 Exchange 管理中心网站 完成,但通过命令行尤其适合脚本编写!

广告

先决条件

您可以使用标准的Connect-* cmdlet像连接其他Office 365服务一样连接到Exchange Online。但是,在安装和使用Exchange Online PowerShell时需要牢记一些先决条件。

多年来出现了几个版本的这些模块。2.0.5版本及更早版本被称为Exchange Online PowerShell V2模块(EXO V2)。3.0.0版本及之后版本被称为Exchange Online PowerShell V3模块(EXO V3)。

我们将重点关注这个更新的模块,因为它支持多因素身份验证(MFA),相比之前的版本具有性能改进,并且更加安全!而且,它支持最新的PowerShell Version 7.x版本。此外,一系列更新的cmdlet(EXO-*)使IT专业人员在完成工作时更快更高效。

使用‘Install-Module’安装Echange Online PowerShell模块

正如我所说,我将在本文的其余部分关注最新的“V3”模块。根据您先前在特定计算机上完成的步骤,可能需要执行2到3个主要步骤。我将逐步介绍这些步骤,这样您就可以根据您的环境立即开始。

广告

I am working on a Windows 11 22H2 virtual machine (VM) in my Hyper-V lab. This machine is Azure-AD joined to my Microsoft 365 Developer tenant. This will allow me to show you the procedure and also include some basic commands at the end of this article to demonstrate how it operates.

I am using the latest version of PowerShell, version 7.3.4, at the time of writing. This will enable me to install the Exchange Online PowerShell module. All I need is a PowerShell window!

Set-ExecutionPolicy RemoteSigned
  • 接下来,运行Get-Module命令以检查安装了哪些模块。
Get-Module
Running Get-Module to see what modules are installed (Image credit: Petri/Michael Reinders)
  • I have only the base set of modules installed on my computer. So, I need to install the ‘ExchangeOnlineManagement‘ module. Let’s do this with the Install-Module command:
Install-Module -Name ExchangeOnlineManagement
Running Connect-ExchangeOnline to connect to my tenant (Image credit: Petri/Michael Reinders)

注意:因为我正在使用“不受信任的存储库”,所以我需要指定我要从“PSGallery”存储库下载。我输入“A”选择“全部选择是”。

使用‘Import-Module’加载模块

现在让我们执行下一个主要步骤,即加载模块。

广告

  • 我们可以使用Import-Module命令来导入模块。
  • 接下来,我们可以运行另一个Get-Module命令来进行确认。
Import-Module ExchangeOnlineManagement
After importing the module, we confirm it is installed and loaded (Image credit: Petri/Michael Reinders)

好了,现在我们已经确认模块准备就绪!

使用‘Connect-ExchangeOnline’连接到您的Exchange Online租户

完成以获取租户的Exchange Online信息的最后一步是使用允许该访问的凭据进行连接。在Azure中有几个角色级别可以允许此操作。出于这些目的,我将使用我的全局管理员角色作为我的开发人员租户的一部分。顺便说一句,这个账户角色赋予我通过PowerShell对Azure AD和所有Microsoft 365服务的完全访问权限。

Connect-ExchangeOnline -userprincipalname
Connecting to my tenant prompts in-browser authentication (Image credit: Petri/Michael Reinders)
  • 它打开了一个浏览器身份验证窗口,要求输入我的用户名和密码。这就是我可以使用我的全局管理员账户登录的地方。
We’re connected and ready to enter cmdlets (Image credit: Petri/Michael Reinders)

太棒了!你会看到一些黄色文本描述’EXO V3’模块,并提供了一个文档链接以获取更多信息。

现在我们有能力针对我们的Exchange Online租户运行PowerShell命令。接下来我将介绍一些基本/必要的命令,让你开始使用。

注意:如果我们一直牢记安全性,最好在完成操作后结束会话。在关闭 shell 之前,可以通过运行以下命令来断开会话。

Disconnect-ExchangeOnline

像做个小蛋糕一样简单!

基本的 Exchange Online PowerShell 命令

一旦连接到 Exchange Online Version 3 Powershell 模块(EXO V3),您就可以开始运行 Exchange Online cmdlet。让我们首先列出我们租户中的所有邮箱。

因为这是一个开发人员租户,列表相当小。请注意,在正常、较大的环境中,输出可能不太有用。我稍后会详细说明。此外,我们在 Petri 上有各种PowerShell 文章可以帮助您。

而不是使用即将被弃用的“传统”Get-Mailbox cmdlet,让我们向您展示EXO V3中的更新命令。在这里,我将使用Get-EXOMailbox命令,然后将其“pipe”(|)到“ft”开关(与“Format-Table”相同)。使用“Autosize”开关还会自动格式化列宽以匹配您的控制台窗口。

Get-EXOMailbox | ft -Autosize
Using Get-EXOMailbox to list our mailboxes (Image credit: Petri/Michael Reinders)

默认情况下,我们会得到“ExternalDirectoryObjectId”、“UserPrincipalName”(通常是电子邮件地址)和邮件别名。让我们请求一些更多信息。

Get-EXOMailbox | Select DisplayName,PrimarySMTPAddress,Alias
Listing additional attributes with the ‘Select’ command (Image credit: Petri/Michael Reinders)

这给了我们一些稍微更有用的信息,对吧?现在,让我们使用Get-EXOMailboxStatistics命令获取一些邮箱大小统计信息。在这里,我首先运行第一个命令来收集所有邮箱,然后将其传输到’Get-EXOMailboxStatistics’,使用它的默认属性,然后再次使用’ft’使其变得美观。

Get-EXOMailbox | Get-EXOMailboxStatistics | ft
Mailbox statistics are a cmdlet away – Get-EXOMailboxStatistics (Image credit: Petri/Michael Reinders)

这为我们提供了关于组织物品数量和邮箱大小的相当多的信息。您可以使用许多其他参数来获取您的帐户和邮箱的特定属性。

如何通过带有MFA的PowerShell连接到Exchange Online?

幸运的是,当您的帐户受到多因素身份验证保护时,您无需执行任何特殊操作!当您输入命令并且使用的是PowerShell 7或更高版本时,您将看到基于浏览器的身份验证屏幕出现在我的截图中。

如果您恰好使用的是PowerShell 5.1或更低版本,您将看到标准的现代身份验证窗口打开,您将在其中输入密码并完成MFA请求。

您能在Mac上连接到Exchange Online PowerShell吗?

在Mac上安装PowerShell的多种方法,但最直接的方法是使用来自微软网站的直接下载链接。从版本7.2开始,PowerShell支持Apple Silicon Macs。

安装了PowerShell后,你可以在运行macOS 11 Big Sur或更新版本的Mac上使用上述提供的相同说明来连接到macOS上的Exchange Online。

使用Exchange Online PowerShell的额外好处

Exchange Online PowerShell对于任何希望更多控制其Exchange Online环境的IT专业人员/管理员来说都是一种有价值的工具。

以下是使用Exchange Online PowerShell的一些额外好处:

  • 它可以用来使用PowerShell脚本自动化流程,从而帮助你节省时间和精力。
  • 它可以用来解决问题,从而帮助你更快地解决问题。
  • 它可以用来自定义你的Exchange Online环境,从而使其更高效和用户友好。

如果您有任何问题或意见,请随时在下面留言。感谢阅读!

Source:
https://petri.com/connect-to-exchange-online-powershell/