Exchange Online 管理者が使用可能なコマンドレットを判別する
**概要:**Windows PowerShell を使用して Office 365 を管理する際に Windows PowerShell コマンドレット、スクリプト、およびバッチ プロセスを使用します。
Exchange Online 管理者が利用できるすべてのコマンドレットのヘルプ トピックは、2 つの異なる場所にあります。まず、Exchange Online だけで使用できるコマンドレットは 40 ほどあります。このコマンドレットのセットは、社内バージョンの Exchange Server では動作しません。これらのコマンドレットについては、「Exchange Online コマンドレット」で説明されています。(記事「リモート PowerShell を使用して Exchange に接続する」も参照できます。)
ただし、Exchange Online 管理者が利用できるコマンドレットの大多数は、社内バージョンの Exchange Server でも使用できます。これらすべてのコマンドレットは、「Exchange 2013 コマンドレット」にあります。これらのコマンドレットのうち、Exchange Online で使用できるものと、使用できないものをどのように判別できるでしょうか。1 つの方法は、指定したコマンドレットのドキュメントを参照することです。
コマンドレットが Exchange Online に適用されるとドキュメントに記載されている場合、そのコマンドレットは Exchange Online に適用されます。
あるいは、Windows PowerShell を使用して Exchange Online に接続した後で、利用できるコマンドレットの一覧を容易に検索することもできます。これを行うには、まずコマンド Get-Module を実行して、Windows PowerShell のインスタンスに現在ロードされているすべてのモジュールの一覧を返します。これにより、次のような情報が返されます。
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 1.0 MSOnline {Add-MsolForeignGroupToRol...
Script 1.0 tmp_lqy0pg2k.aij {Add-AvailabilityAddressSpace...
この例では、モジュール tmp_lqy0qypg2k.aij は、Exchange Online モジュールです。Exchange Online に接続するたびに、モジュール名が変わることに注意してください。これは、モジュールがコンピュータにローカルでインストールされているわけではなく、Exchange Online に接続するたびに動的に生成されているためです。幸いなことに、エクスポートされたコマンドの一覧を参照するだけで、これらの一時モジュールのうちどれが Exchange Online 用であるか判別できます。少なくともこの時点では、Exchange Online 用に一覧表示される最初のコマンドレットは Add-AvailabilityAddressSpace になります。
モジュール名がわかったら、次のようなコマンドを使用して、すべての Exchange Online コマンドレットの一覧を返すことができます。
Get-Command -Module "tmp_lqy0pg2k.aij"
注意
どうすれば tmp_lqy0pg2k.aij のようなモジュール名を覚えられるでしょうか。幸いなことに、覚える必要はありません。利用可能なモジュールの一覧を参照する場合、Exchange Online モジュールだけが t という文字で始まります。ですから、それを次のように入力してから TAB キーを押します。
Get-Command –Module t
試してみて、何が起こるかご覧ください。
ところで、492 個もの Exchange Online コマンドレットが zip されて長大なスクロール一覧になっているため、気が遠くなってしまうかもしれません。もう少しゆっくり取り組みたい場合や、一度に 1 画面分のコマンドレットを参照したい場合には、以下のコマンドを使用します。
Get-Command -Module "tmp_lqy0pg2k.aij" | More
このコマンドは、1 画面分のコマンドレットを表示し、キーボードのキーが押されるまで一時停止します。キーを押すと、2 番目の画面分が表示されます。コマンドレット名を画面上で何度もページごとに表示するのが大変だと感じたら、Ctrl + C キーを押します。
特定のコマンドレットのサブセット (たとえば、何かを無効にするすべてのコマンドレット) に関心がある場合は、ワイルドカード文字 (*) を使用して、コマンドレット名に基づいてコマンドレットをフィルター処理できます。たとえば、次のコマンドは、Disable という単語で始まる Exchange Online コマンドレットのみを返します。
Get-Command -Name "Disable*" -Module "tmp_lqy0pg2k.aij"
次のような結果が返されるはずです。
CommandType Name ModuleName
----------- ---- ----------
Function Disable-App tmp_lqy0pg2k.aij
Function Disable-HostedContentFilterRule tmp_lqy0pg2k.aij
Function Disable-InboxRule tmp_lqy0pg2k.aij
Function Disable-JournalRule tmp_lqy0pg2k.aij
Function Disable-Mailbox tmp_lqy0pg2k.aij
Function Disable-MailPublicFolder tmp_lqy0pg2k.aij
Function Disable-MalwareFilterRule tmp_lqy0pg2k.aij
Function Disable-OutlookProtectionRule tmp_lqy0pg2k.aij
Function Disable-TransportRule tmp_lqy0pg2k.aij
Function Disable-UMAutoAttendant tmp_lqy0pg2k.aij
Function Disable-UMCallAnsweringRule tmp_lqy0pg2k.aij
Function Disable-UMIPGateway tmp_lqy0pg2k.aij
Function Disable-UMMailbox tmp_lqy0pg2k.aij
さらに、次のコマンドは、コマンドレット名に Junk という単語が含まれているコマンドレットのみを返します。
Get-Command -Name "*Junk*" -Module "tmp_lqy0pg2k.aij"
次のようになります。
CommandType Name ModuleName
----------- ---- ----------
Function Get-MailboxJunkEmailConfiguration tmp_lqy0pg2k.aij
Function Set-MailboxJunkEmailConfiguration tmp_lqy0pg2k.aij
言うまでもなく、これらすべてのコマンドレットを処理する際に、こうした小技は大変役に立ちます。