PowerShellとは、マイクロソフトが開発したコマンドベースのシェル(OSを操作するためのソフトウェア)です。PowerShellは特定のコマンドを入力することで直接パソコンを操作したり、様々な管理設定が行えます。
これに類似したソフトウェアに「コマンドプロンプト」があります。このソフトウェアにはWindowsパソコンのスタートメニューからアクセスでき、真っ黒な画面にコマンドを打ち込むことで様々な機能が利用できます。パソコンに少し詳しい方なら、このコマンドプロンプトで何らかの設定を行ったことがあるでしょう。
PowerShellはいわばコマンドプロンプトの進化版で、1,000以上のコマンドによってWindowsが持つ大半の機能を操作できます。
本稿で紹介するのは、このPowerShellを使用してExchange Online並びにOffice 365を管理する方法です。実はPowerShellはWindowsパソコンに限った機能ではなく、Microsoftが提供する各種クラウドサービスでも利用できます。
その利用方法について具体的にご紹介します。
Exchange Online PowerShellを使う
それではさっそく使用方法について説明します。Exchange Online PowerShellを使用するにはシステム要件があるため、次の要件と現在の環境がマッチするかを確認しましょう。
≪Exchange Online PowerShellが使用できるWindows≫- Windows 10
- Windows 8.1
- Windows Server 2016
- Windows Server 2012 または Windows Server 2012 R2
- Windows 7 Service Pack 1 (SP1)※
- Windows Server 2008 R2 SP1※
※Microsoft .NET Framework 4.5以降をインストールしてから、Windows管理フレームワーク3.0またはWindows管理フレームワーク4.0をインストールする必要があります。
上記のシステム要件の確認が取れたら、ローカルコンピュータからExchange Onlineに接続するために次のコマンドを実行しましょう。ちなみにPowerShellには、Windows 10ならアプリ一覧からアクセスできます。
≪Set-ExecutionPolicy RemoteSigned≫PowerShellを「管理者として実行」で起動してこのコマンドを入力します。この設定は一度だけ設定すれば接続のたびに入力する必要はありません。
≪$UserCredential = Get-Credential≫ローカルコンピュータからPowerShellをExchange Onlineに接続するための入力します。表示された「Windows PowerShell 資格情報の要求」のダイアログボックスに、職場のアカウントとパスワードを入力して「OK」をクリックしましょう。
≪$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection≫
≪Import-PSSession $Session≫
上記2つのコマンドを一つずつ入力し実行します。すべてのコマンドの実行が完了したら、正常に動作するか確認しましょう。
Exchange OnlineコマンドがローカルコンピュータのPowerShellセッションにインポートされ、その様子が進捗バーによって確認できます。何もエラーが表示されなければ「Get-Mailbox」など簡単なExchange Onlineコマンドを実行して結果を確認します。
もしもエラーが発生した場合は次の原因によってExchange Onlineに接続できなかった可能性があります。
- パスワードに入力ミスがある。もう一度最初から同じコマンドを実行し、「Windows PowerShell 資格情報の要求」のダイアログボックスで慎重にユーザーIDとパスワードを入力する。
- Dos攻撃を防ぐため、Exchange Onlineに対して開かれるリモートPowerShellは3つのみ。すでに3つのリモートPowerShellが開かれている可能性がある。
- Exchange Onlineへ接続するアカウントはリモートPowerShellが有効になっている必要がある。
- ローカルコンピューターとOffice 365の間にTCPポート80トラフィックを開く必要がある。厳格なセキュリティポリシーを持つ企業の場合、TCPポート80が閉じている可能性がある。
PowerShellを使用するメリット
Exchange Onlineの各種設定や機能は、もちろんサービスにアクセスすることですべて使用できます。にもかかわらずPowerShellを使ってExchange Onlineを操作するメリットとは何でしょうか?
操作の手間を大幅に省ける
CUI(キャラクタ・ユーザー・インターフェース)であるPowerShellを使用せずとも、今ではGUI(グラフィカル・ユーザー・インターフェース)でアプリケーションを操作するのが一般的です。ちなみにGUIとはアイコンをクリックすることで操作できる機能のことです。
GUIが浸透しているにもかかわらずPowerShellが存在する理由は、コンピュータ操作の手間を大幅に省けるためにあります。
たとえば、フォルダ内に存在するすべてのファイルの名前を書き起こしたいとき、GUIの場合は一つひとつのファイル名をコピーして都度貼り付ける必要があります。一方PowerShellの場合、ファイル一覧を呼び出すとすでにファイル名のみで一覧が表示されるため、コピー&ペーストで瞬時にしてすべてのファイル名を書き起こせます。
このようにPowerShellを使用することで操作の手間を大幅に省けるため、管理者はPowerShellを使用することで業務効率化になります。
ポリシー適用が瞬時に行える
Exchange Onlineにてセキュリティ設定を行う場合、管理者センターにアクセスしてユーザー一人ひとりにポリシーを適用する必要があります。これが意外と手間であり、敬遠してしまう管理者も多いでしょう。
一方PowerShellを使用すると複数のコマンドを実行するだけで、ユーザー全体にセキュリティポリシーを適用できます。もちろん、特定のユーザーにのみ適用することも可能です。
PowerShellでExchange OnlineおよびOffice 365を管理しよう
Exchange OnlineやOffice 365を管理するためのPowerShellコマンドは無数に存在します。ただし頻繁に使用するコマンドは数十種類なので、それらのコマンドさえメモしたり暗記すれば管理効率が劇的に改善されるでしょう。まだPowerShellを試したことが無いという方は、この機会にぜひ触ってみてください。