關於 Exchange Online PowerShell V2 模組

Exchange Online PowerShell V2 模組(縮寫為 EXO V2 模組)使用新式驗證,可與多重要素驗證(MFA)搭配使用,以連線到 Microsoft 365 中的所有 Exchange 相關 PowerShell 環境: Exchange Online PowerShell、安全性與合規性 PowerShell,以及獨立 Exchange Online Protection (EOP) PowerShell。

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

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

報告 EXO V2 模組的錯誤和問題

當您回報問題時,請確定您的電子郵件訊息中包含記錄檔。 若要產生記錄檔,請以您想要的輸出資料夾取代 <Path to store log file>,然後執行下列命令:

Connect-ExchangeOnline -EnableErrorReporting -LogDirectoryPath <Path to store log file> -LogLevel All

EXO V2 模組的運作方式

此模組包含一小組獨佔的 Exchange Online PowerShell cmdlet,用來為大量資料擷取案例進行最佳化 (假設有成千上萬的物件)。 當您第一次開啟模組時,您只會看到這些獨佔式 Cmdlet。 在您 連線至 Exchange Online 組織之後,您會看到所有可在 Exchange Online PowerShell 上使用的熟悉 cmdlets。

此模組會對所有 Cmdlet 使用新式驗證。 您無法在 EXO V2 模組中使用基本驗證,不過,您仍需依照如 本文稍後 所述的方式來啟動 WinRM 中的基本驗證設定。

EXO V2 模組中的 Exchange Online Cmdlet 是用來取代其較舊且較沒效率者的對應項,但同等 Cmdlet 仍然可以使用(在您連線之後)。

下表列出只有 EXO V2 模組中才有的改良 Exchange Online PowerShell Cmdlet:


EXO V2 模組 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

下表列出提供 EXO V2 模組的連線相關 Cmdlet:


EXO V2 模組 Cmdlet 舊的相關 Cmdlet
Connect-ExchangeOnline Connect-EXOPSSession

New-PSSession

Connect-IPPSSession Connect-IPPSSession
Disconnect-ExchangeOnline Remove-PSSession

下表列出了 EXO V2 模組中的其他 Exchange Online Cmdlet:


EXO V2 模組 Cmdlet 註解
Get-MyAnalyticsFeatureConfig 此 Cmdlet 可用於 v 2.0.4 或更新版本。
Set-MyAnalyticsFeatureConfig 此 Cmdlet 可用於 v 2.0.4 或更新版本。
Get-UserBriefingConfig 此 Cmdlet 正由 Get-UserAnalyticsConfig 取代。
Set-UserBriefingConfig 此 Cmdlet 正由 Set-UserAnalyticsConfig 取代。

安裝和維護 EXO V2 模組

您可以在https://www.powershellgallery.com/packages/ExchangeOnlineManagement/下載 PowerShell 資源庫中的 EXO V2 模組。

本節中的程式說明如何安裝、更新及卸載 EXO V2 模組。

EXO V2 模組支援的作業系統

Windows、Linux 和 Apple macOS 上的 PowerShell 7 中已正式支援最新版本的 EXO V2 模組。

具體來說,PowerShell 7.0.3 或更新版本 中支援 EXO V2 模組的版本 2.0.4 或更新版本

如需 PowerShell 7 的詳細資訊,請參閱宣佈推出 PowerShell 7.0

Apple macOS

下列版本的 macOS 中支援 EXO V2 模組:

  • macOS 11 Big Sur 或更新版本
  • macOS 10.15 Catalina
  • macOS 10.14 Mojave

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

Linux

下列 Linux 發行版本中已正式支援 EXO V2 模組:

  • Ubuntu 18.04/20.04

如果您在其他 Linux 發行版本上無法使用 EXO V2 模組,請傳送電子郵件至下列位址:exocmdletpreview[at]service[dot]microsoft[dot]com。 電子郵件地址會特意進行模糊處理,以避免垃圾郵件。

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

Windows

Windows PowerShell 5.1 中支援所有版本的 EXO V2 模組。 Windows 上的 PowerShell 7 需要版本 2.0.4 或更新版本的 EXO V2 模組。

下列版本的 Windows 中支援 EXO V2 模組:

  • Windows 10
  • Windows 8.13
  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012 或 Windows Server 2012 R23
  • Windows 7 Service Pack 1 (SP1)1、2、3
  • Windows Server 2008 R2 SP11、2、3

1 此版本 Windows 已到達終止支援,目前僅在 Azure 虛擬機器中才受支援。

