關於 Exchange Online PowerShell 模組

Exchange Online PowerShell 模組會使用新式驗證,並搭配使用或不使用多重要素驗證 (MFA) ,以聯機到 Microsoft 365 中所有 Exchange 相關的 PowerShell 環境:Exchange Online PowerShell、安全性 & 合規性 PowerShell 和獨立 Exchange Online Protection (PowerShell) EOP。

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

本文的其餘部分將說明模組的運作方式、如何安裝和維護模組,以及模組中提供的優化 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 都受到以 EXO V3 模組版本為基礎的 REST API 支援:

  • Exchange Online PowerShell:v3.0.0 或更新版本。
  • 安全性 & 合規性 PowerShell:v3.2.0 或更新版本。

在 Exchange Online PowerShell 和安全性 & 合規性 PowerShell 中,預設會使用 REST API 連線,而且需要 PowerShellGet 和 PackageManagement 模組。 如需詳細資訊,請參閱 Windows 中 REST 型連線的 PowerShellGet

REST API Cmdlet 比其歷史對應專案具有下列優點:

  • 更安全:REST API Cmdlet 具有新式驗證的內建支援,且不依賴遠端 PowerShell 會話,因此用戶端電腦上的 PowerShell 不需要 WinRM 中的基本身份驗證
  • 更可靠:REST API Cmdlet 會使用內建重試來處理暫時性失敗,因此會將失敗或延遲降到最低。 例如:
    • 因網路延遲而失敗。
    • 因為大型查詢需要很長的時間才能完成,所以會延遲。
  • 更好的效能:連線可避免設定 PowerShell Runspace。

下表說明 REST API Cmdlet 的優點:

  遠端 PowerShell Cmdlet Get-EXO* Cmdlet REST API Cmdlet
安全性 最不安全 高度安全 高度安全
效能 低效能 高效能 中等效能
可靠性 最不可靠 高度可靠 高度可靠
功能 所有可用的參數和輸出屬性 可用的參數和輸出屬性有限 所有可用的參數和輸出屬性

REST API Cmdlet 具有相同的 Cmdlet 名稱,且運作方式就像其遠端 PowerShell 對等項目一樣,因此您不需要更新任何腳本。

提示

Invoke-Command Cmdlet 無法在 REST API 連線中運作。 如需替代方案,請參閱 REST API 連線中 Invoke-Command 案例的因應措施

