Office 365のExchangeをリモートPower Shellで管理する


Office 365のExchange OnlineはExchange Server 2013ベースのため、Exchangeの管理はWebの管理者センターおよびExchange管理シェルが利用できます

Exchange管理シェルをOffice 365のExchange Onlineに対して実行する手順について、リモート PowerShell による Exchange への接続のドキュメントの内容を確認したのでメモしておきます

動作はWindows 8.1で試しています

Windows PowerShellは管理者としてを実行します

事前準備

Windows PowerShellで署名付きスクリプトを許可するように実行ポリシーを変更する必要があります
以下のコマンドを実行します

PS C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policie
s のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): Y

実行ポリシーについての参考記事: WindowsでPowerShellスクリプトの実行セキュリティポリシーを変更する

セッションの開始

Get-Credentialコマンドを実行します

PS C:\windows\system32> $UserCredential = Get-Credential

コマンド パイプライン位置 1 のコマンドレット Get-Credential
次のパラメーターに値を指定してください:
Credential

以下のように[Windows PowerShell 資格情報の要求] ダイアログ ボックスが開くのでOffice 365の管理者アカウントでログインします
RemotePowerShellGetCredential

次に以下のコマンドを実行します

PS C:\windows\system32> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

次に以下のコマンドを実行します

PS C:\windows\system32> Import-PSSession $Session
警告: モジュール 'tmp_ktmwejqg.xky'
からインポートされたコマンドの中には、名前に承認されていない動詞を含むものがあ
り、このようなコマンドは検出される可能性が低くなる場合があります。承認されてい
ない動詞を含むコマンドを見つけるには、Verbose パラメーターを使用してもう一度
Import-Module
コマンドを実行してください。承認されている動詞の一覧を表示するには、「Get-Verb
」と入力してください。

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     1.0        tmp_ktmwejqg.xky                    {Add-AvailabilityA...

コマンド実行例

セッションが確立したら、Exchangeコマンドが利用できます。
たとえば以下は、Get-MailboxFolderを実行した例です

PS C:\windows\system32> Get-MailboxFolder -Identity hiroyuki.endoh -Recurse

Name                       FolderPath                 HasSubfolders
----                       ----------                 -------------
インフォメーション スト... {}                         True
RSS フィード               {RSS フィード}             False
ジャーナル                 {ジャーナル}               False
タスク                     {タスク}                   False
メモ                       {メモ}                     False
下書き                     {下書き}                   False
削除済みアイテム           {削除済みアイテム}         True
ああああ                   {削除済みアイテム, ああ... False
桑原                       {削除済みアイテム, 桑原}   False
受信トレイ                 {受信トレイ}               False
送信トレイ                 {送信トレイ}               False
送信済みアイテム           {送信済みアイテム}         False
同期の失敗                 {同期の失敗}               True
サーバーの失敗             {同期の失敗, サーバーの... False
ローカルの失敗             {同期の失敗, ローカルの... False
競合                       {同期の失敗, 競合}         False
迷惑メール                 {迷惑メール}               False
予定表                     {予定表}                   True
遠藤公開                   {予定表, 遠藤公開}         False
連絡先                     {連絡先}                   True

セッションの終了

操作が終わったら以下のコマンドでセッションを終了します

PS C:\windows\system32> Remove-PSSession $Session