關於 Exchange Online PowerShell 模組
Exchange Online PowerShell 模組會使用新式驗證,並搭配使用或不使用多重要素驗證 (MFA) ,以聯機到 Microsoft 365 中的所有 Exchange 相關 PowerShell 環境:Exchange Online PowerShell、安全性 & 合規性 PowerShell 和獨立 Exchange Online Protection (PowerShell) EOP。
如需使用 模組的連線指示,請參閱下列文章:
- 連線到 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 模組) 。 2021 (2.0.5 版和更早版本) 稱為 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 案例的因應措施。
Exchange Online PowerShell 和安全性 & 合規性 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 來取得 REST API 連線的相關信息,以 Exchange Online PowerShell 和安全性 & 合規性 PowerShell。 此 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 模組預覽版的錯誤和問題
提示
針對正式運作 (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 一律會與 PowerShell 連線 Exchange Online 最後一個 (最新的) 相關聯。 執行下列命令來尋找 執行 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-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 正式支援最新版本的模組。
具體而言,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:此參數接受一或多個以逗號分隔的屬性集名稱。 PowerShell 模組 Cmdlet 中的屬性集 Exchange Online 說明可用的屬性集。
- 屬性:此參數接受一個或多個以逗號分隔的屬性名稱。
您可以在同樣的命令中使用 PropertySets 和 屬性參數值。
我們也包含 Minimum 屬性集,其中包含 Cmdlet 輸出 (的最小必要屬性集,例如身分識別屬性) 。 Minimum 屬性集中的屬性也會在 PowerShell 模組 Cmdlet 中 Exchange Online 屬性集中描述。
- 如果您沒有使用 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.7.1 版
- 已將名為
ExoExchangeSecurityDescriptor
的新屬性新增至 Get-EXOMailbox 的輸出,其類似於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 中的 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 間歇性失敗,因為令牌到期與會話閑置之間的時間差異。
- 主要安全性更新。
- 錯誤修正及增強功能。