Exchange Server 2007には,.NET Frameworkをベースにした新しいコマンドライン環境「PowerShell」が搭載されている。本連載は全3回の短期集中で,PowerShellを使ってExchange Server 2007を管理する手法を解説する。第2回は,Exchange Server 2007を構築および運用する上で,頻繁に利用することになるいくつかの「コマンドレット」を紹介しよう。



 コマンドレット(Cmdlet)とは,単一の機能を実現するコマンドのことであり,Exchange Server 2007の管理シェルには,Windows PowerShellを含む約350個のコマンドレットが実装されている。まずは,メールボックスの操作に使えるコマンドレットを紹介する。

メールボックスの操作に使えるコマンドレット

New-Mailbox:Active Directoryに新しいユーザーを作成して,メールボックスを有効にする。

Remove-Mailbox:Active Directoryからユーザーを削除する。コマンド4のように,「Permanent」パラメータを「True」に指定すると,メールボックスのオブジェクトも削除される。

コマンド4●メールボックス・オブジェクトを削除する(実際には1行で入力する)
Remove-Mailbox -Id 'jp\user5' -Permanent $TRUE

Enable-Mailbox:既存のユーザー,またはInetOrgPerson(LDAPおよびX.500ディレクトリ・サービスで,組織内の人を表すクラス)のメールボックスを有効にする。

Disable-Mailbox:Active DirectoryからメールボックスのExchange属性を削除する(注1)。

Move-Mailbox:データベース間でメールボックスを移動する。

Get-Mailbox:メールボックスの一覧を取得する(図5)。

Get-MailboxStatistics:メールボックスのサイズやメッセージ数など,統計情報を取得する(図5)。

 「Get-」で始まるコマンドレットの場合,「Format-List」コマンドレットでパイプ処理すると,より詳細な情報を出力できる(図6)。

図5●メールボックスの一覧および統計情報の出力例
[画像のクリックで拡大表示]

図6●Format-Listコマンドレットの使用例
[画像のクリックで拡大表示]

 注1:Disable-Mailboxコマンドレットを使用しても,メールボックス自体は削除されない。コマンド5を実行するか,または「Exchange管理コンソール」を起動して,[切断されたメールボックス]を右クリックすると,データベースに再接続できる(図7図8)。

コマンド5●データベースに再接続する(実際には1行で入力する)
Connect-Mailbox -Database 'CN=Mailbox Database,CN=First Storage Group,CN=InformationStore,CN=E2007J,CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=HP,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=root,DC=com' -Id 'user5'

図7●「Exchange管理コンソール」を使ってメールボックスを再接続する
[画像のクリックで拡大表示]

図8●コマンドレットを使ってメールボックスを再接続する
[画像のクリックで拡大表示]

サーバーの操作に使えるコマンドレット

 続いて,サーバーの操作に利用できるコマンドレットの例を紹介しよう。

Get-MailboxServer:メールボックス・サーバーの一覧を取得する(図9)。

Get-StorageGroup:ストレージ・グループに関する情報を取得する(図9)。

Get-MailboxDatabase:メールボックスのデータベースに関する情報を取得する(図9)。

図9●メールボックス・サーバー,ストレージ・グループ,データベースの一覧を出力した例
[画像のクリックで拡大表示]

キューの操作に使えるコマンドレット

 キューの操作に利用できるコマンドレットを紹介しよう。

Get-Queue:エッジ・トランスポート・サーバーまたはハブ・トランスポート・サーバーから,キューの構成情報を取得する(図10)。

Remove-Message:エッジ・トランスポート・サーバーまたはハブ・トランスポート・サーバー上のキューから,メッセージを削除する。

図10●キューに関する構成情報の出力例
[画像のクリックで拡大表示]

 なお,パラメータに「Filter」を指定すると,削除するメッセージの条件設定ができる。コマンド6は,フィルタリング条件を設定した例である。

コマンド6●「E2007J-HUBCAS」というサーバーから,「jp2000-user1@root.com」というアドレスが含まれるメッセージを削除する(実際には1行で入力する)
Remove-Message -Server E2007J-HUBCAS -Filter {FromAddress -eq "jp2000-user1@root.com"} -withNDR $True

 このように,Exchange管理シェルのコマンドレットを使用すると,これまでGUIベースの管理ツールやプログラムによって処理していた作業を,より簡単に実現できることがお分かりいただけたであろう。それでは,Exchange管理シェルについてさらに詳しく紹介していくことにしよう。