The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

Office 365 管理系列:用 PowerShell 管理 Exchange Online

接續上次【Office 365 管理系列:使用 PowerShell 管理微軟線上服務】文章,這次我繼續寫如何透過 PowerShell 管理 Exchange Online 服務,而在本篇文章開始之前,各位千萬務必先看過前次文章,否則環境將無法成功建立。在未來,我也會分享許多 Office 365 與 Exchange Online 的 PowerShell 管理技巧,到時都需要參考本篇文章的設定。

>>> 試用 Office 365 的申請連結 <<<

在開啟 Windows PowerShell 之後,我們必須連入 Exchange Online 管理工作階段,因此必須下達一些指令,完成管理 Exchange Online 所需的環境的設定:

1. 執行以下命令,執行時會跳出一個讓你輸入 Office 365 管理者帳號密碼的視窗:

$LiveCred = Get-Credential

 

2. 接下來輸入這行蠻長的指令,直接 Copy / Paste 就可以了。這段指令主要用途是取得一個新的 PSSession ( PowerShell Session ),也就是他會直接從 https://ps.outlook.com/powershell/ 取得一整套 Exchange Online 所需的 Cmdlets,並存入 $Session 變數中:

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

 

3. 執行下列命令,匯入上一步取到的 PowerShell 工作階段 ( Exchange Online ),好讓你能在目前的 PowerShell 工作階段中執行這些 Cmdlets 命令。你會從畫面上看見匯入 Cmdlets 的過程:

Import-PSSession $Session

匯入成功後,會顯示一個模組名稱,這個模組名稱每次都會不一樣:

如果你想要知道該模組到底匯入了那些 Cmdlets 命令,可以下達以下指令:

Get-Command -Module tmp_epdsnzll.cxb

註 1:請記得上述指令中,模組名稱每次匯入 Cmdlets 都會不一樣喔!
註 2:還有,不同的 Office 365 管理帳號,可能會因為權限不同,而匯入不同數量的 Cmdlets 命令喔!

 

使用範例:取得 Exchange Online 信箱資訊

匯入 Exchange Online 的那些 Cmdlets 命令後,只要輸入 Get-Mailbox 就可以取得所有組織內的信箱。

如果想得知特定信箱的完整資訊,可以輸入以下指令: ( 假設帳號名稱為 test )

Get-Mailbox test | Format-List

 

中斷 Exchange Online 管理工作階段

最後,剛管理作業結束後,請不要直接關閉 Windows PowerShell 視窗,而是利用以下指令「明確移除」目前匯入的管理工作階段:

Remove-PSSession $Session

:如果你沒有 中斷 Exchange Online 管理工作階段 就關閉 Windows PowerShell 視窗,你目前的連線將會在 Exchange Online 的伺服器上維持開啟狀態長達 15 分鐘。重點是,一個帳戶一次最多只能有 3 管理用的工作階段連線,如果連續執行超過 3 次的話,可能會導致有 15 分鐘內無法再次連接。如果不會管理,直接關閉 Windows PowerShell 視窗應該沒關係。

 

>>> 試用 Office 365 的申請連結 <<<

 

相關連結