將 Office 365 Exchange Online 與 PowerShell 連線:逐步指南

透過網頁瀏覽器中的圖形使用者介面 (GUI) 來管理 Microsoft 365 及其所有應用程式固然方便,但這種便利性僅限於某種程度。IT 專業人員最常使用的兩個介面是 Exchange 管理中心和 Office 365 管理中心。然而,當您需要管理整個組織內數百個 Microsoft 365 帳戶時,命令列介面 (CLI) 可能是更有效的解決方案。 您可以藉此執行管理中心中無法提供的 Exchange Online 指令。

身為管理員,您可以透過 Microsoft PowerShell 中的命令列介面來管理 Microsoft Exchange Server。問題在於,通常可在本地端 Exchange Server 環境中使用的 cmdlet,並不適用於基於雲端的 Exchange Online。 您需要安裝 Exchange Online PowerShell 模組,才能在 Office 365 中啟用 PowerShell cmdlet。本文將說明將 Exchange Online 與 PowerShell 連接的各種方法。在 Exchange Online 中使用 cmdlet 有助於簡化管理流程,從而節省時間和精力。

Microsoft 365 資料備份

Microsoft 365 資料備份

使用 NAKIVO 解決方案備份 Exchange Online、Teams、OneDrive 及 SharePoint Online 中的 Microsoft 365 資料,確保工作流程不中斷且零停機時間。

準備您的環境

系統需求

若要將 Exchange Online 與 PowerShell 連線,請確保您的系統符合以下需求:

  • Windows 7 SP1 或更新版本的 Windows 桌面作業系統,以及 Windows Server 2008 R2 SP1 或更新版本的 Windows 伺服器作業系統。除了 Windows Management Framework 3.0、4.0 或 5.1 之外,還必須安裝 .NET Framework 4.5 或更新版本。
  • 網際網路連線:開啟 TCP 80 號埠,以便在您的本地電腦與目標主機之間建立連線。
  • 目前使用 Exchange Online PowerShell 的使用者已啟用此存取權限。管理員帳戶預設即具備此存取權限。

    您可以使用以下 cmdlet 為特定帳戶啟用連線至 Exchange Online PowerShell 的權限:

    Set-User -Identity user@domain.com -RemotePowerShellEnabled $true

安裝 Exchange Online PowerShell 模組

安裝 Exchange Online PowerShell 模組是必要的,因為它包含 cmdlet,因此能夠讓您管理租戶的 Exchange 環境。在本指南中,我們將安裝 Exchange Online V2 PowerShell 模組。

不過,您可能需要先確認 Exchange Online 模組是否已安裝在客戶端電腦上。要執行此操作,請執行以下 cmdlet:

Get-Module -ListAvailable -Name ExchangeOnlineManagement

若未找到該模組,請繼續進行安裝。您只需執行一項 PowerShell 指令,即可安裝 Exchange Online PowerShell 模組。要開始此程序,請以系統管理員身分執行 Windows PowerShell,然後執行以下 cmdlet:

#Install Exchange Online Management Module

Install-Module -Name ExchangeOnlineManagement -Force

如果系統要求您確認是否要從未經信任的儲存庫進行安裝,請按下 Y 請繼續。

若您的系統中未安裝 Exchange Online PowerShell 模組,將會顯示以下錯誤訊息:

Connect-ExchangeOnline:系統無法識別"Connect-ExchangeOnline"為 cmdlet、函式、腳本檔案或可執行程式的名稱。

您可以使用此 cmdlet 來更新模組:

Update-Module ExchangeOnlineManagement

設定連線

在本指南中,我們將介紹連接 PowerShell 與 Exchange Online 的兩種主要方法:手動設定與自動設定。

手動設定