2 此版本 Windows 上的 Windows PowerShell 5.1 需要 Microsoft .NET Framework 4.5 或更新版本,以及 Windows Management Framework 5.1。 如需詳細資訊,請參閱 Windows Management Framework 5.1

3 此版本 Windows 上的 PowerShell 7 需要 Windows 10 Universal C Runtime (CRT)

EXO V2 模組的先決條件

注意

本節所述的設定為所有作業系統上所有版本的 PowerShell 中所需。

  • PowerShell 必須經過設定才能執行指令碼,但預設並未設定。 嘗試連線時,您會發生以下錯誤:

    因為此系統上已停用執行指令碼,因此無法載入檔案。 提供有效的憑證,用來簽署檔案。

    若要要求您從網際網路下載的所有 PowerShell 指令碼都是由信任的發行者簽署,請在提高權限的 PowerShell 視窗 (透過選取 [以系統管理員身分執行 ] 而開啟的 PowerShell 視窗) 中,執行下列命令:

    Set-ExecutionPolicy RemoteSigned
    

    如需執行原則的相關資訊,請參閱 執行原則相關資訊

  • WinRM 需要允許基本驗證 (預設為啟用)。 我們不會傳送使用者名稱和密碼組合,但是需要有 [基本驗證] 標頭才能傳送工作階段的 OAuth 權杖,因為用戶端 WinRM 實作不支援 OAuth。

    注意:您必須暫時啟用 WinRM 才能執行下列命令。 您可以執行下列命令來啟用 WinRM:winrm quickconfig

    若要確認已為 WinRM 啟用基本驗證,請在 [命令提示字元 ] (非 PowerShell) 中執行此命令:

    winrm get winrm/config/client/auth
    

    如果沒有看到值 Basic = true,則必須在 [命令提示字元 ] (而非在 PowerShell) 中執行此命令,才能為 WinRM 啟用基本驗證:

    winrm set winrm/config/client/auth @{Basic="true"}
    

    注意:如果您偏好在 PowerShell 中執行此命令,請以引號括住此部分的命令:'@{Basic="true"}'

    如果已停用 WinRM 的基本驗證,當您嘗試連線時,會收到此錯誤訊息:

    WinRM 用戶端無法處理該要求。 用戶端設定目前已停用基本驗證。 請變更用戶端設定,然後再次嘗試該要求。

提示

有問題嗎? 在 Exchange 論壇中尋求協助。 請造訪論壇,網址:Exchange OnlineExchange Online Protection

安裝 EXO V2 模組

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

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

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

  3. 現在,您可以使用 安裝模組 Cmdlet 來安裝 PowerShell 資料庫中的 EXO V2 模組。 通常您會想要該模組的最新公開版本,但是您也可以安裝預覽版本(如果有的話)。

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

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

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

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

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

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

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

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

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

更新 EXO V2 模組

如果您的電腦已安裝模組,您可以執行下列命令來查看目前已安裝的版本,並從 PowerShell 資料庫中將其更新為最新版本:

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

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

    • 若要升級至模組的 最新公開版本,請根據最初安裝模組的方式 (在提高權限的 PowerShell 視窗中與 Scope CurrentUser),執行下列其中 一個 命令:

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

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

        Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • 若要升級至模組的 預覽版本,請以必要的值取代 <PreviewVersion>,然後根據最初安裝模組的方式 (在提高權限的 PowerShell 視窗中與 ) 執行下列其中 一個Scope CurrentUser命令:

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

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

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

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

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

    Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
    

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

安裝 EXO V2 模組的疑難排解

  • 如果您收到下列錯誤訊息:

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

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

  • 自 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

解除安裝 EXO V2 模組

若要解除安裝模組,請根據最初安裝模組的方式 (在提高權限的 PowerShell 視窗中與 Scope CurrentUser),執行下列其中 一個 命令:

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

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

    Uninstall-Module -Name ExchangeOnlineManagement
    

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

EXO V2 模組中的屬性和屬性集

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

模組中的 GET-EXO* Cmdlet 都有分類輸出屬性。 我們已將特定相關屬性分類至「屬性集」,而不是將所有屬性視為同等重要並在所有案例中傳回所有屬性。 簡單來說,這些屬性集是 Cmdlet 上兩個或多個相關屬性的貯體。

在最大和最常用的 Get-EXO* Cmdlet:

屬性集是由下列參數所控制:

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

我們也包含最低限度屬性集,其中包含一組最低限度的 Cmdlet 輸出所需屬性 (例如,身分識別屬性)。 Exchange Online PowerShell V2 Cmdlet 的屬性集 中描述最低限度的屬性集。

  • 如果您沒有使用 PropertySets 或 Properties 參數,您會自動取得「最低限度 (Minimum)」屬性集中的屬性。
  • 如果您使用 PropertySets 或 Properties 參數,您會取得指定的屬性,以及「最低限度 (Minimum)」屬性集中的屬性。

