自 2022 年起,Exchange Online PowerShell 模組也 (稱為 Exchange Online PowerShell V3 模組或 EXO V3 模組,) 使用新式驗證,無論是否使用多重要素驗證 (MFA) ,都可以連線到所有與 Exchange 雲端相關的 PowerShell 環境: Exchange OnlinePowerShell、Security & Compliance PowerShell,以及適用於內部部署信箱之內建安全性附加元件的 PowerShell。
如需使用模組的連線指示,請參閱下列文章:
連線到 Exchange Online PowerShell
提示
內部部署信箱的內建安全性附加元件中的 PowerShell 連線指示與 Exchange Online PowerShell 的連線指示相同。
Exchange Online PowerShell 和安全性 & 合規性 PowerShell 中自動指令碼的僅限應用程式驗證
本文的其餘部分將說明模組的運作方式、如何安裝和維護模組,以及模組中提供的優化 Exchange Online Cmdlet。
EXO V3 模組中的 REST API 連線
Exchange Online PowerShell 和安全性 & 合規性 PowerShell 自 2023 年以來對所有 cmdlet 使用 REST API 連線。
REST API 連線需要 PowerShellGet 和 PackageManagement 模組。 如需詳細資訊,請參閱 Windows 中適用於 REST 連線的 PowerShellGet。
REST API 連線中的 Cmdlet 相較於歷史對應項目具有下列優點:
- 更安全:內建新式驗證支援,且不依賴遠端 PowerShell 工作階段。 用戶端電腦上的 PowerShell 不需要 WinRM 中的基本驗證。
-
更可靠:暫時性故障使用內建的重試,因此可以最大限度地減少故障或延遲。 例如:
- 因網路延遲所造成的失敗。
- 由於大型查詢需要很長時間才能完成而造成的延遲。
- 更好的效能:REST API 連線避免設定 PowerShell 執行空間。
下表比較了 REST API Cmdlet 與不可用遠端 PowerShell Cmdlet 和 EXO V3 模組中獨佔的 Get-EXO* Cmdlet 的優點。
| 遠端 PowerShell Cmdlet | Get-EXO* Cmdlet | REST API Cmdlet | |
|---|---|---|---|
| 安全性 | 最不安全 | 高度安全 | 高度安全 |
| 效能 | 低效能 | 高效能 | 中等成效 |
| 可靠性 | 最不可靠 | 高度可靠 | 高度可靠 |
| 功能 | 所有參數和輸出屬性都可用 | 可用的參數和輸出屬性有限 | 所有參數和輸出屬性都可用 |
REST API Cmdlet 具有相同的 Cmdlet 名稱,其運作方式就像其遠端 PowerShell 對應項目一樣,因此您不需要更新指令碼中的 Cmdlet 名稱或參數。
提示
Invoke-Command Cmdlet 無法在 REST API 連線中運作。 如需替代方案,請參閱 REST API 連線中 Invoke-Command 案例的因應措施。
Exchange Online PowerShell 中的一些 Cmdlet 會使用實驗性 UseCustomRouting 切換來更新。 此切換會將命令直接路由傳送至必要的信箱伺服器,並且可能會改善整體效能。 實驗性使用 UseCustomRouting 參數。
當您使用 UseCustomRouting 切換時,針對信箱的身分識別您只需要使用下列值:
- 使用者主要名稱 (UPN)
- 電子郵件地址
- 信箱 GUID
UseCustomRouting 參數僅適用於下列 Exchange Online PowerShell Cmdlet:
- Get-Clutter
- Get-FocusedInbox
- Get-InboxRule
- Get-MailboxAutoReplyConfiguration
- Get-MailboxCalendarFolder
- Get-MailboxFolderPermission
- Get-MailboxFolderStatistics
- Get-MailboxMessageConfiguration
- Get-MailboxPermission
- Get-MailboxRegionalConfiguration
- Get-MailboxStatistics
- Get-MobileDeviceStatistics
- Get-UserPhoto
- Remove-CalendarEvents
- Set-Clutter
- Set-FocusedInbox
- Set-MailboxRegionalConfiguration
- Set-UserPhoto
使用 Get-ConnectionInformation Cmdlet 取得與 Exchange Online PowerShell 和安全性 & 合規性 PowerShell 連線的相關資訊。 需要此 Cmdlet,因為 Windows PowerShell 中的 Get-PSSession Cmdlet 不會傳回 REST API 連線的資訊。
下表說明您可以使用 Get-ConnectionInformation 的案例:
案例 預期輸出 在 Connect-ExchangeOnline 或 Connect-IPPSSession 命令之後執行。 傳回一個連線資訊物件。 在多個 Connect-ExchangeOnline 或 Connect-IPPSSession 命令之後執行。 傳回連線資訊物件的集合。 使用 Connect-ExchangeOnline Cmdlet 上的 SkipLoadingFormatData 參數,以避免載入格式資料,並更快速地執行 Connect-ExchangeOnline 命令。
REST API 支援的 Cmdlet 有 15 分鐘的逾時,這可能會影響大量作業。 例如,若要更新通訊群組中 10,000 個成員的下列 Update-DistributionGroupMember 命令可能會逾時:
$Members = @("member1","member2",...,"member10000") Update-DistributionGroupMember -Identity DG01 -Members $Members請改用 Update-DistributionGroupMember 命令來更新較少的成員,然後使用 Add-DistributionGroupMember 命令個別新增其餘成員。 例如:
Update-DistributionGroupMember -Identity DG01 -Members $Members[0..4999] $Remaining = $Members[-5000..-1] foreach ($Member in $Remaining) { Add-DistributionGroupMember -Identity DG01 -Member $Member }
如需 EXO V3 模組新增功能的詳細資訊,請參閱本文稍後的版本 資訊 一節。
回報 Exchange Online PowerShell 模組預覽版本的錯誤和問題
提示
如果是模組的 GA) 版本 (正式上市,請勿使用下列電子郵件地址來回報問題。 未回覆有關模組 GA 版本的訊息。 請改為開啟支援票證。
僅針對 模組的預覽版本,用於 exocmdletpreview[at]service[dot]microsoft[dot]com 報告您可能遇到的任何問題。 請務必將記錄檔包含在電子郵件訊息中。 若要產生記錄檔,請以 <輸出資料夾取代 Path> ,然後執行下列命令:
Connect-ExchangeOnline -EnableErrorReporting -LogDirectoryPath <Path> -LogLevel All
Exchange Online PowerShell 模組中的 Cmdlet
EXO 模組包含九個專屬的 Get-EXO* Cmdlet,這些 Cmdlet 已針對大量資料擷取案例的速度進行最佳化, (Exchange Online PowerShell 中) 成千上萬個物件。 模組中已改進的 Cmdlet 如下表所示:
提示
如果您在同一視窗中開啟多個與 Exchange Online PowerShell 的連線,Get-EXO* Cmdlet 一律會與最後一個 (最近的) Exchange Online PowerShell 連線相關聯。 執行下列命令以尋找執行 Get-EXO* Cmdlet 的 REST API 工作階段。 Get-ConnectionInformation | Where-Object {$_.ConnectionUsedForInbuiltCmdlets -eq $true}
模組中與連線相關的 Cmdlet 如下表所示:
| EXO 模組 Cmdlet | 舊的相關 Cmdlet | Comments |
|---|---|---|
| Connect-ExchangeOnline | 模組 V1 中的 Connect-EXOPSSession 或 New-PSSession |
|
| Connect-IPPSSession | 模組 V1 中的 Connect-IPPSSession | |
| Disconnect-ExchangeOnline | Remove-PSSession | |
| Get-ConnectionInformation | Get-PSSession | 可在 v3.0.0 或更新版本中使用。 |
提示
在單一 PowerShell 工作階段或指令碼中經常使用 Connect-ExchangeOnline 和 Disconnect-ExchangeOnline Cmdlet 可能會導致記憶體流失。 避免此問題的最佳方式,是使用 Connect-ExchangeOnline Cmdlet 上的 CommandName 參數來限制工作階段中所使用的 Cmdlet。
下表列出了模組中的其他 Exchange Online 功能 Cmdlet:
Exchange Online PowerShell 模組支援的作業系統
Windows、Linux 和 Apple macOS 上的 PowerShell 7 正式支援該模組:
- 由於 .NET 10.0 組件相依性,模組版本 3.10.0 (2026 年 6 月) 或更新版本需要 PowerShell 7.6.0 (2026 年 3 月) 或更新版本。
- 由於 .NET 8.0 組件相依性,模組版本 3.5.0 (2024 年 5 月) 至 2) 026 年 1 月 (3.9.2 需要 PowerShell 7.4.0 (2023 年 11 月) 或更新版本。 舊版 PowerShell 7 可能會遇到相容性問題, (PowerShell 7.3.6 與模組的相容性高於 7.3.7) 。
- 模組版本 3.0.0 (2022 年 9 月) 至 3.4.0 (2023 年 10 月,由於 REST API Cmdlet 和連線中的 .NET 6.0 組件相依性,) 需要 PowerShell 7.2.0 (2021 年 11 月) 或更新版本。
- PowerShell 7 中的模組支援從 2021 年 2 月 (版本 2.0.4 開始) PowerShell 7.0.3 (2020 年 7 月) 。
如需有關 PowerShell 7 的詳細資訊,請參閱 什麼是 PowerShell?。
提示
Windows PowerShell 5.1 支援且相容於模組的所有版本。
如先前所述,Exchange Online PowerShell 和安全性 & 合規性 PowerShell 僅支援 REST API 連線:
- 2021 年 2 月 (模組 2.0.4 版) 僅支援 九個獨佔 Get-EXO* cmdlet 的 REST API。
- 2021 年 5 月 (模組的 2.0.5 版) 僅部分支援 Exchange Online PowerShell 中的 REST API Cmdlet。
- 2022 年 9 月 (版本 3.0.0) 或更新版本完全支援 Exchange Online PowerShell 中的 REST API Cmdlet。
- 版本 3.2.0 (2023 年 6 月) 或更新版本完全支援安全性 & 合規性 PowerShell 中的 REST API Cmdlet。
模組的 macOS 支援
注意事項
目前, Connect-IPPSSession 以及因此的安全性 & 合規性 PowerShell 無法在 macOS 用戶端上的 PowerShell 7 中使用。
如需在 macOS 上安裝 PowerShell 7 的相關指示,請參閱在 macOS 上安裝 PowerShell。 安裝 PowerShell 7 之後,您可以執行一般的 PowerShell 先決條件,並安裝和更新 Exchange Online PowerShell 模組。
以下版本的 macOS 支援該模組:
macOS 14 Sonoma 或更新版本
| 模組版本 | PowerShell 版本 |
|---|---|
| 3.10.0 或更新版本 | 7.6.0 或更新版本 |
| 3.5.0 到 3.9.2 | 7.4.0 或更新版本 |
7.4.0 (.NET 8.0) 是 macOS 14 Sonoma 或更新版本上最早支援的 PowerShell 7 版本。
macOS 13 Ventura
| 模組版本 | PowerShell 版本 |
|---|---|
| 3.5.0 到 3.9.2 | 7.4.0 至 7.5.x |
| 3.0.0 至 3.4.0 | 7.2.0 至 7.3.7 |
模組的最新支援版本是 3.9.2,因為最新支援的 PowerShell 7 版本是 7.5.x (.NET 9.0) 。
macOS 12 Monterey 和 macOS 11 Big Sur
| 模組版本 | PowerShell 版本 |
|---|---|
| 3.5.0 到 3.9.2 | 7.4.x |
| 3.0.0 至 3.4.0 | 7.2.0 至 7.3.7 |
| 2.0.4 和 2.0.5 | 7.0.3 至 7.1.5 |
模組的最新支援版本是 3.9.2,因為最新支援的 PowerShell 7 版本是 7.4.x (.NET 8.0) 。
所有處理器都支援模組版本 3.0.0 到 3.9.2。
模組版本 2.0.4 和 2.0.5 在 Intel 處理器上原生執行。 Apple M1 或 Apple M2 處理器需要 Apple Rosetta 2。
macOS 10.15 Catalina
| 模組版本 | PowerShell 版本 |
|---|---|
| 3.0.0 至 3.4.0 | 7.2.0 至 7.2.22 |
| 2.0.4 和 2.0.5 | 7.0.3 至 7.1.5 |
模組的最新支援版本是 3.4.0,因為最新支援的 PowerShell 7 版本是 7.2.22 (.NET 6.0) 。
macOS 10.14 Mojave
| 模組版本 | PowerShell 版本 |
|---|---|
| 2.0.4 和 2.0.5 | 7.0.3 至 7.1.5 |
模組的最新支援版本是 2.0.5,因為最新支援的 PowerShell 7 版本是 7.1.5 (.NET 5.0) 。
注意事項
您可以連線至 Exchange Online PowerShell。 支援模組中的九個獨佔 Get-EXO* Cmdlet,但並非所有 Exchange Online PowerShell Cmdlet 都受支援 (並非所有 Cmdlet 都支援此版本模組) 中的 REST API。
模組的 Linux 支援
注意事項
目前,Connect-IPPSSession 以及安全性 & 合規性 PowerShell 無法在 Linux 用戶端上的 PowerShell 7 中使用。
如果您從 Proxy 伺服器後方的網路連線到 Linux 上的 Exchange Online PowerShell,則需要使用模組版本 3.0.0 或更新版本。
如需在 Linux 上安裝 PowerShell 7 的相關指示,請參閱在 Linux 上安裝 PowerShell。 安裝 PowerShell 7 之後,您可以執行一般的 PowerShell 先決條件,並安裝和更新 Exchange Online PowerShell 模組。
以下 Linux 發行版正式支援該模組:
Ubuntu 24.04 LTS
| 模組版本 | PowerShell 版本 |
|---|---|
| 3.10.0 或更新版本 | 7.6.0 或更新版本 |
| 3.5.0 到 3.9.2 | 7.4.0 或更新版本 |
| 3.0.0 至 3.4.0 | 7.2.0 至 7.3.7 |
7.2.0 (.NET 6.0) 是 Ubuntu 24.04 LTS 上最早支援的 PowerShell 7 版本。
Ubuntu 22.04 LTS
| 模組版本 | PowerShell 版本 |
|---|---|
| 3.10.0 或更新版本 | 7.6.0 或更新版本 |
| 3.5.0 到 3.9.2 | 7.4.0 或更新版本 |
| 3.0.0 至 3.4.0 | 7.2.0 至 7.3.7 |
7.2.0 (.NET 6.0) 是 Ubuntu 22.04 LTS 上最早支援的 PowerShell 7 版本。
Ubuntu 20.04 LTS
| 模組版本 | PowerShell 版本 |
|---|---|
| 3.5.0 到 3.9.2 | 7.4.x |
| 3.0.0 至 3.4.0 | 7.2.0 至 7.3.7 |
| 2.0.4 和 2.0.5 | 7.0.3 至 7.1.5 |
模組的最新支援版本是 3.9.2,因為最新支援的 PowerShell 7 版本是 7.4.x (.NET 8.0) 。
模組版本 3.7.0 到 3.9.2 可能會因為 SSL 通訊協定錯誤而失敗。
Ubuntu 18.04 LTS
| 模組版本 | PowerShell 版本 |
|---|---|
| 3.5.0 到 3.9.2 | 7.4.x |
| 3.0.0 至 3.4.0 | 7.2.0 至 7.3.7 |
| 2.0.4 和 2.0.5 | 7.0.3 至 7.1.5 |
模組的最新支援版本是 3.9.2,因為最新支援的 PowerShell 7 版本是 7.4.x (.NET 8.0) 。
模組版本 3.7.0 到 3.9.2 在 Ubuntu 18.04 LTS 中可能有可靠性問題。
Windows 對模組的支援
Windows 中的特定模組版本支援取決於 Windows PowerShell 支援和 .NET Framework 及/或 .NET 支援,如下列小節所述:
Windows 11
在 Windows PowerShell 5.1 中,模組需要 .NET Framework 4.7.2 (4.8.x 包含在 Windows 11 中,因此不需要安裝.NET Framework) 。
| 模組版本 | PowerShell 版本 |
|---|---|
| Windows PowerShell 5.1 | |
| 2.0.5 或更新版本 | 5.1 |
| PowerShell 7 | |
| 3.10.0 或更新版本 | 7.6.0 或更新版本 |
| 3.5.0 到 3.9.2 | 7.4.0 或更新版本 |
| 3.0.0 至 3.4.0 | 7.2.0 至 7.3.7 |
7.2.0 (.NET 6.0) 是 Windows 11 中最早支援的 PowerShell 7 版本。
Windows Server 2022 和 Windows Server 2025
在 Windows PowerShell 5.1 中,模組需要 .NET Framework 4.7.2 (包含 4.8.x,因此不需要安裝.NET Framework) 。
| 模組版本 | PowerShell 版本 |
|---|---|
| Windows PowerShell 5.1 | |
| 2.0.5 或更新版本 | 5.1 |
| PowerShell 7 | |
| 3.10.0 或更新版本 | 7.6.0 或更新版本 |
| 3.5.0 到 3.9.2 | 7.4.0 或更新版本 |
| 3.0.0 至 3.4.0 | 7.2.0 至 7.3.7 |
7.2.0 (.NET 6.0) 是 2022 Windows Server 和 2025 Windows Server中支援的 PowerShell 7 版本。
Windows 10
在 Windows PowerShell 5.1 中,該模組需要 .NET Framework 4.7.2。 Windows 10 2018 年 4 月更新 (版本 1803) 或更新版本包含 .NET Framework 4.7.2,因此您不需要下載。
| 模組版本 | PowerShell 版本 | 支援的 Windows 版本 |
|---|---|---|
| Windows PowerShell 5.1 | ||
| 2.0.5 或更新版本 | 5.1 | 年度更新版 (1607 版;2016 年 8 月) 或更新版本 |
| PowerShell 7 | ||
| 3.10.0 或更新版本 | 7.6.0 或更新版本 | 僅限 1607、1809、21H2) (企業/IoT LTSC 版本 |
| 3.5.0 到 3.9.2 | 7.4.0 或更新版本 | 僅限 1607、1809、21H2) (企業/IoT LTSC 版本 |
| 3.0.0 至 3.4.0 | 7.2.0 至 7.3.7 | 2018 年 10 月更新 (版本 1809) 或更新版本 |
| 2.0.4 和 2.0.5 | 7.0.3 至 7.1.5 | 年度更新版 (1607 版;2016 年 8 月) 或更新版本 |
在 Windows 10 上,.NET 8.0 和 .NET 10.0 (,因此只有仍在 (支援版本 1607、1809 和 21H2 版本) 的企業版和 IoT LTSC 版本上才支援 PowerShell 7.4 或更新版本,以及模組版本 3.5.0 或更新版本) 。
消費者版本的 Windows 10 已於 2025 年 10 月終止支援,且不支援 .NET 8.0 或 .NET 10.0。
Windows Server 2016 和 Windows Server 2019
在 Windows PowerShell 5.1 中,模組需要 Windows Server 2019) 中包含的 4.7.2 .NET Framework (。
| 模組版本 | PowerShell 版本 |
|---|---|
| Windows PowerShell 5.1 | |
| 2.0.5 或更新版本 | 5.1 |
| PowerShell 7 | |
| 3.10.0 或更新版本 | 7.6.0 或更新版本 |
| 3.5.0 到 3.9.2 | 7.4.0 或更新版本 |
| 3.0.0 至 3.4.0 | 7.2.0 至 7.3.7 |
| 2.0.4 和 2.0.5 | 7.0.3 至 7.1.5 |
Windows 8.1、Windows Server 2012 和 Windows Server 2012 R2
在 Windows PowerShell 5.1 中,該模組需要 .NET Framework 4.7.2。
| 模組版本 | PowerShell 版本 |
|---|---|
| Windows PowerShell 5.1 | |
| 2.0.5 或更新版本 | 5.1 |
| PowerShell 7 | |
| 3.0.0 至 3.4.0 | 7.2.x |
| 2.0.4 和 2.0.5 | 7.0.3 至 7.1.5 |
7.2.22 (.NET 6.0) 是 Windows 8.1、Windows Server 2012 和 Windows Server 2012 R2 中最新支援的 PowerShell 7 版本。
Windows 7.1 SP1 和 Windows Server 2008 R2 SP1
在 Windows PowerShell 5.1 中,該模組需要 .NET Framework 4.7.1。
| 模組版本 | PowerShell 版本 |
|---|---|
| Windows PowerShell 5.1 | |
| 2.0.3 | 5.1 |
注意事項
雖然您可以安裝此版本的模組,但無法連線到 Exchange Online PowerShell 或安全性 & 合規性 PowerShell。 模組版本 2.0.3 缺乏對 REST API 連線的支援。
Exchange Online PowerShell 模組的必要條件
將 PowerShell 執行原則設定為 RemoteSigned
提示
本節中的設定適用於所有作業系統上的所有 PowerShell 版本。
PowerShell 必須經過設定才能執行指令碼,但預設並未設定。 當您嘗試連線時,會發生以下錯誤:
因為此系統上已停用執行指令碼,因此無法載入檔案。 提供有效的憑證,用來簽署檔案。
若要要求從網際網路下載的所有 PowerShell 指令碼使用信任的發行者簽署,請在提升權限的 PowerShell 工作階段中, (選取 [ 以系統管理員身分執行] 開啟的 PowerShell 視窗中執行下列命令) :
Set-ExecutionPolicy RemoteSigned
如需執行原則的相關資訊,請參閱 執行原則相關資訊。
WinRM 中的基本驗證
自 2023 年 10 月起,REST API 連線已取代 Exchange Online PowerShell 和安全性 & 合規性 PowerShell 中遠端 PowerShell) 連線 (基本驗證。 REST API 連線不需要 WinRM 中的基本驗證。
版本 3.2.0 (2023 年 6 月) 版和更新版本的模組完全支援 Exchange Online PowerShell 中的 REST API Cmdlet 和安全性 & 合規性 PowerShell。
Windows 中需要 PowerShellGet
Windows 中的 REST API 連線需要 PowerShellGet 模組。 依依相依性,PowerShellGet 模組需要 PackageManagement 模組。 與 PowerShell 7 相比,PowerShell 5.1 更需要考慮這些模組,但所有版本的 PowerShell 都受益於安裝最新版本的模組。 如需安裝和更新指示,請參閱 在 Windows 上安裝 PowerShellGet。
提示
PackageManagement 或 PowerShellGet 模組的預覽版本可能會導致連線問題。 如果您有連線問題,請執行以下命令來確認您沒有安裝模組的預覽版本: Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions。
如果您在嘗試連線時未安裝 PowerShellGet,您會收到下列錯誤:
找不到 Cmdlet Update-Manifest
安裝和更新 Exchange Online PowerShell 模組
模組可在 PowerShell 資源庫https://www.powershellgallery.com/packages/ExchangeOnlineManagement/中取得,位置為 。
首次使用 Install-Module Cmdlet 來安裝模組,並使用 Update-Module Cmdlet 從 PowerShell 資源庫更新現有安裝。 這兩個 Cmdlet 使用相同的參數,因此無論您要安裝或更新,都適用相同的語法。
若要查看模組是否已安裝以及安裝方式,請執行 Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation:
- 如果模組安裝在
%ProgramFiles%\WindowsPowerShell\Modules\,則會為所有使用者安裝。 - 如果模組安裝在您的 [文件] 資料夾中,則只會針對您目前的使用者帳戶安裝該模組。
第一次安裝模組之前,請依 照安裝 PowerShellGet 中所述安裝或更新 PowerShellGet 模組,然後關閉並重新開啟 PowerShell 視窗。
若要安裝或更新模組,請使用下列語法:
<Install-Module | Update-Module> -Name ExchangeOnlineManagement [-Scope CurrentUser] [-RequiredVersion <Version>] [-AllowPrerelease]
通常,您想要模組的最新公開版本,但也可以安裝或更新至預覽版本。
安裝或更新模組的 PowerShell 工作階段需求:
- 針對所有使用者:在提升權限的 PowerShell 工作階段中執行命令。
- 針對目前使用者:不需要提升權限的 PowerShell 工作階段。
更新模組時,請使用最初用於安裝模組的相同範圍。
RequiredVersion 參數會指定要安裝或更新的模組版本。 您可以在此參數搭配或不使用 AllowPrerelease 參數時使用。
AllowPrerelease 參數可安裝或更新至模組的預覽版本。 若要指定預覽版本,也請使用 RequiredVersion 參數。
若要查看模組的所有可用版本,包括預覽版本,請執行
Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease。 若要只查看公用版本,請省略 AllowPrerelease 參數。
此範例會為所有使用者安裝模組的最新公開版本。
Install-Module -Name ExchangeOnlineManagement
此範例會將模組更新為目前使用者帳戶的最新公開版本。
Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser
此範例會為所有使用者安裝模組的最新可用預覽版本。
Install-Module -Name ExchangeOnlineManagement -AllowPrerelease
如需詳細的語法和參數資訊,請參閱下列文章:
解除安裝 Exchange Online PowerShell 模組
若要解除安裝模組,請執行下列命令。 如果您原本為所有使用者安裝模組,請在提升權限的 PowerShell 工作階段中執行命令。
Uninstall-Module -Name ExchangeOnlineManagement
若要確認模組是如何安裝 (所有使用者與目前使用者帳戶) ,請使用Get-InstalledModule安裝和更新Exchange Online PowerShell 模組一節開頭的命令。
如需詳細的語法及參數資訊,請參閱 卸載模組。
安裝 Exchange Online PowerShell 模組時進行疑難排解
本節說明安裝模組時可能會遇到的錯誤,以及如何解決這些錯誤。
您收到下列其中一項錯誤:
目前版本的 PowerShellGet 不支援指定模組 'ExchangeOnlineManagement' 與 PowerShellGetFormatVersion '<version>'。 請取得最新版本的 PowerShellGet 模組來安裝此模組 'ExchangeOnlineManagement'。
警告:無法從 URI 'https://go.microsoft.com/fwlink/?LinkID=627338& 下載clcid=0x409' 變更為 ''。
警告:無法下載可用的提供者清單。 請檢查您的網際網路連線。
如 安裝 PowerShellGet所述,將 PowerShellGet 模組安裝更新為最新版本。 在您嘗試再次更新 ExchangeOnlineManagement 模組之前,請務必關閉並重新開啟 PowerShell 視窗。
您收到下列錯誤:
找不到符合指定搜尋準則和模組名稱 'ExchangeOnlineManagement' 的相符項目。 請嘗試執行
Get-PSRepository,以查看所有可用的已註冊模組存放庫。PowerShell 模組的預設存放庫未設定為 PSGallery。 若要修正此錯誤,請執行下列命令:
Register-PSRepository -Default在 Windows PowerShell 5.1 中,當您嘗試安裝模組時會收到錯誤,因為PowerShell 資源庫需要 TLS 1.2 或更新的連線, (PowerShell 7 已使用 TLS 1.2 或更新的) 。 此問題通常只會影響 Windows 的舊版本,其中 .NET Framework 預設不使用 TLS 1.2。 如需詳細資訊和解決此問題的步驟,請參閱 PowerShell 資源庫 TLS 支援。
Exchange Online PowerShell 模組中的屬性和屬性集
傳統 Exchange Online Cmdlet 會傳回所有可能的物件屬性,包括許多空白或無興趣的屬性。 這會導致效能下降(更多伺服器計算及新增網路負載)。 您很少(如果有的話)需要 Cmdlet 輸出中的完整屬性。
模組中的 Get-EXO* Cmdlet 包含分類的輸出屬性。 我們沒有賦予所有屬性同等的重要性並在所有場景中返回它們,而是將特定的相關屬性分類為 屬性集。 這些屬性集是 Cmdlet 上兩個或多個相關屬性的貯體。
最大且最常用的 Get-EXO* Cmdlet 會使用屬性集:
在這些 cmdlet 中,下列參數會控制屬性集:
- PropertySets:此參數接受一或多個以逗號分隔的屬性集名稱。 可用的屬性集說明在 Exchange Online PowerShell 模組 Cmdlet 中的屬性集。
- 屬性:此參數接受一個或多個以逗號分隔的屬性名稱。
您可以在同樣的命令中使用 PropertySets 和 屬性參數值。
我們也包含了 [最小屬性集],其中包含 Cmdlet 輸出的必要屬性的最小集合 (例如,身分識別屬性) 。 最小屬性集中的屬性也會在 Exchange Online PowerShell 模組 Cmdlet 中的屬性集中進行說明。
- 如果您沒有使用 PropertySets 或 Properties 參數,您會自動取得「最低限度 (Minimum)」屬性集中的屬性。
- 如果您使用 PropertySets 或 Properties 參數,您會取得指定的屬性,以及「最低限度 (Minimum)」屬性集中的屬性。
無論是何種,Cmdlet 輸出包含的屬性都會少得多,而且傳回結果的速度會快得多。
例如,當您連線到 Exchange Online PowerShell 之後,下列範例只會傳回前 10 個信箱的 [最小值] 屬性集中的屬性。
Get-EXOMailbox -ResultSize 10
相反地,相同的 Get-Mailbox 命令的輸出會針對前 10 個信箱分別傳回至少 230 個屬性。
注意事項
雖然您可以使用 PropertySets 參數來取得全部植,但我們極力反對使用這個值來擷取所有屬性,因為這會減緩命令的速度並降低可靠性。 請一律使用 PropertySets 和 屬性 參數,來擷取您案例所需的最少屬性數目。
如需模組中篩選的詳細資訊,請參閱 Exchange Online PowerShell 模組中的篩選。
版本資訊
除非另有說明,否則 Exchange Online PowerShell 模組的目前版本包含先前版本的所有功能。
目前版本
版本 3.10.1
- 修正憑證型驗證 (CBA) 錯誤和其他次要效能問題。
先前的版本
版本 3.10.0
- 從此版本的模組開始,PowerShell 7 的最低需求版本為 7.6。 Windows PowerShell 5.1 不受影響。
- 已修正當您使用 EnableSearchOnlySession 切換時,憑證型驗證 (Connect-IPPSSession 中的 CBA) 失敗的問題。
版本 3.9.2
- 適用於 Workforce Insights 委派的新 add-WorkforceInsightsDelegationAccess、 Get-WorkforceInsightsDelegationAccess 和 Remove-WorkforceInsightsDelegationAccess Cmdlet。
- Connect-ExchangeOnline 和 Connect-IPPSSession 中的新 EXOModuleBasePath 參數可將臨時 EXO 模組檔案儲存在自訂路徑中。
- 已從 Connect-ExchangeOnline 和 Connect-IPPSSession 取代 UseRpsSession 參數。
版本 3.9.0
- Connect-IPPSSession 上的新 EnableSearchOnlySession 切換,可讓特定電子文件探索 Cmdlet 和相關 Cmdlet 連線到其他 Microsoft 365 服務。
版本 3.8.0
Connect-IPPSSession 上的新 AccessToken 參數。
Get-VivaModuleFeature 現在會傳回 ParentFeature、ChildFeature 和 PolicyModes 的相關資訊。 這些值代表 Viva 應用程式功能的父子功能,以及未來原則的可用啟用模式。
Add-VivaModuleFeaturePolicy 和 Update-VivaModuleFeaturePolicy Cmdlet 上的新參數 IsUserOptedInByDefault,以及所有 *-VivaModuleFeaturePolicy Cmdlet 中的對應屬性值。 此值指出原則是否已選擇加入或退出使用者,只要使用者未設定喜好設定即可。
您可以使用此參數以在組織中保持此功能啟用,同時預設選擇退出受影響的使用者,從而有效地軟停用這些使用者的功能。
已取代 Get-VivaFeatureCategory cmdlet、所有類別相關參數,以及 CategoryId, IsCategoryEnabled) (傳回值。
版本 3.7.2
- Connect-ExchangeOnline Cmdlet 上提供 DisableWAM 參數,以便在收到 WAM 相關連線錯誤時停用 Web 帳戶管理員 (WAM) 。
版本 3.7.1
- 新增名為 Get-EXOMailbox 輸出的新屬性
ExoExchangeSecurityDescriptor,其類似ExchangeSecurityDescriptor於 Get-Mailbox 輸出中的屬性。 - 新增 Cmdlet 以支援 Viva Org Insights 委派功能:
- Add-VivaOrgInsightsDelegatedRole
- Get-VivaOrgInsightsDelegatedRole
- Remove-VivaOrgInsightsDelegatedRole
版本 3.7.0
- 整合式 Web 帳戶管理員 (驗證流程中的 WAM) ,以增強安全性。
- 預設不會再載入 Exchange Online PowerShell Cmdlet 的命令列說明。 使用 Connect-ExchangeOnline 命令中的 LoadCmdletHelp 開關,以便 Get-Help Cmdlet 可以使用 Exchange Online PowerShell Cmdlet 的說明。
- 修正在安全性 & 合規性 PowerShell 中僅限驗證應用程式的連線問題。
版本 3.6.0
- Get-VivaModuleFeature 現在會傳回功能支援為 (建立原則的身分識別類型相關資訊,例如使用者、群組或整個組織) 。
- 適用於 Viva 功能存取管理的 Cmdlet 現在可處理持續存取評估 (CAE) 索賠挑戰。
- 新增 Microsoft.Graph 模組相容性問題的修正。
版本 3.5.1
- Get-EXOMailboxPermission 和 Get-EXOMailbox 中的錯誤修正。
- 模組已升級為在 .NET 8 上執行,取代先前的 .NET 6 版本。
- Add-VivaModuleFeaturePolicy 中的增強功能。
版本 3.5.0
- 新的 Get-VivaFeatureCategory Cmdlet。
- 新增對 Viva 功能存取管理 (VFAM) 中類別層級原則作業的支援。
- Get-VivaModuleFeaturePolicy 輸出中的新 IsFeatureEnabledByDefault 屬性。 此屬性的值會顯示未建立任何組織或使用者/群組原則時,使用者的預設啟用狀態。
版本 3.4.0
- Connect-ExchangeOnline、Get-EXORecipientPermission 和 Get-EXOMailboxFolderPermission 中的錯誤修正。
- Connect-ExchangeOnline 中的 SigningCertificate 參數現在支援限制語言模式 (CLM) 。
版本 3.3.0
- Connect-ExchangeOnline 上的 SkipLoadingCmdletHelp 參數支援略過載入 Cmdlet 說明檔案。
- 全域變數
EXO_LastExecutionStatus可用來檢查最後一個執行的 Cmdlet 狀態。 - Connect-ExchangeOnline 和 Connect-IPPSSession 中的錯誤修正。
- Add-VivaModuleFeaturePolicy 和 Update-VivaModuleFeaturePolicy 上的 IsUserControlEnabled 參數,以支援依原則針對已上線至 Viva 功能存取管理的功能啟用使用者控制。
版本 3.2.0
- 新的 cmdlet:
- Get-DefaultTenantBriefingConfig 和 Set-DefaultTenantBriefingConfig。
- Get-DefaultTenantMyAnalyticsFeatureConfig 和 Set-DefaultTenantMyAnalyticsFeatureConfig。
- Get-VivaModuleFeature、 Get-VivaModuleFeatureEnablement、 Add-VivaModuleFeaturePolicy、 Get-VivaModuleFeaturePolicy、 Remove-VivaModuleFeaturePolicy 和 Update-VivaModuleFeaturePolicy。
- 安全性 & 合規性 PowerShell 的 REST API 連線支援。
-
Get-ConnectionInformation 和 Disconnect-ExchangeOnline 上的 ConnectionId 參數:
- 取得特定 REST API 連線的連線資訊。
- 選擇性中斷 REST API 連線。
- Connect-ExchangeOnline 上的 SigningCertificate 參數可讓您簽署格式檔案 (*。Format.ps1xml) 或指令碼模組檔案 (.psm1) 在臨時模組中,由 Connect-ExchangeOnline 使用用戶端憑證建立,用於所有 PowerShell 執行原則。
- Connect-ExchangeOnline 中的錯誤修正。
版本 3.1.0
- AccessToken 參數可在 Connect-ExchangeOnline 中使用。
- Connect-ExchangeOnline 和 Get-ConnectionInformation 中的錯誤修正。
- Connect-IPPSSession 中有關使用 CertificateThumbprint 連線至安全性 & 合規性 PowerShell 的錯誤修正。
版本 3.0.0 (預覽版本,稱為 v2.0.6-PreviewX)
-
EXO V3 模組區段中 REST API 連線中已所述的功能:
- 適用於安全性 & 合規性的憑證型驗證 PowerShell (版本 2.0.6-預覽5 或更新版本) 。
- 適用於 REST 型連線的 Get-ConnectionInformation Cmdlet (版本 2.0.6-Preview7 或更新版本) 。
- 適用於 REST 型連線 (版本 2.0.6-Preview8 或更新版本) 的 Connect-ExchangeOnline Cmdlet 上的 SkipLoadingFormatData 參數。
- 只要您也在命令中使用 AzureADAuthorizationEndpointUri 參數,DelegatedOrganization 參數就可以在 Connect-IPPSSession Cmdlet 中運作。
- 某些在特定案例中提示確認的 Cmdlet 不再提示確認。 根據預設,Cmdlet 會執行至完成。
- 已稍微修改從失敗的 cmdlet 執行所傳回的錯誤格式。 例外狀況現在包含更多資料 (例如,例外狀況類型) ,而不
FullyQualifiedErrorId包含FailureCategory。 錯誤的格式可能會進一步修改。
版本 2.0.5
新的 Get-OwnerlessGroupPolicy 和 Set-OwnerlessGroupPolicy Cmdlet 可管理無擁有者 Microsoft 365 群組。
注意事項
雖然可在模組中使用 Cmdlet,但僅有私人預覽的成員能使用功能。
新的 Get-VivaInsightsSettings 和 Set-VivaInsightsSettings Cmdlet 可控制使用者對 Viva Insights 中頂空功能的存取權。
版本 2.0.4
Windows、Linux 和 Apple macOS 正式支援 PowerShell 7,如本文 Exchange Online PowerShell 模組的必要條件一節中所述。
PowerShell 7 中的模組支援以瀏覽器為基礎的單一登入 (SSO) 和其他登入方法。 如需詳細資訊,請參閱 PowerShell 7 獨佔連線方法。
Get-UserAnalyticsConfig 和 Set-UserAnalyticsConfig Cmdlet 已由 Get-MyAnalyticsConfig 和 Set-MyAnalyticsConfig Cmdlet 取代。 您也可以在功能層級設定存取權。 如需詳細資訊,請參閱設定 MyAnalytics。
所有基於使用者的身份驗證中的即時策略和安全強制執行。 持續存取評估 (CAE) 已在模組中啟用。 如需詳細資訊,請參閱邁 向即時原則和安全強制執行。
LastUserActionTime 和 LastInteractionTime 屬性現在可在 Get-EXOMailboxStatistics Cmdlet 的輸出中取得。
互動式登入程序現在會使用更安全的方法,以透過安全回覆 URL 來擷取存取權杖。
版本 2.0.3
- 憑證型驗證 (CBA) 正式推出,可在自動指令碼處理或背景自動化案例中使用新式驗證。 可用的憑證儲存位置如下:
- Azure Key Vault (憑證) 的 [遠端] 參數。 此選項可只在運行時擷取憑證,以加強安全性。
- CurrentUser 或 LocalMachine 憑證儲存區中的 [本機](CertificateThumbprint 參數)。
- 匯出的憑證檔中的 [本機] ( CertificateFilePath 和 CertificatePassword參數)。 如需詳細資訊,請參閱 Connect-ExchangeOnline 中的參數描述,以及 Exchange Online PowerShell 模組中適用於自動指令碼的僅限應用程式驗證。
- 在單一 PowerShell 視窗中,可同時連線到 Exchange Online PowerShell 與安全性與合規性 PowerShell。
- 新的 CommandName 參數可讓您指定並限制在工作階段匯入的 Exchange Online PowerShell Cmdlet。 此選項可減少高使用率 PowerShell 應用程式的記憶體使用量。
- EXOMailboxFolderPermission 現在支援 身分識別 參數中的 ExternalDirectoryObjectID。
- 優化第一個 V2 Cmdlet 通話的延遲。 實驗室結果顯示,第一次通話延遲從 8 秒減少到大約 1 秒。 實際結果取決於 cmdlet 結果大小和組織環境。
版本 1.0.1
- EXO V2 模組的正式發行 (GA) 版本。 它很穩定,可隨時在生產環境中使用。
- Get-ExoMobileDeviceStatistics cmdlet 現在支援 Identity 參數。
- 在某些案例中,由於自動重新連線邏輯中的錯誤,指令碼已執行 ~50 分鐘並擲回「找不到 Cmdlet」錯誤,改進了自動重新連線工作階段的可靠性。
- 為了輕鬆遷移指令碼,已修正 "User" 和 "MailboxFolderUser" 兩個常用屬性的資料類型問題。
- 增強對篩選的支援,因為它現在支援另外四個運算子:EndsWith、Contains、Not 和 NotLike。 檢查 Exchange Online PowerShell 模組中的篩選,以尋找篩選中不支援的屬性。
0.4578.0 版
- 新增使用 Set-UserBriefingConfig 和 Get-UserBriefingConfig Cmdlet 的支援,可讓您在使用者層級上為組織設定簡報電子郵件。
- 支援使用 Disconnect-ExchangeOnline Cmdlet 來清理工作階段。 此 Cmdlet 是 V2 的
Get-PSSession | Remove-PSSession對應項目。 除了清除工作階段物件和本機檔案,其也會從快取中移除用來對 V2 Cmdlet 進行驗證的存取權杖。 - 您現在可以在 Get-EXOMailboxFolderPermission 中使用
FolderId作為身分識別參數。 您可以使用 Get-MailboxFolder 取得FolderId值。 例如:Get-MailboxFolderPermission -Identity <UPN>:<Folder-Path>Get-MailboxFolderPermission -Identity <UPN>:\<Folder-Id> - 改善 Get-EXOMailboxStatistics 的可靠性,因為解決了導致失敗的某些要求路由錯誤。
- 最佳化重複使用現有模組所建立新工作階段的記憶體使用量,而不是每次匯入工作階段時建立新的工作階段。
0.4368.1 版
- 使用 Connect-IPPSSession 新增安全性與合規性 PowerShell Cmdlet 支援。
- 可以使用 ShowBanner 參數 (
-ShowBanner:$false) 來隱藏公告通知橫幅。 - 在用戶端例外上終止執行 Cmdlet。
- 遠端 PowerShell 包含各種複雜的資料類型,為了改善效能,這些類型在 EXO Cmdlet 中刻意不支援。 解決遠端 PowerShell Cmdlet 與 V2 Cmdlet 之間非複雜資料類型的差異,以允許管理指令碼無縫移轉。
0.3582.0 版
- 工作階段建立期間支援前置詞:
- 您一次只能建立一個包含前置 cmdlet 的工作階段。
- EXO V2 Cmdlet 沒有前置詞,因為它們已有前綴 EXO,所以請勿用作
EXO前置詞。
- 即使已停用用戶端電腦上的 WinRM 基本驗證,也可以使用 EXO V2 Cmdlet。 遠端 PowerShell 連線需要 WinRM 基本驗證,如果在 WinRM 中停用基本驗證,則無法使用遠端 PowerShell Cmdlet。
- V2 Cmdlet 的身分識別參數現在支援名稱和別名。 使用別名或名稱會降低 V2 cmdlet 的效能,因此我們不建議使用它們。
- 已修正由 V2 Cmdlet 傳回的屬性資料類型與遠端 PowerShell Cmdlet 不同的問題。 我們仍然有一些具有不同資料類型的屬性,我們計劃在未來幾個月內處理它們。
- 已修正錯誤:使用認證或 UserPrincipalName 叫用 Connect-ExchangeOnline 時,工作階段會重新連線頻繁的問題
0.3555.1 版
- 已修正管線 Cmdlet 因驗證問題而導致下列錯誤的錯誤:
無法叫用管線,因為執行空間未處於 [已開啟] 狀態。 目前的執行空間狀態為 [關閉]。
0.3527.4 版
- 已更新 Get-Help 內容。
- 修正了 Get-Help 中 Online 參數重新導向至不存在頁面且錯誤碼為 400 的問題。
0.3527.3 版
- 新增支援使用委派流程管理不同組織的 Exchange。
- 在單一 PowerShell 視窗中與其他 PowerShell 模組協同運作。
- 已新增位置參數支援。
- 日期時間欄位現在支援用戶端區域設定。
- 錯誤修正:在 Connect-ExchangeOnline 傳遞空白 PSCredential。
- 錯誤修正:篩選器包含 $null 的用戶端模組錯誤。
- EXO V2 模組內部所建立的工作階段現在有名稱 (命名模式:ExchangeOnlineInternalSession_%SomeNumber%)。
- 錯誤修正:遠端 PowerShell Cmdlet 由於時間原因而間歇性失敗 權杖到期與工作階段閒置之間的差異。
- 主要安全性更新。
- 錯誤修正及增強功能。