共用方式為


關於 Exchange Online PowerShell 模組

自 2022 年以來,Exchange Online PowerShell 模組也稱為 Exchange Online PowerShell V3 模組或 EXO V3 模組 () 使用新式驗證,並使用或不使用多重要素驗證 (MFA) ,以連線到所有 Exchange 雲端相關 PowerShell 環境:Exchange Online PowerShell、安全性 & 合規性 PowerShell、以及 Exchange Online Protection PowerShell,用於內部部署電子郵件環境的雲端保護。

如需使用模組的連線指示,請參閱下列文章:

本文的其餘部分將說明模組的運作方式、如何安裝和維護模組,以及模組中提供的優化 Exchange Online Cmdlet。

EXO V3 模組中的 REST API 連線

自 2023 年以來,Exchange Online PowerShell 和安全性 & 合規性 PowerShell 會針對所有 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-ExchangeOnlineConnect-IPPSSession 命令之後執行。 傳回一個連線資訊物件。
    在多個 Connect-ExchangeOnlineConnect-IPPSSession 命令之後執行。 傳回連線資訊物件的集合。
  • 使用 Connect-ExchangeOnline Cmdlet 上的 SkipLoadingFormatData 參數,以避免載入格式數據,並更快速地執行 Connect-ExchangeOnline 命令。

  • REST API 支援的 Cmdlet 有 15 分鐘逾時,這可能會影響大量作業。 例如,下列 Update-DistributionGroupMember 命令更新通訊群組的 10,000 個成員可能會逾時:

    $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 模組預覽版的 Bug 和問題

提示