為了更清楚地了解設定流程,我們先從手動方法開始:

  1. 開啟 Windows PowerShell,然後選擇以下其中一種方式繼續:
    • 點擊 Start, 輸入 cmd,然後右鍵點擊 Command Prompt 項目。在快顯功能表中,選取 Run as Administrator.
    • 或者前往 Start > Windows PowerShell. 右鍵點擊 Windows PowerShell,然後選擇 Run as Administrator 在右鍵選單中。以管理員模式執行 PowerShell 可讓您無限制地執行 cmdlet。
  2. 若要正確使用 PowerShell,應啟用腳本功能。若要執行腳本,您需要將原則設定為 RemoteSigned. 執行此指令以設定執行原則:

    Set-ExecutionPolicy RemoteSigned

    建議您在開始設定用於管理 Exchange Online 和 Microsoft 365 的 PowerShell 時,立即執行此 cmdlet。否則,您後續嘗試執行該 Import-PSSession 此指令會導致以下錯誤:

    Import-PSSession:由於此系統已停用執行指令碼的功能,因此無法載入檔案。請提供一份有效的憑證來簽署這些檔案.

  3. 如果系統要求確認,請按下 Y 以確認政策變更。此外,您也可以使用 無限制 使用此 cmdlet 設定政策:

    Set-ExecutionPolicy Unrestricted

    預設情況下,執行原則模式為 受限.

  4. 您需要建立一個憑證物件,並在彈出視窗中輸入您的管理員登入名稱和密碼,以啟用 Exchange Online 存取權限。獲取存取權限的使用者必須具備 Microsoft 365 全球管理員權限。

    $Credential=Get-Credential

  5. 系統隨後會將提供的憑證儲存為 $Credential 要在以下指令中使用的變數。
  6. 請使用 新-PSSession 用於建立遠端 PowerShell 工作階段的 cmdlet。請執行以下指令:

    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Credential -Authentication Basic -AllowRedirection

    註: 在此 cmdlet 中,我們設定雲端 Exchange Online 伺服器的目標 URL,該伺服器必須能接受此請求。執行此命令後,Microsoft 365 雲端伺服器將授予您存取權限,讓您能連線至與您當前 Microsoft 365 帳戶相關聯的 Exchange Online 虛擬伺服器。

  7. 您需要將 Exchange Online PowerShell 指令碼匯入至當前工作階段。請使用以下指令:

    Import-PSSession $Session

    在匯入過程中,您可以看到進度條。

  8. 指令成功執行後,會顯示以下訊息:

    Command successfully completed

    註: 由於 Microsoft 365 帳戶啟用了 MFA(多重因素驗證),我們先前提到的標準 cmdlet 將無法運作。若要在啟用 MFA 的情況下將 PowerShell 連線至 Exchange Online,請執行以下指令:

    Connect-EXOPSSession -UserPrincipalName YOUR_UPN

    在此 cmdlet 中,YOUR_UPN 代表使用者主名 (UPN),即您所使用的 Microsoft 365 帳戶名稱。您可能需要在此安裝另一個模組:Microsoft 的 Exchange Online 遠端 PowerShell 模組。

    請注意,由於使用此模組時,會話將在一小時後結束,因此執行耗時的腳本可能會造成不便。此外,請考慮使用 受信任的 IP 位址 (也就是貴組織的 IP 位址)。這有助於您在從貴組織的網路連線 Exchange Online PowerShell 時,繞過多因素驗證 (MFA)。

  9. 建立與 Microsoft 365 和 Exchange Online 的連線後,您即可開始管理您的 Office 365 雲端環境。您可以執行一個 cmdlet 來檢查連線是否正常運作。例如,請嘗試使用以下指令檢視可用的信箱清單:

    Get-Mailbox

    以下 cmdlet 可提供可用之 Exchange Online PowerShell 指令清單:

    Get-Command -Module tmp*

  10. 完成在此處的 Exchange 相關工作後,請結束工作階段。基於安全性與效能優化的考量,建議採取此做法。以下是對應的 cmdlet:

    Remove-PSSession $Session

    註: 執行此指令後,您將不會看到任何訊息。若要確認工作階段是否已成功移除,您可以使用相同的 Get-MailBox 指令。如果工作階段已斷開連接,您將會看到無法執行 Exchange Online cmdlet 的錯誤訊息。

您同時開啟的連線數目受到限制。您可以同時執行三個連線,若未中斷其中任何一個連線,則必須等待該連線過期後,才能從另一個 PowerShell 主控台使用新連線連線至 Exchange Online PowerShell。

自動設定

除了手動操作外,您也可以利用 PowerShell 的自動化功能來連接 PowerShell 與 Exchange Online。自動化可減少所需的指令數量,從而加快設定流程。

