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 コマンドレットの [適用対象] ボックス。

コマンドレットが 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

言うまでもなく、これらすべてのコマンドレットを処理する際に、こうした小技は大変役に立ちます。

参照

概念

Windows PowerShell を使用して Exchange Online を管理する