針對模組的正式發行 (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-ExchangeOnlineDisconnect-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 或更新版本。
設定預設租戶MyAnalyticsFeatureConfig 適用於 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 或更新版本。
新增-VivaModuleFeaturePolicy 適用於 v3.2.0 或更新版本。
Get-VivaModuleFeaturePolicy 適用於 v3.2.0 或更新版本。
Remove-VivaModuleFeaturePolicy 適用於 v3.2.0 或更新版本。
Update-VivaModuleFeaturePolicy 適用於 v3.2.0 或更新版本。
Add-VivaOrgInsightsDelegatedRole 適用於 v3.7.0-Preview1 或更新版本。
Get-VivaOrgInsightsDelegatedRole 適用於 v3.7.0-Preview1 或更新版本。
Remove-VivaOrgInsightsDelegatedRole 適用於 v3.7.0-Preview1 或更新版本。

安裝和維護 Exchange Online PowerShell 模組

您可以從 PowerShell 資源庫 https://www.powershellgallery.com/packages/ExchangeOnlineManagement/下載模組,網址為 。

本節中的程序說明如何安裝、更新及解除安裝模組。

Exchange Online PowerShell 模組支援的作業系統

此模組在 Windows、Linux 和 Apple macOS 上的 PowerShell 7 中正式支援:

  • 模組版本 3.5.0) (2024 年 5 月或更新版本需要 PowerShell 7.4.0 (2023 年 11 月或更新版本,因為 .NET 8.0 元件相依性,因此需要 PowerShell 7.4.0) 或更新版本。 舊版 PowerShell 7 可能會遇到相容性問題, (PowerShell 7.3.6 比 7.3.7) 更相容。
  • 模組版本 3.0.0 (2022 年 9 月) 到 3.4.0 (202) 3 年 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。
  • 2023 年 6 月 (3.2.0 版) 或更新版本完全支援安全性 & 合規性 PowerShell 中的 REST API Cmdlet。

Apple macOS

注意事項

目前, Connect-IPPSSession 以及因此安全性 & 合規性 PowerShell 無法在 macOS 用戶端上的 PowerShell 7 中使用。

以下版本的 macOS 支援此模組:

  • macOS 13 Ventura 或以上版本

    模組版本 PowerShell 版本
    3.5.0 或更新版本 7.4.0 或更新版本

    7.4.0 是 macOS 13 或更新版本中 PowerShell 7 的最低支援版本。 也支援模組版本 3.0.0 至 3.4.0。

  • macOS 12 Montereymac OS 11 Big Sur

    模組版本 PowerShell 版本
    3.5.0 或更新版本 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.0.0 或更新版本。

    模組版本 2.0.4 和 2.0.5 在英特爾處理器上原生運行。 Apple M1 或 Apple M2 處理器需要 Apple Rosetta 2。

    7.4.x 是 macOS 11 和 macOS 12 中 PowerShell 7 的最新支援版本。

  • macOS 10.15 卡塔利娜

    模組版本 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 (或更新版本)

    7.2.22 是 macOS 10.15 中 PowerShell 7 支援的最新版本。

  • macOS 10.14 Mojave

    模組版本 PowerShell 版本
    2.0.4 和 2.0.5 7.0.3 至 7.1.5

    7.1.5 是 macOS 10.14 中 PowerShell 7 的最新支援版本。

如需在 macOS 上安裝 PowerShell 7 的相關指示,請參閱在 macOS 上安裝 PowerShell

如安裝文章所述,您需要安裝 OpenSSL,這是 WSMan 必要的。

安裝 PowerShell 7 和 OpenSSL 之後,請執行下列步驟:

  1. 以超級使用者身分執行 PowerShell: sudo pwsh

  2. 在 [PowerShell 超級使用者工作階段] 中, 執行下列命令:

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

    如果出現系統提示, 請接受 PSGallery 作為 Cmdlet 的來源。

現在您可以執行一般 PowerShell 必要條件,並安裝 Exchange Online PowerShell 模組

Linux

注意事項

目前, Connect-IPPSSession 以及安全性 & 合規性 PowerShell 無法在 Linux 用戶端上的 PowerShell 7 中使用。

如果您從 Proxy 伺服器後方的網路連線到 Linux 上的 Exchange Online PowerShell,則必須使用模組 3.0.0 版或更新版本。

該模組在以下 Linux 發行版中得到官方支援:

  • Ubuntu 24.04 LTS

    模組版本 PowerShell 版本
    3.5.0 或更新版本 7.4.0 或更新版本
    3.0.0 至 3.4.0 7.2.0 至 7.3.7 (或更新版本)
  • Ubuntu 20.04 LTS

    模組版本 PowerShell 版本
    3.5.0 或更新版本 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.7.0 版或更新版本可能會因 SSL 通訊協定錯誤而失敗。

  • Ubuntu 18.04 LTS

    模組版本 PowerShell 版本
    3.5.0 或更新版本 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.7.0 或更新版本在 Ubuntu 18.04 LTS 中可能會有可靠性問題。

如需在 Linux 上安裝 PowerShell 7 的相關指示,請參閱在 Linux 上安裝 PowerShell

在您安裝 PowerShell 7 之後, 請執行下列步驟:

  1. 以超級使用者身分執行 PowerShell: sudo pwsh

  2. 在 [PowerShell 超級使用者工作階段] 中, 執行下列命令:

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

    如果出現系統提示, 請接受 PSGallery 作為 Cmdlet 的來源。

現在您可以執行一般 PowerShell 必要條件,並安裝 Exchange Online PowerShell 模組

Windows

  • Windows PowerShell 5.1

    • 支援模組的所有版本。
    • 目前版本的 Windows 包含必要的 .NET Framework 版本,因此您不需要安裝 .NET Framework 即可在 Windows PowerShell 5.1 中使用模組。
  • PowerShell 7

    • 模組版本 3.5.0) (2024 年 5 月或更新版本需要 PowerShell 7.4.0 (2023 年 11 月或更新版本,因為 .NET 8.0 元件相依性,因此需要 PowerShell 7.4.0) 或更新版本。 舊版的 PowerShell 7 可能會遇到相容性問題, (PowerShell 7.3.6 與模組的相容性比 7.3.7) 更相容。
    • 模組版本 3.0.0 (2022 年 9 月) 到 3.4.0 (202) 3 年 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 月的) 。

