自 2022 年以來,Exchange Online PowerShell 模組也稱為 Exchange Online PowerShell V3 模組或 EXO V3 模組 () 使用新式驗證,並使用或不使用多重要素驗證 (MFA) ,以連線到所有 Exchange 雲端相關 PowerShell 環境:Exchange Online PowerShell、安全性 & 合規性 PowerShell、以及 Exchange Online Protection PowerShell,用於內部部署電子郵件環境的雲端保護。
如需使用模組的連線指示,請參閱下列文章:
連線到 Exchange Online PowerShell
提示
Exchange Online Protection PowerShell 用於內部部署電子郵件環境的雲端保護,會使用與 Exchange Online PowerShell 相同的連線指示。
Exchange Online PowerShell 和安全性 & 合規性 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-ExchangeOnline 或 Connect-IPPSSession 命令之後執行。 傳回一個連線資訊物件。 在多個 Connect-ExchangeOnline 或 Connect-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:
提示
如果您在相同視窗中開啟多個連線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 或更新版本。 |
| 設定預設租戶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 Monterey 和 mac 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 之後,請執行下列步驟:
以超級使用者身分執行 PowerShell:
sudo pwsh在 [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 之後, 請執行下列步驟:
以超級使用者身分執行 PowerShell:
sudo pwsh在 [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 2016 和 Windows 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.1、Windows Server 2012 和 Windows 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 SP1 和 Windows 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 模組
若要第一次安裝模組,請完成下列步驟:
如安裝 PowerShellGet中所述,安裝或更新 PowerShellGet 模組。
關閉並重新開啟 Windows PowerShell 視窗。
現在,您可以使用 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 模組
如果您的電腦上已安裝模組,您可以使用本節中的程序來更新模組。
若要查看目前安裝的模組版本及其安裝位置,請執行下列命令:
Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation如果模組安裝在 C:\Program Files\WindowsPowerShell\Modules 中,則會為所有使用者安裝。 如果模組安裝在您的 Documents 資料夾中,則只會針對目前的使用者帳戶安裝。
您可以使用 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 以接受授權合約。
若要確認更新成功,請執行下列指令來檢查已安裝模組的版本資訊:
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:此參數接受一或多個以逗號分隔的屬性集名稱。 可用的屬性集會在 Exchange Online PowerShell 模組 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-VivaModuleFeaturePolicy 和 Update-VivaModuleFeaturePolicy Cmdlet 上的新參數 IsUserOptedInByDefault,以及所有 *-VivaModuleFeaturePolicy Cmdlet 中的對應屬性值。 此值會指出原則是否選擇加入或退出使用者,只要使用者未設定喜好設定即可。
您可以使用此參數在組織中保持啟用功能,同時預設選擇退出受影響的使用者,從而有效地軟停用這些使用者的功能。
已取代 Get-VivaFeatureCategory Cmdlet、所有類別相關參數,以及 CategoryId、 IsCategoryEnabled) (傳回值。
版本 3.7.2
- Connect-ExchangeOnline Cmdlet 上提供 DisableWAM 參數,如果您收到 WAM 相關的連線錯誤,可停用 Web Account Manager (WAM) 。
版本 3.7.1
- 已新增名為 Get-EXOMailbox
ExchangeSecurityDescriptor輸出的新屬性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-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
- SkipLoadingCmdletHelp參數,以 支援略過載入 Cmdlet 說明檔案。
- 全域變數
EXO_LastExecutionStatus可用來檢查上次執行的 Cmdlet 狀態。 - Connect-ExchangeOnline 和 Connect-IPPSSession 中的錯誤修正。
- 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-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-OwnerlessGroupPolicy 和 Set-OwnerlessGroupPolicy Cmdlet 可管理無擁有者的 Microsoft 365 群組。
注意事項
雖然可在模組中使用 Cmdlet,但僅有私人預覽的成員能使用功能。
新的 Get-VivaInsightsSettings 和 Set-VivaInsightsSettings Cmdlet 可控制使用者對 Viva Insights 中頂空功能的存取。
版本 2.0.4
PowerShell 7 在 Windows、Linux 和 Apple macOS 中得到正式支援,如本文的 Exchange Online PowerShell 模組的必要條件一節所述。
PowerShell 7 中的模組支援瀏覽器型單一登入 (SSO) 和其他登入方法。 如需詳細資訊,請參閱 PowerShell 7 獨佔連線方法。
Get-UserAnalyticsConfig 和 Set-UserAnalyticsConfig Cmdlet 已由 Get-MyAnalyticsConfig 和 Set-MyAnalyticsConfig 取代。 此外,您可以在功能層級設定存取權。 如需詳細資訊,請參閱設定 MyAnalytics。
所有使用者型驗證中的即時原則和安全性強制執行。 模組中啟用了 CAE) (持續存取評估。 如需 CAE 的詳細資訊,請參閱這裡。
LastUserActionTime 和 LastInteractionTime 屬性現在可在 Get-EXOMailboxStatistics Cmdlet 的輸出中取得。
互動式登入程序現在會使用更安全的方法,以透過安全回覆 URL 來擷取存取權杖。
版本 2.0.3
- 憑證式驗證的一般可用性,可以啟用在無人值守的腳本或背景自動化的案例中使用新式驗證。 可用的憑證儲存位置如下:
- 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 不同的問題。 我們仍然很少有具有不同資料類型的屬性,我們計劃在未來幾個月內處理它們。
- 已修正錯誤:使用 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 間歇性失敗,因為權杖到期與工作階段閒置之間的時間差異。
- 主要安全性更新。
- 錯誤修正及增強功能。