Exchange Online PowerShell 和安全性 & 合規性 PowerShell 中已淘汰遠端 PowerShell) 連線 (基本身份驗證。 如需詳細資訊,請 參閱這裡這裡

已使用實驗性 UseCustomRouting 切換來更新一些 Exchange Online PowerShell 中的 REST API Cmdlet。 此切換會將命令直接路由傳送至必要的信箱伺服器,並且可能會改善整體效能。

  • 當您使用 UseCustomRouting 切換時,針對信箱的身分識別您只需要使用下列值:

    • 使用者主要名稱 (UPN)
    • 電子郵件地址
    • 信箱 GUID
  • UseCustomRouting 切換僅適用於下列 Exchange Online PowerShell 中的 REST API 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

    實驗性地使用此 UseCustomRouting 參數,並報告您遇到的任何問題。

  • 使用 Get-ConnectionInformation Cmdlet 來取得與 Exchange Online PowerShell 和安全性 & 合規性 PowerShell 的 REST 型連線相關信息。 此 Cmdlet 是必要的,因為 Windows PowerShell 中的 Get-PSSession Cmdlet 不會傳回 REST 連線的資訊。

    下表說明您可以使用 Get-ConnectionInformation 的案例:

    案例 預期的輸出
    Connect-ExchangeOnlineConnect-IPPSSession 命令之前執行。 會傳回 nothing。
    在以 REST API 模式連線的 Connect-ExchangeOnlineConnect-IPPSSession 命令之後執行。 傳回一個連接信息物件。
    在多個 REST 型 Connect-ExchangeOnlineConnect-IPPSSession 命令之後執行。 傳回連接信息物件的集合。
  • Connect-ExchangeOnline Cmdlet 上使用 SkipLoadingFormatData 參數,以避免載入格式數據,並更快速地執行 Connect-ExchangeOnline 命令。

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

    $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 回報問題時,請確定您的電子郵件訊息中包含記錄檔案。 若要產生記錄檔,請將 [儲存記錄檔的路徑] 取代 <為您想要的輸出檔案> 夾,然後執行下列命令:

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

注意事項

在單一 PowerShell 會話或腳本中頻繁使用 Connect-ExchangeOnlineDisconnect-ExchangeOnline Cmdlet 可能會導致記憶體流失。 避免此問題的最佳方式,是使用 Connect-ExchangeOnline Cmdlet 上的 CommandName 參數來限制工作階段中所使用的 Cmdlet。

Exchange Online PowerShell 模組中的 Cmdlet

所有模組版本都包含九個專屬的 Get-EXO* Cmdlet,適用於 Exchange Online PowerShell,已針對大量數據擷取案例中的速度優化, (數千個物件) 。 下表列出只在模組中使用的改良 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 或更新版本。

下表列出模組中發生的其他 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 之後,請執行下列步驟:

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

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

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

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

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

Linux

下列 Linux 發行版正式支援此模組:

  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS

如果您在其他 Linux 發行版中使用模組時遇到問題,請 回報任何問題

如需在 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 模組

注意事項

如果您從 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 型連線不需要 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 連線的 PowerShellGet

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

注意事項

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

如果您在嘗試建立 REST 型連線時未安裝 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 模組。

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

  • 您收到下列錯誤:

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

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

    Register-PSRepository -Default
    

卸載 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屬性參數值。

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

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

不論是哪一種方式,Cmdlet 輸出都包含較少的屬性,而且傳回這些結果所需的時間會更快。

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

Get-EXOMailbox -ResultSize 10

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

注意事項

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

如需模組中篩選的詳細資訊,請參閱 Exchange Online PowerShell 模組中的篩選。

版本資訊

除非另有說明,否則 Exchange Online PowerShell 模組的目前版本包含舊版的所有功能。

目前版本

3.4.0 版

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

先前的版本

3.3.0 版

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

3.2.0 版

  • 新的 Cmdlet:
    • Get-DefaultTenantBriefingConfigSet-DefaultTenantBriefingConfig
    • Get-DefaultTenantMyAnalyticsFeatureConfigSet-DefaultTenantMyAnalyticsFeatureConfig
    • Get-VivaModuleFeatureGet-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 中的 Bug 修正。

3.1.0 版

  • Connect-ExchangeOnline 中提供的 AccessToken 參數。
  • 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 版或更新版本) 。
    • 適用於 REST 連線的 Connect-ExchangeOnline Cmdlet 上的 SkipLoadingFormatData 參數, (2.0.6-Preview8 版或更新版本) 。
  • 只要您也在 命令中使用 AzureADAuthorizationEndpointUri 參數,DelegatedOrganization 參數就可以在 Connect-IPPSSession Cmdlet 中運作。
  • 在特定案例中用來提示確認的特定 Cmdlet 已不再執行此動作。 根據預設,Cmdlet 會執行到完成。
  • 從失敗的 Cmdlet 執行傳回的錯誤格式已稍微修改。 例外狀況現在包含其他資料 (例如,例外狀況類型) ,而 FullyQualifiedErrorId 不包含 FailureCategory。 錯誤的格式可能會進一步修改。

2.0.5 版

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

    注意事項

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

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

版本 2.0.4

  • Windows、Linux 和 Apple macOS 已正式支援 PowerShell 7,如本文中 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 通話的延遲。 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-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 版

  • 在工作階段建立期間支援前置詞:
    • 您一次只能建立 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 因驗證問題而導致下列錯誤的錯誤:

    無法叫用管線,因為 Runspace 不是處於開啟狀態。 目前的執行空間狀態為 [關閉]。

0.3527.4 版

  • 已更新 Get-Help 內容。
  • 已修正 Get-Help 中的問題:線上參數重新導向到含有錯誤碼 400 的不存在頁面。

0.3527.3 版

  • 已新增使用委派流程來為不同租用戶管理 Exchange 的支援。
  • 可在單一 PS 視窗中與其他 PowerShell 模組前後搭配使用。
  • 已新增位置參數支援。
  • 日期時間欄位現在支援用戶端區域設定。
  • 錯誤修正:在 Connect-ExchangeOnline 傳遞空白 PSCredential。
  • 錯誤修正:篩選器包含 $null 的用戶端模組錯誤。
  • EXO V2 模組內部所建立的工作階段現在有名稱 (命名模式:ExchangeOnlineInternalSession_%SomeNumber%)。
  • 錯誤修正:遠端 PowerShell Cmdlet 由於權杖到期和 PSSession 失效之間的時間差異而發生間歇失敗。
  • 主要安全性更新。
  • 錯誤修正及增強功能。