請依照以下步驟操作:

  1. 下載腳本。在本範例中,腳本檔案名為 ConnectExchangeOnlinePowerShell.ps1
  2. 請在下載後的目錄中找到該腳本檔案。該腳本位於 C:temp_win.
  3. 在執行腳本之前,請將腳本執行原則設定為 RemoteSigned 使用此 cmdlet:

    Set-ExecutionPolicy RemoteSigned

    這樣一來,您就能避免出現以下錯誤:

    檔案 C:temp_winConnectExchangeOnlinePowerShell.ps1 未經數位簽章。您無法在當前系統上執行此腳本.

    繞過 此外,套用執行政策也能幫助您避免此問題。以下是所需的 cmdlet:

    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

  4. 請輸入以下指令以確認執行政策中的變更: Y.
  5. 現在您可以繼續執行此指令碼。如果您的 Microsoft 365 帳戶尚未啟用多重驗證 (MFA),此指令碼將不需要額外的參數:

    .ConnectExchangeOnlinePowerShell.ps1

    若您的 Microsoft 365 環境已啟用 MFA,請使用以下指令:

    .ConnectExchangeOnlinePowerShell.ps1 -MFA

  6. 在成功建立 Exchange Online 與 PowerShell 之間的連線後,您即可開始使用 cmdlet 來管理使用者帳戶、信箱及其他項目,以及工作流程。例如,您可以透過此 cmdlet 取得可用使用者信箱的清單:

    Get-Mailbox

    此外,您還可利用此腳本排程並進一步自動化工作流程。例如,無需提供憑證即可連線至 Exchange Online。此腳本允許您將使用者名稱和密碼設為執行選項:

    ./ConnectExchangeOnlinePowerShell.ps1 -UserName admin@your_domain.com -Password your_password

    請注意,若發生資料外洩事件,在腳本的命令列中以明文形式提供密碼可能會構成安全隱患。

  7. "每次最多只能執行三個工作階段"的限制仍然存在,因此您可能需要在完成 Exchange Online PowerShell 的操作後結束當前工作階段。用於結束工作階段的 cmdlet 如下:

    ./ConnectExchangeOnlinePowerShell.ps1 -Disconnect

如何在 macOS 上透過 PowerShell 管理 Exchange Online

在 macOS 上安裝 PowerShell 有幾種方法。最方便且直接的方式是直接從 微軟網站. PowerShell 7.2 版本或更新版本支援 Apple Silicon 處理器。

請注意,您需要一台至少運行 macOS 11 Big Sur 的 Mac 電腦。在該裝置上安裝 PowerShell 套件後,請使用我們上述說明的手動或自動配置方法,將您的 PowerShell 連接到 Exchange Online。

在 Exchange Online 中使用 PowerShell

透過 PowerShell 指令碼,您可以優化在 Exchange Online 管理上所花費的時間與精力。

部分基本指令碼如下所示:

  • New-Mailbox – 建立新的使用者信箱
  • Set-Mailbox – 調整現有信箱的設定
  • Get-Mailbox to 顯示整個環境中可用信箱的相關資訊
  • Remove-Mailbox to 從 Exchange Online 刪除信箱

若要查看可用的 PowerShell cmdlet 清單,請使用以下指令:

Get-command -Module ExchangeOnlineManagement

最後,請參閱這個腳本範例。此腳本可讓您從 Exchange Online 取得所有信箱:

#Import PowerShell module for Exchange Online
Import-Module ExchangeOnlineManagement

#Connect to Exchange Online
Connect-ExchangeOnline -Credential (Get-Credential) -ShowBanner:$False

#Get All Mailboxes
Get-EXOMailbox | Format-table UserPrincipalName,DisplayName

#Disconnect Exchange Online
Disconnect-ExchangeOnline -Confirm:$False

結論

將 Exchange Online 與 PowerShell 整合,可讓您快速且方便地管理 Exchange 信箱。此外,您還能透過腳本同時對多個帳戶執行自動化操作、變更與調整,從而提升營運效率。

鑑於 Microsoft 並未針對 Exchange Online、Microsoft Teams、OneDrive 及 SharePoint Online 提供原生備份工具,請務必使用專用的備份解決方案,以防止雲端資料遺失。 NAKIVO Backup & Replication 這是一款通用的資料保護解決方案,可讓您將 Microsoft 365 資料的備份傳送至不同的儲存目標,包括公有雲。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面體驗本解決方案的所有資料保護特點。15 天免費試用。無功能或容量限制。無需提供信用卡資訊。

People also read