關於 Exchange Online PowerShell 模組
Exchange Online PowerShell 模組使用新式驗證,可搭配使用或不使用多重要素驗證 (MFA) ,以聯機到 Microsoft 365 中的所有 Exchange 相關 PowerShell 環境:Exchange Online PowerShell、安全性 & 合規性 PowerShell,以及獨立 Exchange Online Protection (EOP) PowerShell。
如需使用 模組的連線指示,請參閱下列文章:
- 連線到 Exchange Online PowerShell
- 連線到安全性與合規性 PowerShell
- 連線至 Exchange Online Protection PowerShell
- Exchange Online PowerShell 和安全性 & 合規性 PowerShell 中自動腳本的僅限應用程式驗證
- 使用 Azure 受控識別連線到 Exchange Online PowerShell
- 使用 C# 連線到 Exchange Online PowerShell
本文的其餘部分將說明模組的運作方式、如何安裝和維護模組,以及模組中提供的優化 Exchange Online Cmdlet。
提示
版本 3.0.0 和更新版本 (2022) 稱為 Exchange Online PowerShell V3 模組, (縮寫為 EXO V3 模組) 。 版本 2.0.5 和更早的 (2021) 稱為 Exchange Online PowerShell V2 模組, (縮寫為 EXO V2 模組) 。
EXO V3 模組中的 REST API 連線
Exchange Online PowerShell 和安全性 & 合規性 PowerShell 現在會針對所有 Cmdlet 使用 REST API 連線:
- Exchange Online PowerShell:EXO V3 模組 v3.0.0 或更新版本。
- 安全性 & 合規性 PowerShell:EXO V3 模組 v3.2.0 或更新版本。
REST API 連線需要 PowerShellGet 和 PackageManagement 模組。 如需詳細資訊,請參閱 Windows 中 REST 型連線的 PowerShellGet。
REST API 連線中的 Cmdlet 比其歷史對應專案具有下列優點:
- 更安全:內建的新式驗證支援,且不依賴遠端PowerShell會話。 客戶端電腦上的PowerShell在 WinRM中不需要基本身份驗證。
-
更可靠:暫時性失敗會使用內建重試,因此失敗或延遲會最小化。 例如:
- 因網路延遲而失敗。
- 因為大型查詢需要很長的時間才能完成,所以會延遲。
- 更好的效能:REST API 連線可避免設定 PowerShell Runspace。
下表說明 REST API 連線中 Cmdlet 的優點:
遠端 PowerShell Cmdlet | Get-EXO* Cmdlet | REST API Cmdlet | |
---|---|---|---|
安全性 | 最不安全 | 高度安全 | 高度安全 |
效能 | 低效能 | 高效能 | 中等效能 |
可靠性 | 最不可靠 | 高度可靠 | 高度可靠 |
功能 | 所有可用的參數和輸出屬性 | 可用的參數和輸出屬性有限 | 所有可用的參數和輸出屬性 |
REST API Cmdlet 具有相同的 Cmdlet 名稱,其運作方式就如同其遠端 PowerShell 對等專案一樣,因此您不需要在舊版腳本中更新 Cmdlet 名稱或參數。
提示
Invoke-Command Cmdlet 無法在 REST API 連線中運作。 如需替代方案,請參閱 REST API 連線中 Invoke-Command 案例的因應措施。
遠端 PowerShell) 連線 (基本身份驗證在 Exchange Online PowerShell 和安全性 & 合規性 PowerShell 中已被取代。 如需詳細資訊,請 參閱這裡 和 這裡。
Exchange Online PowerShell 中的一些 Cmdlet 已使用 REST API 連線中的實驗性 UseCustomRouting 參數進行更新。 此切換會將命令直接路由傳送至必要的信箱伺服器,並且可能會改善整體效能。 實驗性地 使用 UseCustomRouting 參數。
當您使用 UseCustomRouting 切換時,針對信箱的身分識別您只需要使用下列值:
- 使用者主要名稱 (UPN)
- 電子郵件地址
- 信箱 GUID
UseCustomRouting 参數僅適用於 REST API 連線中的下列 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 的 REST API 連線相關信息。 此 Cmdlet 是必要的,因為 Windows PowerShell 中的 Get-PSSession Cmdlet 不會傳回 REST API 連線的資訊。
下表說明您可以使用 Get-ConnectionInformation 的案例:
案例 預期的輸出 在 REST API 連線 的 Connect-ExchangeOnline 或 Connect-IPPSSession 命令之後執行。 傳回一個連接信息物件。 在 REST API 連線 的多個 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,已針對大量數據擷取案例中的速度優化, (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 或更新版本。 |
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 或更新版本。 |
安裝和維護 Exchange Online PowerShell 模組
您可以從位於的 PowerShell 資源庫 https://www.powershellgallery.com/packages/ExchangeOnlineManagement/下載模組。
本節中的程序說明如何安裝、更新和卸載模組。
Exchange Online PowerShell 模組支援的操作系統
Windows、Linux 和 Apple macOS 上的 PowerShell 7 正式支援最新版本的模組。
具體而言,PowerShell 7.0.3 或 更新版本支援 2.0.4 版或更新版本。
如需 PowerShell 7 的詳細資訊,請參閱宣佈推出 PowerShell 7.0。
Apple macOS
下列版本的 macOS 支援此模組:
- macOS 11 Big Sur 或更新版本
- macOS 10.15 Catalina
- macOS 10.14 Mojave
如需在 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
下列 Linux 發行版正式支援此模組:
- Ubuntu 24.04 LTS
- Ubuntu 20.04 LTS
- 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 模組。
注意事項
如果您從 Proxy 伺服器後方的網路連線到 Exchange Online PowerShell,則 EXO V2 模組 (版本 v2.0.5 或更早版本) 無法在 Linux 中運作。 您必須在Linux中使用 (v3.0.0或更新版本的EXO V3模組) ,才能從 Proxy 伺服器後方的網路進行連線。
Windows
Windows PowerShell 5.1 支援所有模組版本。
Windows 上的 PowerShell 7 需要 2.0.4 版或更新版本。
2.0.5 版或更新版本的模組需要Microsoft .NET Framework 4.7.2 或更新版本才能連線。 否則,您會收到 System.Runtime.InteropServices.OSPlatform
錯誤。 此需求不應成為目前 Windows 版本中的問題。 如需支援 .NET Framework 4.7.2 之 Windows 版本的詳細資訊,請參閱 這篇文章。
下列清單說明 舊版 Windows 中的 Windows PowerShell 需求和模組支援:
Windows 8.1¹
Windows Server 2012 或 Windows Server 2012 R2¹
Windows 7 Service Pack 1 (SP1) ² ³ ⁴
Windows Server 2008 R2 SP1² ³ ⁴
¹此 Windows 版本上的 PowerShell 7 需要 Windows 10 通用 C 執行時間 (CRT) 。
²此 Windows 版本的支援已終止,現在僅在 Azure 虛擬機中支援。
³ 此版本的 Windows 僅支援 v2.0.3 或舊版的模組。
⁴此 Windows 版本上的 Windows PowerShell 5.1 需要 .NET Framework 4.5 或更新版本,以及 Windows Management Framework 5.1。 如需詳細資訊,請參閱 Windows Management Framework 5.1。
Exchange Online PowerShell 模組的必要條件
將 PowerShell 執行原則設定為 RemoteSigned
提示
本節中的設定適用於所有操作系統上的所有 PowerShell 版本。
PowerShell 必須經過設定才能執行指令碼,但預設並未設定。 當您嘗試連線時,會發生以下錯誤:
因為此系統上已停用執行指令碼,因此無法載入檔案。 提供有效的憑證,用來簽署檔案。
若要要求您從網際網路下載的所有 PowerShell 指令碼都是由信任的發行者簽署,請在提高權限的 PowerShell 視窗 (透過選取 [以系統管理員身分執行] 而開啟的 PowerShell 視窗) 中,執行下列命令:
Set-ExecutionPolicy RemoteSigned
如需執行原則的相關資訊,請參閱 執行原則相關資訊。
在 WinRM 中開啟基本身份驗證
重要事項
如本節所述,REST API 連線不需要 WinRM 中的基本身份驗證。 如 本文稍早所述,遠端 PowerShell (基本身份驗證) Exchange Online PowerShell 和安全性 & 合規性 PowerShell 的存取已被取代。 本節中的資訊是為了歷史目的而維護。
對於目前無法) 使用 REST API (的遠端 PowerShell 連線,WinRM 必須允許基本身份驗證。 我們不會傳送使用者名稱和密碼組合。 需要基本身份驗證 標頭 才能傳送會話的 OAuth 令牌,因為 WinRM 的用戶端實作不支援 OAuth。
若要驗證已為 WinRM 啟用基本驗證,請在命令提示字元或 Windows PowerShell 中執行下列命令:
注意事項
下列命令需要啟用 WinRM。 若要啟用 WinRM,請執行下列命令: winrm quickconfig
。
winrm get winrm/config/client/auth
如果您沒有看到 Basic = true
值,則必須執行下列其中一個命令,為 WinRM 啟用基本驗證:
在命令提示字元中:
winrm set winrm/config/client/auth @{Basic="true"}
在 Windows PowerShell 中:
winrm set winrm/config/client/auth '@{Basic="true"}'
在 Windows PowerShell 中,若要修改登錄:
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client' -Name 'AllowBasic' -Type DWord -Value '1'
如果已停用 WinRM 的基本身份驗證,當您嘗試使用遠端 PowerShell) 連線 (基本身份驗證進行連線時,會收到下列其中一個錯誤:
WinRM 用戶端無法處理該要求。 用戶端設定目前已停用基本驗證。 請變更用戶端設定,然後再次嘗試該要求。
使用 OAuth 建立 PowerShell 工作階段失敗。
Windows 中 REST API 連線的 PowerShellGet
Windows 中的 REST API 連線需要 PowerShellGet 模組,而依相依性,需要 PackageManagement 模組。 相較於 PowerShell 7,這些模組的考慮更適用於 PowerShell 5.1,但所有版本的 PowerShell 都受益於安裝最新版本的模組。 如需安裝和更新指示,請參閱 在 Windows 上安裝 PowerShellGet。
提示
PackageManagement 或 PowerShellGet 模組的 Beta 版本可能會導致連線問題。 如果您有連線問題,請執行下列命令來確認您沒有安裝 Beta 版本的模組: Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions
。
如果您在嘗試建立 REST API 連線時未安裝 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 中的屬性集中,也會描述 Minimum 屬性集的屬性。
- 如果您沒有使用 PropertySets 或 Properties 參數,您會自動取得「最低限度 (Minimum)」屬性集中的屬性。
- 如果您使用 PropertySets 或 Properties 參數,您會取得指定的屬性,以及「最低限度 (Minimum)」屬性集中的屬性。
不論是哪一種方式,Cmdlet 輸出都包含較少的屬性,而且傳回結果的速度會更快。
例如,在您 連線到 Exchange Online PowerShell 之後,下列範例只會傳回前 10 個信箱之 Minimum 屬性集內的屬性。
Get-EXOMailbox -ResultSize 10
相反地,相同 Get-Mailbox 命令的輸出會針對前 10 個信箱各傳回至少 230 個屬性。
注意事項
雖然您可以使用 PropertySets 參數來取得全部植,但我們極力反對使用這個值來擷取所有屬性,因為這會減緩命令的速度並降低可靠性。 請一律使用 PropertySets 和 屬性 參數,來擷取您案例所需的最少屬性數目。
如需模組中篩選的詳細資訊,請參閱 Exchange Online PowerShell 模組中的篩選。
版本資訊
除非另有說明,否則目前的 Exchange Online PowerShell 模組版本包含舊版的所有功能。
目前版本
3.5.1 版
- Get-EXOMailboxPermission 和 Get-EXOMailbox 中的 Bug 修正。
- 模組已升級為在 .NET 8 上執行,並取代以 .NET 6 為基礎的舊版。
- Add-VivaModuleFeaturePolicy 中的增強功能。
先前的版本
3.5.0 版
- 新的 Get-VivaFeatureCategory Cmdlet。
- 已在 Viva Feature Access Management (VFAM) 中新增類別層級的原則作業支援。
- Get-VivaModuleFeaturePolicy 輸出中的新 IsFeatureEnabledByDefault 屬性。 當未建立租使用者或使用者/組策略時,此屬性的值會顯示租用戶中使用者的默認啟用狀態。
3.4.0 版
- Connect-ExchangeOnline、Get-EXORecipientPermission 和 Get-EXOMailboxFolderPermission 中的 Bug 修正。
- 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 中的 Bug 修正。
3.1.0 版
- Connect-ExchangeOnline 中提供的 AccessToken 參數。
- 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 版或更新版本) 。
- 適用於 REST 連線的 Connect-ExchangeOnline Cmdlet 上的 SkipLoadingFormatData 參數, (2.0.6-Preview8 版或更新版本) 。
- 只要您也在 命令中使用 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 中 Headspace 功能的存取。
版本 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 取代。 此外,您可以在功能層級設定存取權。 如需詳細資訊,請參閱設定 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 通話的延遲。 Lab 結果顯示第一個通話延遲已從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 的 Identity 參數現在支援 Name 和 Alias。 使用別名或名稱會降低 V2 Cmdlet 的效能,因此我們不建議使用它們。
- 已修正由 V2 Cmdlet 傳回的屬性資料類型與遠端 PowerShell Cmdlet 不同的問題。 我們仍有一些不同數據類型的屬性,我們計劃在未來幾個月內處理這些屬性。
- 已修正錯誤:使用認證或UserPrincipalName叫用 Connect-ExchangeOnline 時,頻繁的會話重新連線問題
0.3555.1 版
- 已修正管線 Cmdlet 因驗證問題而導致下列錯誤的錯誤:
無法叫用管線,因為 Runspace 不是處於開啟狀態。 目前的執行空間狀態為 [關閉]。
0.3527.4 版
- 已更新 Get-Help 內容。
- 已修正 Get-Help 中 在線 參數重新導向至不存在頁面,錯誤碼為 400 的問題。
0.3527.3 版
- 已新增使用委派流程來為不同租用戶管理 Exchange 的支援。
- 在單一PowerShell視窗中與其他PowerShell模組一起運作。
- 已新增位置參數支援。
- 日期時間欄位現在支援用戶端區域設定。
- 錯誤修正:在 Connect-ExchangeOnline 傳遞空白 PSCredential。
- 錯誤修正:篩選器包含 $null 的用戶端模組錯誤。
- EXO V2 模組內部所建立的工作階段現在有名稱 (命名模式:ExchangeOnlineInternalSession_%SomeNumber%)。
- 錯誤修正:遠端 PowerShell Cmdlet 間歇性失敗,因為令牌到期與會話閑置之間的時間差異。
- 主要安全性更新。
- 錯誤修正及增強功能。