Windows 中的特定模組版本支援取決於 Windows PowerShell 支援和 .NET Framework 和/或 .NET 支援,如下列清單所述:

  • Windows 11

    模組版本 PowerShell 版本 .NET 需求
    2.0.5 或更新版本 5.1 .NET Framework 4.7.2 (4.8.x 隨附,因此您無需安裝.NET Framework)
    3.5.0 或更新版本 7.4.0 或更新版本 .NET 8.0
    包含在 24H2 或更高版本中。
    3.0.0 至 3.4.0 7.2.0 至 7.3.7 (或更新版本) .NET 6.0 (7.2.x)
    .NET 7.0 (7.3.x)

    7.2.0 (.NET 6.0) 是 Windows 11 中最早支援的 PowerShell 7 版本。

  • Windows Server 2022

    模組版本 PowerShell 版本 .NET 需求
    2.0.5 或更新版本 5.1 .NET Framework 4.7.2 (4.8 隨附,因此您無需安裝.NET Framework)
    3.5.0 或更新版本 7.4.0 或更新版本 .NET 8.0
    3.0.0 至 3.4.0 7.2.0 至 7.3.7 (或更新版本) .NET 6.0 (7.2.x)
    .NET 7.0 (7.3.x)

    7.2.0 (.NET 6.0) 是 2022 Windows Server 中最早支援的 PowerShell 7 版本。

  • Windows 10

    模組版本 PowerShell 版本 支援的 Windows 版本 .NET 需求
    2.0.5 或更新版本 5.1 週年更新 (版本 1607;2016 年 8 月) 或之後 .NET Framework 4.7.2
    2018 年 4 月更新 (版本 1803) 或更新版本包含 .NET Framework 4.7.2,因此您不需要下載它。
    3.5.0 或更新版本 7.4.0 或更新版本 2018 年 10 月更新 (版本 1809) 或更新版本 .NET 8.0
    3.0.0 至 3.4.0 7.2.0 至 7.3.7 (或更新版本) 2018 年 10 月更新 (版本 1809) 或更新版本 .NET 6.0 (7.2.x)
    .NET 7.0 (7.3.x)
    2.0.4 和 2.0.5 7.0.3 至 7.1.5 (或更新版本) 週年更新 (版本 1607;2016 年 8 月) 或之後 .NET Core 3.1 (7.0.x)
    .NET 5.0 (7.1.x)
  • Windows Server 2016Windows Server 2019

    模組版本 PowerShell 版本 .NET 需求
    2.0.5 或更新版本 5.1 .NET Framework 4.7.2
    包含在 Windows Server 2019 中。
    3.5.0 或更新版本 7.4.0 或更新版本 .NET 8.0
    3.0.0 至 3.4.0 7.2.0 至 7.3.7 (或更新版本) .NET 6.0 (7.2.x)
    .NET 7.0 (7.3.x)
    2.0.4 和 2.0.5 7.0.3 至 7.1.5 (或更新版本) .NET Core 3.1 (7.0.x)
    .NET 5.0 (7.1.x)
  • Windows 8.1Windows Server 2012Windows Server 2012 R2

    模組版本 PowerShell 版本 .NET 需求
    2.0.5 或更新版本 5.1 .NET Framework 4.7.2
    3.0.0 至 3.4.0 7.2.x .NET 6.0
    2.0.4 和 2.0.5 7.0.3 至 7.1.5 (或更新版本) .NET Core 3.1 (7.0.x)
    .NET 5.0 (7.1.x)

    7.2.22 (.NET 6.0) 是 Windows 8.1、Windows Server 2012 和 Windows Server 2012 R2 中 PowerShell 7 的最新支援版本。

  • Windows 7.1 SP1Windows Server 2008 R2 SP1

    模組版本 PowerShell 版本 .NET 需求
    2.0.3 5.1 .NET Framework 4.7.1

    注意事項

    雖然您可以安裝此版本的模組,但無法連線到 Exchange Online 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 中的基本驗證。

2023 年 6 月 (3.2.0 版) 版模組完全支援 Exchange Online PowerShell 中的 REST API Cmdlet 和安全性 & 合規性 PowerShell。

Windows 中需要 PowerShellGet

