Exchange Online PowerShell 是一個命令列工具,允許您管理 Exchange Online 的郵箱和使用者。它可用於執行各種任務,如創建和管理郵箱、配置郵件流規則和管理使用者權限。在本指南中,我們將向您展示如何安裝並連接到 Exchange Online PowerShell。如果您是在 Exchange Online 服務中擁有 Microsoft 365 管理職責的 IT 專業人員,這個指南就是為您準備的!
如何安裝並連接到 Exchange Online PowerShell
作為 IT 專業人員,您的 Microsoft 365 管理職責很可能涵蓋 Exchange Online。儘管大多數這些任務可以使用 Exchange 管理中心網站 完成,但通過命令行尤其是腳本化,可以實現更高效率!
先決條件
您可以像使用標準的 Connect-* cmdlet 一樣,通過使用標準的 Connect- * cmdlet 來連接到 Exchange Online,就像連接到任何其他 Office 365 服務一樣。但是,在安裝和使用 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 cmdlet更改策略设置:
Set-ExecutionPolicy RemoteSigned
- 接下来,运行Get-Module命令以检查安装了哪些模块。
Get-Module

- 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

注意:因为我正在使用一个“不受信任的存储库”,我需要指定我要从“PSGallery”存储库下载。我输入“A”选择“全部是”。
使用‘Import-Module’加载模块
现在让我们执行下一个主要步骤,即加载模块。
- 我们可以使用Import-Module命令导入模块。
- 接下来,我们可以运行另一个Get-Module命令以获得确认。
Import-Module ExchangeOnlineManagement

现在,我们已经确认模块已准备就绪!
使用‘Connect-ExchangeOnline’连接到您的Exchange Online租户
為了獲取租戶的Exchange Online資訊,最後一步是使用允許此類存取的憑證建立連接。在Azure中有幾個角色層級可以實現這一點。在這些情況下,我將使用我的全域管理員角色作為我的開發者租戶的一部分。順便說一下,這個帳戶角色給了我通過PowerShell完全存取Azure AD和所有Microsoft 365服務的能力。
- 讓我們使用下面的Connect-ExchangeOnline命令:
Connect-ExchangeOnline -userprincipalname

- 它打開了一個瀏覽器驗證視窗,要求我輸入用戶名和密碼。在這裡,我可以使用我的全域管理員帳戶登錄。

太好了!你會看到一些黃色文字描述“EXO V3”模組和一個文檔鏈接,以獲取更多資訊。
現在我們有能力對我們的Exchange Online租戶運行PowerShell命令。接下來,我將介紹一些基本的/必要的命令,你可以開始使用。
注意:如果我們一直牢記安全性,最好在完成後結束您的會話。在關閉您的 shell 之前,可以通過運行以下命令來斷開會話。
Disconnect-ExchangeOnline
簡單易行!
基本的 Exchange Online PowerShell 命令
一旦您連接到 Exchange Online 版本 3 PowerShell 模組(EXO V3),就可以開始運行 Exchange Online cmdlet。讓我們首先列出我們租戶中的所有郵箱。
由於這是一個開發人員租戶,列表相當小。請注意,在正常的更大環境中,輸出將不那麼有用。稍後我會解釋這一點。另外,我們在 Petri 上有各種 PowerShell 文章 可以幫助您。
不再使用「遺留」Get-Mailbox 命令 (即將被棄用),讓我們向您展示 EXO V3 中的新命令。在這裡,我將使用 Get-EXOMailbox 命令,然後將其「管道」(|) 到「ft」開關 (相當於「Format-Table」)。使用「Autosize」開關也會自動設置列寬,以匹配您的控制台窗口。
Get-EXOMailbox | ft -Autosize

默認情況下,我們會獲得「ExternalDirectoryObjectId」、「UserPrincipalName」(通常是電子郵件地址) 和郵件別名。讓我們要求它提供更多信息。
Get-EXOMailbox | Select DisplayName,PrimarySMTPAddress,Alias

這樣可以為我們提供一些稍微更有用的信息,對吧?現在,讓我們使用 Get-EXOMailboxStatistics 命令來獲取一些郵箱大小統計信息。在這裡,我先運行第一個命令來收集所有郵箱,然後將其「管道」到「Get-EXOMailboxStatistics」,使用其默認屬性,然後再次使用「ft」來美化顯示。
Get-EXOMailbox | Get-EXOMailboxStatistics | ft

這為我們提供了組織的項目數量和郵箱大小的相當多信息。您可以使用許多其他參數從您的帳戶和郵箱中獲取特定屬性。
如何通過帶有多重身份驗證的 PowerShell 連接到 Exchange Online?
幸運的是,當您的帳戶受到多重身份驗證保護時,您無需進行任何特殊操作(最好如此!)。當您輸入命令並且使用 PowerShell 7或更高版本時,您將看到基於瀏覽器的身份驗證屏幕出現在我上面的截圖中。
如果您碰巧使用的是 PowerShell 5.1或更低版本,您將看到標準的現代身份驗證窗口打開,您將在其中輸入密碼並完成您的多重身份驗證請求。
您能在 Mac 上連接到 Exchange Online PowerShell 嗎?
在 Mac 上安裝 PowerShell 的多種方法,但最直接的方法是使用從Microsoft 的網站直接下載鏈接。從版本 7.2 開始,PowerShell 支持蘋果矽 Mac。
安裝了 PowerShell 在運行 macOS 11 Big Sur 或更新版本的 Mac 上後,您可以使用上面提供的相同指示來連接到 Exchange Online 在 macOS 上。
使用 Exchange Online PowerShell 的額外好處
Exchange Online PowerShell 對於任何希望對其 Exchange Online 環境有更多控制的 IT 專業人員/管理員來說是一個有價值的工具。
以下是使用 Exchange Online PowerShell 的一些額外好處:
- 它可以用於使用 Powershell 腳本自動化流程,可幫助您省時省力。
- 它可以用於解決問題,這有助於您更快地解決問題。
- 它可以用於自定義您的 Exchange Online 環境,使其更高效和用戶友好。
如果您有任何問題或意見,請隨時在下方留言。感謝您的閱讀!
Source:
https://petri.com/connect-to-exchange-online-powershell/