Exchange 管理シェル入門
トピックの最終更新日: 2007-01-31
David Strome 著
Microsoft Exchange Server 2007 の新機能には、Microsoft Windows PowerShell のテクノロジを基盤に開発された強力な管理インターフェイスである Exchange 管理シェルがあります。Exchange 管理シェルを使用すると、Exchange 管理コンソールで実行できるすべてのタスクに加えて、Exchange 管理コンソールでは実行できないタスクも実行できます。その上、Exchange 管理コンソールでタスクを実行する場合に、同じコマンドが Exchange 管理シェルで使用可能になり、要求を処理するために呼び出されます。
図 1 には、動作中の Exchange 管理シェルを示します。
図 1 Exchange 管理シェル
コマンド ラインに慣れていない人にとって一見すると、このシェルは難しく見える場合があります。しかし、優れた機能を備えており、初めてでも簡単に使用できることについて以下に説明します。
安全かつ容易なスクリプト作成 Exchange 管理コンソールは、単に Exchange 管理シェルを使用して操作を実行するだけではありません。ウィザードには、実行されている Exchange 管理シェル コマンドが表示されます。ウィザードによって作成されるコマンドをコピーし、コマンド ラインまたはスクリプトに直接貼り付けることができます。必要に応じてパラメータを変更したら、環境に変更を加える前にその結果を表示できる WhatIf パラメータを使用してスクリプトまたはコマンドをテストします。
パラメータの変更、WhatIf などというと複雑に聞こえますが、心配する必要はありません。『Microsoft Exchange Server 2007』の「Exchange 管理シェルの使用」を参照してください。すぐに操作を実行することができます。
明確性と単純性 管理対象の機能またはコンポーネント、および実行される処理を明確に識別するために、一貫した動詞と名詞の組み合わせを使用しました。もうコマンドレットの動作を推測する必要はありません。Move-Mailbox コマンドレットを見ると、その用途が正確にわかります (これは、メールボックスの移動に使用されます)。
失敗せずに、リソースおよび時間を最大化する Exchange 管理シェルは、現在のスクリプト ソリューションと統合できる堅牢で柔軟性のあるスクリプト プラットフォームを提供します。また、COM や WMI (Windows Management Instrumentation) のようなデータ ソースとのネイティブな通信も可能になります。リソースと時間に対応する体制を整えるのではなく、リソースと時間を有効活用して便利なソリューションを構築してください。
テキスト解析が不要になる Microsoft .NET に基づいて、Exchange 管理シェルのコマンドレットはテキストではなく構造化データを受け付けたり返したりします。この方法により、面倒なテキスト解析を行わずに簡単にデータを受け渡すことができます。CSV ファイルや XML ファイルを、1 行で操作および実行できるオブジェクトに変換することもできます。
基本概念
Exchange 管理シェルを使い始める前に、いくつかの基本概念を理解しておくと役立ちます。
基盤となる Windows PowerShell のテクノロジ Windows PowerShell は, .NET Framework に基づいた強力で非常に柔軟性のある新しいコマンド ライン インターフェイスです。いくつかのシェルの優れた機能を組み合わせているだけではなく、優れた新機能も追加されています。PowerShell は、他のアプリケーションをホストするように設計されています。これは、Microsoft 管理コンソール (MMC) が、コンピュータにインストールされているアプリケーションに付属して提供されているさまざまなスナップインのホストとして機能するのと同じです。Exchange 管理シェルは、初のリリースされる Microsoft PowerShell スナップインです。
コマンドレット コマンドレットとは、"command-let (小さい命令)" という意味を表す Exchange 管理シェル内の機能の最小単位です。コマンドレットは、cmd.exe の Dir コマンドなどのような他のシェル内の組み込みコマンドに似ています。これらの一般的なコマンドと同様に、コマンドレットは Exchange 管理シェル内のコマンド ラインから直接呼び出され、個別のプロセスとしてではなくシェルのコンテキストとして実行できます。他のシェルとは異なり、Exchange 管理シェルのコマンドレットには、わかりやすい動詞と名詞の名前が付けられています。動詞はコマンドレットが実行する処理を表し、名詞はその処理の対象となるコンポーネントまたは機能を表しています。たとえば、New-SystemMessage コマンドレットを使用すると、ハブ トランスポート サーバーの役割がインストールされているコンピュータで新しい配信状態通知 (DSN) またはクォータ メッセージを作成します。
特定のコマンドレットの詳細については、Exchange 2007 ヘルプの「テクニカル リファレンス」にある「Exchange 管理シェル」のセクションを参照してください。
ID パラメータおよび位置パラメータ パラメータとは、操作するオブジェクトおよびオブジェクトの属性を識別したり、またはタスクを実行する方法を制御したりする情報をコマンドレットに提供する要素です。Identity パラメータは、ほとんどの Exchange コマンドレットで使用できます。Identity パラメータを使用すると、Exchange 2007 の特定のオブジェクトを参照する一意の識別子にアクセスできます。これにより、特定の Exchange オブジェクトに対して、最も有用な一意の値を使用して処理を実行できるようになります。
Identity パラメータは、他のパラメータの値の集合です。これらの値は、オブジェクト セットの中で一意であることが保証されています。ユーザーは、Name や DistinguishedName など、他のパラメータの値を指定できます。または、GUID のように値をシステムで生成することもできます。使用する追加パラメータ (該当する場合) およびその作成方法は、参照するオブジェクトにより異なります。
また、Identity パラメータは、位置パラメータとも考えられます。位置パラメータとは、パラメータの名前を指定せずにパラメータの値を指定できるパラメータです。
Parameter Position
属性が整数である場合、そのパラメータは位置パラメータです。この整数は、コマンドレットがパラメータの値を見つけることができるコマンド ライン上の位置を示しています。Identity は最初の位置である位置1
に存在する位置パラメータであるため、パラメータ名なしでこの位置に入力された値はすべて Identity パラメータ値であると見なされます。これはどういう意味でしょうか。これは、コマンド入力時のキー操作を少なくすることができます。たとえば、
Get-Mailbox "Kim Akers"
はGet-Mailbox -Identity "Kim Akers"
と同じ処理を実行します。パイプライン処理 Exchange 管理シェルでのパイプライン処理とは、あるコマンドレットが操作を実行するときに別のコマンドレットの出力を使用する処理を示します。パイプライン処理を使用すると、2 つ以上のコマンドレットの操作を結合できます。つまり、小さいコンポーネントを組み合わせることにより、さらに強力な処理に変換することができます。たとえば、あるコマンドレットを使用してデータを収集します。次に、そのデータを 2 番目のコマンドレットに渡し、データにフィルタを適用してサブセットに分類します。さらに、そのデータを 3 番目のコマンドレットに渡してサブセットのみを処理します。次の例では、Sales データベース内のすべてのメールボックスを、同じサーバー上の Research データベースに移動しています。
Get-MailboxDatabase Sales | Get-Mailbox | Move-Mailbox -TargetDatabase Research
パイプ (|) 記号がどのように使用されているかをご覧ください。まず、Get-MailboxDatabase コマンドレットを使用して Sales メールボックス データベースが取得され、その結果のオブジェクトが Get-Mailbox コマンドレットにパイプ処理されます。次に、Get-Mailbox コマンドレットによって Sales データベース内のすべてのメールボックスが取得されます。そのメールボックスの結果セットが Move-Mailbox コマンドレットにパイプ処理され、このコマンドレットがこれらのメールボックスを Research メールボックス データベースに移動します。このコマンドは、前に示した図 1 に表示されています。
同じ名詞コマンドレット セットのすべての動詞は、別のコマンドからパイプライン処理を通して渡された情報を使用できます。一部の名詞コマンドレット セットでは、パイプラインを通して別の名詞コマンドレット セットにデータを渡すこともできます。"名詞コマンドレット セット" とは何でしょうか。特定の機能を管理するすべての Exchange 管理シェル コマンドレットは、Mailbox や AddressList のように同じ名詞を共有しています。名詞ごとに並べ替えられたすべてのコマンドレット一覧については、「コマンドレット一覧」を参照してください。
Exchange 管理シェルの起動
Windows PowerShell スナップインは、アプリケーションまたは主要コンポーネントを管理するために使用されるコマンドレットの集合です。このスナップインを特定のアプリケーションで読み込んでいない場合は、関連付けられたコマンドレットを使用できません。
つまり、Exchange 管理シェル スナップインを読み込まずに PowerShell を起動し、Get-Mailbox などの Exchange 管理シェル コマンドレットを発行しようとすると、エラーが発生します。理由は、Get-Mailbox コマンドレットが PowerShell コマンドレットのコア セットに存在しないためです。
したがって、まず Exchange 管理シェルを起動してください。[スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft Exchange Server 2007] をポイントし、[Exchange 管理シェル] をクリックします。
始めに必要になる背景情報の詳細については、「Exchange 管理シェルの新しい管理機能」を参照してください。
ヘルプの表示
Microsoft Exchange User Education チームでは、Exchange 2007 向けに信頼性のあるマニュアルを製作しました。これらは Exchange 管理シェルから参照できます。また、Exchange Server 2007 ヘルプ ファイルにも含まれており、Exchange 管理コンソール内から表示したり、オンラインで参照したりできます。
シェルでは、Get-Help コマンドレットが、Exchange 管理シェルの操作を習得する際に非常に役立つリソースであることがわかります。また、Exchange Server 2007 ヘルプ ファイルにある「操作」セクションも確認してください。Exchange 管理シェルおよび Exchange 管理コンソールを使用したほとんどの管理タスクを実行する際に役立つ多くの手順のトピックが含まれています。Exchange Server 2007 ヘルプ ファイルには、Exchange 2007 の [スタート] メニューからアクセスできます。さらに、「Microsoft Exchange Server 2007」からもオンラインでアクセスできます。
シェルのヘルプ
シェル自体では、Get-Help コマンドレットを使用して、さまざまな形式で表示されるコマンドレット固有のヘルプにアクセスします。「Get-Help」とだけ入力すると、一般的なヘルプ情報が表示されます。パラメータを指定した場合には、Get-Help コマンドレットはさらに詳しい情報を表示します。
特定のコマンドレットのヘルプを表示するには、"Get-Help" の後ろに情報を得るコマンドレットを入力します。たとえば、「Get-Help Get-SystemMessage」と入力します。既定では、シェルにはコマンドレットの説明とその構文が表示されます。一部の管理者しか使用しない可能性のあるその他のセクションの情報は表示されません。
表示される情報は、Detailed、Full、および Example のパラメータを使用して制御できます。コマンドの最後にこれらのパラメータを追加します。たとえば、「Get-Help –Full」と入力すると、コマンドレットで使用できるすべてのヘルプ セクションが返されます。コマンドを実行して、頻繁に使用するコマンドレットで表示される情報はどのような内容かを参照してみてください。
あるコマンドレットで特定の 1 つまたは複数のパラメータに関する情報を表示する場合は、Get-Help コマンドレットと Parameters パラメータを使用できます。たとえば、"quota" という単語を含む Set-Mailbox コマンドレットのすべてのパラメータとその説明を表示する場合は、「Get-Help Set-Mailbox –Parameter *quota*」と入力します。
または、特定のサーバーの役割またはコンポーネントの機能を管理するコマンドレットや、機能の特定の範囲内にあるオブジェクトに影響を与えるコマンドレットの一覧を表示することもできます。これには、Get-Help コマンドレットと、Role、Component、および Functionality という 3 つのパラメータを使用します。Get-Help コマンドレットでこれらのパラメータを使用する場合は、これらのパラメータで指定する値をワイルドカード文字 (*) で必ず囲むようにしてください。以下に、各パラメータを指定して Get-Help を呼び出す方法の例を示します。
Get-Help -Role *Mailbox*
Get-Help -Component *Recipient*
Get-Help -Functionality *Server*
Exchange Server 2007 ヘルプ ファイルの「ヘルプについて」のトピックには、使用できるすべての役割、コンポーネント、および機能の値が一覧で示されています。
コマンド出力の形式
既定では、コマンド出力が画面に表示されるとき、Exchange 管理シェルには各オブジェクトの使用可能なプロパティのサブセットのみが表示されます。理由は、各オブジェクトには多くのプロパティが含まれている可能性があるためです。必要に応じてコマンド出力を最適化する必要があります。コマンドの出力を Format-List、Format-Table、および Format-Wide の 3 つの形式のコマンドレットにパイプ処理することによって、これらのプロパティのすべてに容易にアクセスしたり表示したりすることができます。
Format-List および Format-Table は最も頻繁に使用されるため、これらのコマンドレットについて詳しく説明します。
Format-List コマンドレットは、パイプラインから入力を取得し、各オブジェクトの指定されたすべてのプロパティの一覧を縦に並べた列で出力します。位置パラメータである Property パラメータを使用して、表示するプロパティを指定できます。パラメータを指定せずに Format-List コマンドレットを呼び出すと、すべてのプロパティが出力されます。Format-List コマンドレットでは、行は切り捨てられるのではなく、折り返されます。Format-List コマンドレットの最適な使用方法の 1 つは、コマンドレットの既定の出力を変更して、追加情報やより集中した情報を取得できるようにすることです。たとえば、「Get-DistributionGroup | Format-List Name, *OnlyFrom, PrimarySmtpAddress, *Size*
」と入力します。図 2 には、このコマンドの出力を示します。
図 2 Format-List の出力例
Format-Table コマンドレットでは、ラベル ヘッダーとプロパティ データの列が設定された表形式で項目が表示されます。既定では、Get-Mailbox コマンドレットや Get-JournalRule コマンドレットなどの多くのコマンドレットが出力に表形式を使用します。Format-Table コマンドレットのパラメータには、Properties パラメータや GroupBy パラメータがあります。これらのパレメータは、Format-List コマンドレットの場合とまったく同じように動作します。プロパティ情報が長い行になる場合でも、行の最後を切り捨てるのではなく完全に表示するには、Format-Table コマンドレットに Wrap パラメータを使用します。たとえば、「Get-Mailbox -Database Research | Format-Table Name, ProhibitSendQuota, Database -Wrap
」と入力します。図 3 には、このコマンドの出力を示します。
図 3 Format-Table の出力例
また、Format-List および Format-Table のどちらのコマンドレットも、図 2 に示したように、プロパティ名の一部にワイルドカード文字 (*) を指定できます。ワイルドカード文字を使用すると、各プロパティを個々に入力しなくても、複数のプロパティに一致させることができます。たとえば、"Get-Mailbox | Format-List -Property Email*
" と指定すると、"Email
" で始まるすべてのプロパティが返されます。入力を減らすことで、Exchange 2007 を操作する時間を増やすことができます。
詳細情報
Exchange 2007 および Exchange 管理シェルの詳細については、次のリソースを参照してください。
Microsoft Exchange Server 2007: 詳細な製品ドキュメントです。
Exchange 管理シェルの使用 : シェルの操作を開始するために必要な情報です。
Exchange 管理シェル クイック リファレンス : 受信者の管理やトランスポートの構成などの管理機能別にまとめられた、よく使用されるコマンドレットのダウンロード可能な一覧です。
Microsoft Exchange チーム ブログ : Exchange 製品チームによって管理されているブログ。Exchange や業界のニュース、製品の詳細な解説、ヒントおよびテクニックなどを掲載したすばらしい情報源です。
Windows PowerShell でのスクリプティング : スクリプト センター : Windows PowerShell コマンド ラインやスクリプト環境の学習に関心のあるシステム管理者のためのリソースです。
David Strome - Microsoft Exchange Server、テクニカル ライター
-