Windows 中的 REST API 連線需要 PowerShellGet 模組。 依相依性,PowerShellGet 模組需要 PackageManagement 模組。 PowerShell 5.1 比 PowerShell 7 更需要考慮這些模組,但所有版本的 PowerShell 都會受益於安裝最新版本的模組。 如需安裝和更新指示,請參閱 在 Windows 上安裝 PowerShellGet

提示

PackageManagement 或 PowerShellGet 模組的預覽版本可能會導致連線問題。 如果您有連線問題,請執行下列命令,確認您沒有安裝模組的預覽版本: Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions

如果您在嘗試連線時未安裝 PowerShellGet,您會收到下列錯誤:

找不到 Cmdlet Update-Manifest

安裝 Exchange Online PowerShell 模組

若要第一次安裝模組,請完成下列步驟:

  1. 安裝 PowerShellGet中所述,安裝或更新 PowerShellGet 模組。

  2. 關閉並重新開啟 Windows PowerShell 視窗。

  3. 現在,您可以使用 Install-Module Cmdlet 從 PowerShell 資源庫安裝模組。 一般而言,您想要模組的最新公用版本,但您也可以安裝比目前版本更新的預覽版本。

    • 若要安裝模組的最新 公用版本 ,請執行下列 其中一個 命令:

      • 在提高權限的 PowerShell 視窗中 (所有使用者):

        Install-Module -Name ExchangeOnlineManagement
        
      • 僅適用目前的使用者帳戶:

        Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • 若要查看模組的 可用預覽版本 ,請執行下列命令:

      Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
      
    • 若要安裝 模組的最新可用預覽版本 ,請執行下列 其中一個 命令:

      • 在提高權限的 PowerShell 視窗中 (所有使用者):

        Install-Module -Name ExchangeOnlineManagement -AllowPrerelease
        
      • 僅適用目前的使用者帳戶:

        Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
        
    • 若要安裝模組的特定預覽版本,請將 PreviewVersion> 取代<為必要的值,然後執行下列其中一個命令:

      • 在提高權限的 PowerShell 視窗中 (所有使用者):

        Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
        
      • 僅適用目前的使用者帳戶:

        Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease -Scope CurrentUser
        

    當您完成後,請輸入 Y 以接受授權合約。

如需詳細的語法及參數資訊,請參閱 安裝模組

更新 Exchange Online PowerShell 模組

如果您的電腦上已安裝模組,您可以使用本節中的程序來更新模組。

  1. 若要查看目前安裝的模組版本及其安裝位置,請執行下列命令:

    Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation
    

    如果模組安裝在 C:\Program Files\WindowsPowerShell\Modules 中,則會為所有使用者安裝。 如果模組安裝在您的 Documents 資料夾中,則只會針對目前的使用者帳戶安裝。

  2. 您可以使用 Update-Module Cmdlet 從 PowerShell 資源庫更新模組。 通常,您需要模組的最新公開版本,但您也可以升級至預覽版本(如果有)。

    • 若要升級至模組的最新 公用版本 ,請根據您最初 (所有使用者安裝模組的方式,而不是僅針對目前的使用者帳戶) ,執行下列 其中一個 命令:

      • 在提高權限的 PowerShell 視窗中 (所有使用者):

        Update-Module -Name ExchangeOnlineManagement
        
      • 僅適用目前的使用者帳戶:

        Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • 若要升級至模組的預覽版本 ,您可以升級至最新的可用預覽版本,也可以使用 RequiredVersion 參數升級至特定的預覽版本。

      • 若要查看模組的 可用預覽版本 ,請執行下列命令:

        Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
        
      • 若要升級至 模組的最新可用預覽版本 ,請執行下列 其中一個 命令:

        • 在提高權限的 PowerShell 視窗中 (所有使用者):

          Update-Module -Name ExchangeOnlineManagement -AllowPrerelease
          
        • 僅適用目前的使用者帳戶:

          Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
          
      • 若要升級至模組的特定預覽版本,請將 PreviewVersion> 取代<為必要的值,然後執行下列其中一個命令:

        • 在提高權限的 PowerShell 視窗中 (所有使用者):

          Update-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
          
        • 僅適用目前的使用者帳戶:

          Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -RequiredVersion <PreviewVersion> -AllowPrerelease
          

    當您完成後,請輸入 Y 以接受授權合約。

  3. 若要確認更新成功,請執行下列指令來檢查已安裝模組的版本資訊:

    Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
    

