關於 Exchange Online PowerShell 模組

自 2022 年起,Exchange Online PowerShell 模組也 (稱為 Exchange Online PowerShell V3 模組或 EXO V3 模組,) 使用新式驗證,無論是否使用多重要素驗證 (MFA) ,都可以連線到所有與 Exchange 雲端相關的 PowerShell 環境: Exchange OnlinePowerShell、Security & Compliance 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 如下表所示:

EXO 模組 Cmdlet 舊的相關 Cmdlet
Get-EXOMailbox Get-Mailbox
Get-EXORecipient Get-Recipient
Get-EXOCasMailbox Get-CASMailbox
Get-EXOMailboxPermission Get-MailboxPermission
Get-EXORecipientPermission Get-RecipientPermission
Get-EXOMailboxStatistics Get-MailboxStatistics
Get-EXOMailboxFolderStatistics Get-MailboxFolderStatistics
Get-EXOMailboxFolderPermission Get-MailboxFolderPermission
Get-EXOMobileDeviceStatistics Get-MobileDeviceStatistics

提示

如果您在同一視窗中開啟多個與 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:

指令程式 Comments
Get-DefaultTenantBriefingConfig 可在 v3.2.0 或更新版本中使用。
Set-DefaultTenantBriefingConfig 可在 v3.2.0 或更新版本中使用。
Get-DefaultTenantMyAnalyticsFeatureConfig 可在 v3.2.0 或更新版本中使用。
Set-DefaultTenantMyAnalyticsFeatureConfig 可在 v3.2.0 或更新版本中使用。
Get-MyAnalyticsFeatureConfig 可用於 v2.0.4 或更新版本。
Set-MyAnalyticsFeatureConfig 可用於 v2.0.4 或更新版本。
Get-UserBriefingConfig 由 Get-MyAnalyticsFeatureConfig 取代。
Set-UserBriefingConfig 由 Set-MyAnalyticsFeatureConfig 取代。
Get-VivaInsightsSettings 在 v2.0.5 或更新版本中提供。
Set-VivaInsightsSettings 在 v2.0.5 或更新版本中提供。
Get-VivaModuleFeature 可在 v3.2.0 或更新版本中使用。
Get-VivaModuleFeatureEnablement 可在 v3.2.0 或更新版本中使用。
Add-VivaModuleFeaturePolicy 可在 v3.2.0 或更新版本中使用。
Get-VivaModuleFeaturePolicy 可在 v3.2.0 或更新版本中使用。
Remove-VivaModuleFeaturePolicy 可在 v3.2.0 或更新版本中使用。
Update-VivaModuleFeaturePolicy 可在 v3.2.0 或更新版本中使用。
Add-VivaOrgInsightsDelegatedRole 可在 v3.7.0-預覽1 或更新版本中使用。
Get-VivaOrgInsightsDelegatedRole 可在 v3.7.0-預覽1 或更新版本中使用。
Remove-VivaOrgInsightsDelegatedRole 可在 v3.7.0-預覽1 或更新版本中使用。
Add-WorkforceInsightsDelegationAccess 提供 v3.9.2-預覽1 或更新版本。
Get-WorkforceInsightsDelegationAccess 提供 v3.9.2-預覽1 或更新版本。
Remove-WorkforceInsightsDelegationAccess 提供 v3.9.2-預覽1 或更新版本。

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 和 屬性參數值。

我們也包含了 [最小屬性集],其中包含 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) 正式推出,可在自動指令碼處理或背景自動化案例中使用新式驗證。 可用的憑證儲存位置如下:
  • 在單一 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 由於時間原因而間歇性失敗 權杖到期與工作階段閒置之間的差異。
  • 主要安全性更新。
  • 錯誤修正及增強功能。