無論是哪一種情況,Cmdlet 輸出都將包含極少的屬性,並更快速地傳回這些結果。

例如, 連線到 Exchange Online PowerShell之後,下列範例只會傳回前10個信箱的 [最小值] 屬性集中的屬性。

Get-EXOMailbox -ResultSize 10

相反地,相同的 Get-Mailbox 命令輸出會針對前十個信箱,每一個皆傳回至少 230 個屬性。

注意

雖然您可以使用 PropertySets 參數來取得全部植,但我們極力反對使用這個值來擷取所有屬性,因為這會減緩命令的速度並降低可靠性。 請一律使用 PropertySets屬性 參數,來擷取您案例所需的最少屬性數目。

如需 EXO V2 模組中篩選器的詳細資訊,請參閱 Exchange Online V2 模組中的篩選器

版本資訊

除非另有說明,否則目前的 EXO V2 模組版本含有先前版本的所有功能。

目前的版本:版本 2.0.4

  • 如本文中的 EXO V2 模組的先決條件一節所述,在 Windows、Linux 和 Apple macOS 中已正式支援 PowerShell 7。

  • PowerShell 7 中的 EXO V2 模組支援以瀏覽器為基礎的單一登入 (SSO) 和其他登入方式。 如需詳細資訊,請參閱 PowerShell 7 登入體驗

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

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

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

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

先前的版本

版本 2.0.3

  • 憑證式驗證的一般可用性,可以啟用在無人值守的腳本或背景自動化的案例中使用新式驗證。 可用的憑證儲存位置如下:
    • Azure Key Vault (憑證) 的 [遠端] 參數。 此選項可只在運行時擷取憑證,以加強安全性。
    • CurrentUser 或 LocalMachine 憑證儲存區中的 [本機](CertificateThumbprint 參數)。
    • 匯出的憑證檔中的 [本機] ( CertificateFilePathCertificatePassword 參數)。 如需詳細資訊,請參閱在 Connect ExchangeOnline 以及 EXO V2 模組中無人值守的腳本的應用程式專用驗證 的參數描述。
  • 在單一 PowerShell 視窗中,可同時連線到 Exchange Online PowerShell 與 Security Compliance Center 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 支援。 請查看 EXO V2 模組中的篩選 以了解篩選器不支援的屬性。

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 Cmdlet 新增安全性與合規性中心的 PowerShell Cmdlet 支援。
  • 可以使用 ShowBanner 參數 (-ShowBanner:$false) 來隱藏公告通知橫幅。
  • 在用戶端例外上終止執行 Cmdlet。
  • 為提高效能,遠端 PowerShell 包含各種 EXO Cmdlet 刻意不支援的複雜資料類型。 遠端 PowerShell Cmdlet 和 V2 Cmdlet 之間非複雜資料類型的差異已解決,可讓管理指令碼流暢地進行遷移。

0.3582.0 版

  • 支援在建立工作階段期間加上首碼。
    • 您一次只能建立 1 個 Cmdlet 加上首碼的工作階段。
    • 請注意,EXO V2 Cmdlet 將不會加上首碼,因為其已有 EXO 作為首碼,因此請不要使用 EXO 作為首碼。
  • 即使已停用用戶端電腦上的 WinRM 基本驗證,也可以使用 EXO V2 Cmdlet。 請注意,遠端 PowerShell Cmdlet 需要 WinRM 基本驗證,如果將其停用,將無法使用這些 Cmdlet。
  • V2 Cmdlet 的 Identity 參數現在也支援「名稱」和「別名」。 請注意,使用「別名」或「名稱」會減緩 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 的支援。
  • 可在單一 PS 視窗中與其他 PowerShell 模組前後搭配使用。
  • 已新增位置參數支援。
  • 日期時間欄位現在支援用戶端區域設定。
  • 錯誤修正:在 Connect-ExchangeOnline 傳遞空白 PSCredential。
  • 錯誤修正:篩選器包含 $null 的用戶端模組錯誤。
  • EXO V2 模組內部所建立的工作階段現在有名稱 (命名模式:ExchangeOnlineInternalSession_%SomeNumber%)。
  • 錯誤修正:遠端 PowerShell Cmdlet 由於權杖到期和 PSSession 失效之間的時間差異而發生間歇失敗。
  • 主要安全性更新。
  • 錯誤修正及增強功能。