如需詳細的語法及參數資訊,請參閱 更新模組

疑難排解安裝 Exchange Online PowerShell 模組

  • 您收到下列其中一項錯誤:

    目前版本的 PowerShellGet 不支援具有 PowerShellGetFormatVersion '<version>' 的指定模組 'ExchangeOnlineManagement'。 請取得最新版本的 PowerShellGet 模組來安裝此模組 'ExchangeOnlineManagement'。

    警告:無法從 URI 'https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409' 變更為 ''。

    警告:無法下載可用的提供者清單。 請檢查您的網際網路連線。

    安裝 PowerShellGet所述,將 PowerShellGet 模組安裝更新為最新版本。 請務必先關閉並重新開啟 PowerShell 視窗,再嘗試再次更新 ExchangeOnlineManagement 模組。

  • 您收到下列錯誤:

    找不到符合指定搜尋準則和模組名稱 'ExchangeOnlineManagement' 的相符項目。 請嘗試執行 Get-PSRepository ,以查看所有可用的已註冊模組存放庫。

    PowerShell 模組的預設存放庫未設定為 PSGallery。 若要修正此錯誤,請執行下列命令:

    Register-PSRepository -Default
    
  • 自 2020 年 4 月開始,PowerShell 資料庫僅支援使用 TLS 1.2 或更高版本的連線。 如需詳細資訊,請參閱 PowerShell 資料庫 TLS 支援

    若要檢查 Microsoft .NET Framework 中的目前設定,請在 Windows PowerShell 中執行下列命令:

    [Net.ServicePointManager]::SecurityProtocol
    

    如 PowerShell 資料庫 TLS 支援文章所述,若要暫時將安全性通訊協定變更為 TLS 1.2 以安裝 PowerShellGet 或 ExchangeOnlineManagement 模組,在安裝模組之前 ,在 Windows PowerShell 中執行下列命令:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    

    若要 永久在 Microsoft .NET Framework 4.x 或更新版本啟用強式密碼加密,請根據您的 Windows 架構執行下列其中一個命令:

    • x64:

      Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Type DWord -Value '1'
      
    • x86:

      Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Type DWord -Value '1'
      

    如需詳細資訊,請參閱 SchUseStrongCrypto

解除安裝 Exchange Online PowerShell 模組

若要查看目前安裝的模組版本及其安裝位置,請執行下列命令:

Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation

如果模組安裝在 C:\Program Files\WindowsPowerShell\Modules 中,則會針對所有使用者安裝模組。 如果模組安裝在您的 Documents 資料夾中,則它僅針對目前的使用者帳戶安裝。

若要解除安裝模組,請根據您最初 (所有使用者安裝模組的方式,在下列其中一個環境中執行下列命令,而不是僅針對目前的使用者帳戶) :

  • 在提升許可權的 PowerShell 視窗中, (所有使用者) 。

  • 在一般 PowerShell 視窗中, (僅適用於目前的使用者帳戶) 。

    Uninstall-Module -Name ExchangeOnlineManagement
    

如需詳細的語法及參數資訊,請參閱 卸載模組

Exchange Online PowerShell 模組中的屬性和屬性集

傳統的 Exchange Online Cmdlet 會傳回所有可能的物件屬性,包括許多空白或不感興趣的屬性。 這會導致效能下降(更多伺服器計算及新增網路負載)。 您很少(如果有的話)需要 Cmdlet 輸出中的完整屬性。

模組中的 Get-EXO* Cmdlet 包含分類的輸出屬性。 我們沒有賦予所有屬性同等的重要性並在所有場景中傳回它們,而是將特定的相關屬性分類為 屬性集。 這些屬性集是 Cmdlet 上兩個或多個相關屬性的值區。

