PowerShellスクリプトを作成

前述の手順(7)のウィザード終了画面から、シェルスクリプトを作成します。

(8)ウィザード終了画面でCtrl + Cを押し、メモ帳などのテキストエディタに貼り付けます。

テキストエディタにシェルスクリプトを貼付け

(9)余分なメッセージ部分を削除します。

余分なメッセージ部分を削除

Active directoryユーザーのメールボックスを作成するには、PowerShellコマンドレットで「Enable-Mailbox -Identity 組織単位とユーザー名 -Alias エイリアス」と実行すればよいことがわかります。

その都度ユーザー名とエイリアスに修正して実行することもできますが、少し汎用的にCreateMailBoxというスクリプトプログラムを作成しましょう。

CreateMailBox 組織単位とユーザー名 エイリアス

と実行してメールボックスを作成できるようにします。ドメイン名は自明(この例の場合はykp.local)なので、「組織単位とユーザー名」にはドメイン名を除いた部分だけを記述すればいいことにします。

(10)次のように修正します。

$name = 'ykp.local/' + $args[0]
Enable-Mailbox -Identity $name -Alias $args[1]

修正したスクリプト

$args[0]、$args[1]は、このスクリプトをコマンドラインで実行するときの1番目のパラメータ、2番目のパラメータに相当します。バッチコマンドで言う%1、%2に相当します。

PowerShellでは変数名に$をつけます。1行目では、'ykp.local/' + $args[0]で、コマンドラインの1つめのパラメータにドメイン名を追加して、変数$nameに代入します。2つめのパラメータ$args[1]はそのまま使いますので、加工不要です。

2行目でEnable-Mailboxコマンドレットを実行します。

(11)このプログラムをシェルスクリプトとして実行できるように保存します。PowerShellのスクリプトは拡張子がps1となります。CreateMailBox.ps1というファイル名で保存して下さい。

CreateMailBox.ps1というファイル名で保存

(12)保存したシェルスクリプトを実行します。

PowerShellでは不正プログラム実行防止のため、カレントディレクトリのシェルスクリプトを検索しません。カレントディレクトリに保存したシェルスクリプトを実行するときは「.\」をファイル名に前置して下さい。

保存したシェルスクリプトを実行

Exchange管理コンソールで確認すると、ちゃんとメールボックスが作られています。

Exchange管理コンソールからちゃんとメールボックスが作られていることが確認できる

なお、PowerShellプロンプトではなく、コマンドプロンプトやタスクスケジューラからPowerShellスクリプトを実行するときは、通常「powershell スクリプトファイル名」と実行します。ExchangeServer管理のスクリプトを実行するときは、PowerShellにExchange Serverモジュールを組み込んでExchange Serverに接続しなければならないため、「powershell ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto" ; 実行する自作スクリプトファイル名」と実行します。

Exchange Server 2010では無理なくスクリプトを導入できる

今回、まずは紹介、ということで簡単な例だけを紹介しましたが、さらに突っ込んで利用すれば、ユーザーアカウント情報のCSVファイルを読み込んでアカウントやメールボックス一括作成、あるいは多人数のメールボックスを一括して別の組織単位(OU)に移動…などもできます。

一度にあれもこれも覚えようとすると大変な負担になりますが、できるところから少しずつPowerShellを活用していけば、無理なくPowerShellの便利さを享受できるでしょう。

Exchange Server 2010/2007の管理シェル・リファレンス

TechNetには、Exchange Server 2010/2007における管理シェルのリファレンスも用意されている。

PowerShellによるExchange Serverの管理でどのようなことができるのか、確認しておきたい方は、以下のWebページをご覧になるとよいだろう。

・Exchange Server 2010の管理シェル
 http://technet.microsoft.com/ja-jp/library/bb123778.aspx

・Exchange Server 2007の管理シェル
 http://technet.microsoft.com/ja-jp/library/bb123778%28EXCHG.80%29.aspx