最大且最常用的 Get-EXO* Cmdlet 會使用屬性集:

在這些 Cmdlet 中,下列參數會控制屬性集:

您可以在同樣的命令中使用 PropertySets屬性參數值。

我們也包含 Minimum 屬性集,其中包含 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.9.0

  • Connect-IPPSSession 上的新 EnableSearchOnlySession 開關,可啟用某些電子檔探索 Cmdlet 和連線到其他 Microsoft 365 服務的相關 Cmdlet。

先前的版本

版本 3.8.0

  • Connect-IPPSSession 上的新 AccessToken 參數。

  • Get-VivaModuleFeature 現在會傳回 ParentFeature、ChildFeature 和 PolicyModes 的相關資訊。 這些值代表 Viva 應用程式功能的父和子功能,以及未來原則的可用啟用模式。

  • Add-VivaModuleFeaturePolicyUpdate-VivaModuleFeaturePolicy Cmdlet 上的新參數 IsUserOptedInByDefault,以及所有 *-VivaModuleFeaturePolicy Cmdlet 中的對應屬性值。 此值會指出原則是否選擇加入或退出使用者,只要使用者未設定喜好設定即可。

    您可以使用此參數在組織中保持啟用功能,同時預設選擇退出受影響的使用者,從而有效地軟停用這些使用者的功能。

  • 已取代 Get-VivaFeatureCategory Cmdlet、所有類別相關參數,以及 CategoryIdIsCategoryEnabled) (傳回值。

版本 3.7.2

  • Connect-ExchangeOnline Cmdlet 上提供 DisableWAM 參數,如果您收到 WAM 相關的連線錯誤,可停用 Web Account Manager (WAM) 。

版本 3.7.1

  • 已新增名為 Get-EXOMailboxExchangeSecurityDescriptor 輸出的新屬性ExoExchangeSecurityDescriptor,類似於 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-EXOMailboxPermissionGet-EXOMailbox 中的錯誤修正。
  • 模組已升級為在 .NET 8 上執行,取代先前的 .NET 6 版本。
  • Add-VivaModuleFeaturePolicy 中的增強功能。

版本 3.5.0

  • 新的 Get-VivaFeatureCategory Cmdlet。
  • 新增了對 Viva 功能存取管理 (VFAM) 中類別層級原則作業的支援。
  • Get-VivaModuleFeaturePolicy 輸出中的新 IsFeatureEnabledByDefault 屬性。 此內容的值會顯示未建立組織或使用者/群組原則時使用者的預設啟用狀態。

版本 3.4.0

  • Connect-ExchangeOnlineGet-EXORecipientPermissionGet-EXOMailboxFolderPermission 中的錯誤修正。
  • Connect-ExchangeOnline 中的 SigningCertificate 參數現在支援 CLM) (限制語言模式

版本 3.3.0

  • SkipLoadingCmdletHelp參數,以 支援略過載入 Cmdlet 說明檔案。
  • 全域變數 EXO_LastExecutionStatus 可用來檢查上次執行的 Cmdlet 狀態。
  • Connect-ExchangeOnlineConnect-IPPSSession 中的錯誤修正。
  • IsUserControlEnabled參數,以支援依原則啟用使用者控件,以上線至 Viva 功能存取管理的功能。

版本 3.2.0

  • 新的 Cmdlet:
    • Get-DefaultTenantBriefingConfigSet-DefaultTenantBriefingConfig
    • Get-DefaultTenantMyAnalyticsFeatureConfigSet-DefaultTenantMyAnalyticsFeatureConfig
    • Get-VivaModuleFeature、Get-VivaModuleFeatureEnablementAdd-VivaModuleFeaturePolicyGet-VivaModuleFeaturePolicyRemove-VivaModuleFeaturePolicyUpdate-VivaModuleFeaturePolicy
  • 安全性 & 合規性 PowerShell 的 REST API 連線支援。
  • Get-ConnectionInformationDisconnect-ExchangeOnline 上的 ConnectionId 參數:
    • 取得特定 REST API 連線的連線資訊。
    • 選擇性中斷 REST API 連線。
  • Connect-ExchangeOnline 上的 SigningCertificate 參數可讓您簽署格式檔案 (*。Format.ps1xml) 或腳本模組檔案 (.psm1) Connect-ExchangeOnline 使用用戶端憑證建立的暫存模組中,以用於所有 PowerShell 執行原則。
  • Connect-ExchangeOnline 中的錯誤修正。

版本 3.1.0

  • AccessToken 參數,可在 Connect-ExchangeOnline 中使用。
  • Connect-ExchangeOnlineGet-ConnectionInformation 中的錯誤修正。
  • Connect-IPPSSession 中的錯誤修正,以使用 CertificateThumbprint 連線到安全性 & 合規性 PowerShell。

版本 3.0.0 (稱為 v2.0.6-PreviewX) 的預覽版本

  • EXO V3 模組一節中的 REST API 連線中已描述的功能:
    • 安全性 & 合規性 PowerShell (2.0.6-Preview5 版或更新版本) 的憑證型驗證
    • 適用於 REST 型連線的 Get-ConnectionInformation Cmdlet (2.0.6-Preview7 版或更新版本) 。
    • Connect-ExchangeOnline Cmdlet 上的 SkipLoadingFormatData 開關,適用於 REST 型連線 (2.0.6-Preview8 版或更新版本) 。
  • DelegatedOrganization 參數可在 Connect-IPPSSession Cmdlet 中運作,只要您在命令中使用 AzureADAuthorizationEndpointUri 參數即可。
  • 在特定案例中提示確認的特定 Cmdlet 不再這樣做。 根據預設,Cmdlet 會執行至完成。
  • 從失敗的 Cmdlet 執行傳回的錯誤格式會稍微修改。 例外狀況現在包含更多資料 (例如,例外狀況類型) ,而 不 FullyQualifiedErrorId 包含 FailureCategory。 錯誤的格式可能會進一步修改。

版本 2.0.5

  • 新的 Get-OwnerlessGroupPolicySet-OwnerlessGroupPolicy Cmdlet 可管理無擁有者的 Microsoft 365 群組。

    注意事項

    雖然可在模組中使用 Cmdlet,但僅有私人預覽的成員能使用功能

  • 新的 Get-VivaInsightsSettingsSet-VivaInsightsSettings Cmdlet 可控制使用者對 Viva Insights 中頂空功能的存取。

版本 2.0.4

  • PowerShell 7 在 Windows、Linux 和 Apple macOS 中得到正式支援,如本文的 Exchange Online PowerShell 模組的必要條件一節所述。

  • PowerShell 7 中的模組支援瀏覽器型單一登入 (SSO) 和其他登入方法。 如需詳細資訊,請參閱 PowerShell 7 獨佔連線方法

  • Get-UserAnalyticsConfigSet-UserAnalyticsConfig Cmdlet 已由 Get-MyAnalyticsConfigSet-MyAnalyticsConfig 取代。 此外,您可以在功能層級設定存取權。 如需詳細資訊,請參閱設定 MyAnalytics

  • 所有使用者型驗證中的即時原則和安全性強制執行。 模組中啟用了 CAE) (持續存取評估。 如需 CAE 的詳細資訊,請參閱這裡

  • LastUserActionTimeLastInteractionTime 屬性現在可在 Get-EXOMailboxStatistics Cmdlet 的輸出中取得。

  • 互動式登入程序現在會使用更安全的方法,以透過安全回覆 URL 來擷取存取權杖。

版本 2.0.3

  • 憑證式驗證的一般可用性,可以啟用在無人值守的腳本或背景自動化的案例中使用新式驗證。 可用的憑證儲存位置如下:
  • 在單一 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-UserBriefingConfigGet-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 不同的問題。 我們仍然很少有具有不同資料類型的屬性,我們計劃在未來幾個月內處理它們。
  • 已修正錯誤:使用 Credentials 或 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 間歇性失敗,因為權杖到期與工作階段閒置之間的時間差異。
  • 主要安全性更新。
  • 錯誤修正及增強功能。