PelNet がリリースされました
(この記事は 2014 年 4 月 30 日に The Exchange Team Blog に投稿された記事 Released: PelNet の翻訳です。最新情報については、翻訳元の記事をご参照ください。)
|
私が現在担当している大規模な環境では、お客様のトランスポートの変更の確認、特に、新たに追加された送信コネクタやスマートホストの確認に苦労しました。メール フローのトラブルシューティングも同様に、Telnet で SMTP ステータスを手作業でチェックして、その結果に応じて対応していく必要があるので手間がかかります。もしセキュリティ上の理由で Telnet の使用が禁止されたらどうすればよいでしょうか? また、複数のコネクタの 20 ~ 30 のスマートホストについて、40 台ものトランスポート サーバーを確認しなければならないとしたらどうでしょうか? さらに、大量の送信コネクタに大量のアドレス スペースがあるとしたら、トラブルシューティングに備えて、あるいは送信コネクタの変更時にトランスポートの変更を確認しやすいように、どうかにかしてチェックを自動化することが必要になります。
ここでは、そんなときに役立つとてもシンプルで効率的な「PelNet」というツールをご紹介します (「PowerShell Telnetting」を縮めてこのように名付けました)。
では、このツールで何ができるかを見ていきましょう。
まず使い方の前に、スクリプトで使用可能なパラメーターをご紹介します。
- AddressSpace: 送信コネクタのアドレス スペースを指定します。
- sendConnector: 単一の送信コネクタを対象にする場合に指定します。
- SourceTransportServers: テストするトランスポート サーバーの一覧 (CSV 形式) を指定します。
- smartHost: テストするスマート ホストです。カンマ区切りの値を指定できます。
- mailSubmissionTest: スクリプトでメールをメールボックスに送信したい場合はこのスイッチを使用します。パラメーターを省略すると、SMTP 動詞の DATA が無視されます。
- From: 差出人アドレス (test@fromdomain.com) です。
- Rcpt: 宛先アドレス (target@targetdomain.com) です。
- LogFolderPath: ログ ファイルやレポートの場所で、指定しない場合は既定で現在のパスが指定されます。
- Port: 既定は 25 です。必要に応じてカスタム ポートを指定できます。
要件
- Exchange 管理ツールがインストールされているマシンから実行する必要があります。パラメーターの組み合わせによっては EMS は不要ですが、Exchange Server PowerShell スナップインが必要な場合は自動的に読み込まれます。
- スクリプトをトランスポート サーバーでリモート実行できるように、リモート PowerShell を構成する必要があります。方法についてはこちら (英語) をご覧ください。
ロジックはシンプルです。指定したパラメーターに応じた検証を行い、CSV を出力します。これを元に各サーバーの SMTP ステータス コードをチェックできます。
スクリプトの実行例
例を含む詳細なヘルプを表示
Get-help .\pelnet.ps1 –full
送信コネクタにまもなく追加しなければならない新しいスマートホストで 50 台のトランスポート サーバーをテストします。
.\PelNet.ps1 -From test@domain.com -Rcpt user@contoso.com –smarthost smarthost.domain.com
特定のアドレス スペースのすべての送信コネクタの全ソース トランスポート サーバーを特定のスマートホストでテストします。
.\PelNet.ps1 –addressSpace contoso.com -From test@domain.com -Rcpt user@contoso.com –smarthost smarthost.domain.com
特定のアドレス スペースのすべての送信コネクタを、カスタム ポートの複数のスマートホストでテストします。
.\PelNet.ps1 –addressSpace contoso.com -From test@domain.com -Rcpt user@contoso.com –smarthost smarthost.domain.com –port 25070
特定のアドレス スペースのすべての送信コネクタを、その送信コネクタに含まれるすべてのスマートホストでテストします。
.\PelNet.ps1 –addressSpace contoso.com -From test@domain.com -Rcpt user@contoso.com
すべてのソース トランスポート サーバーを送信コネクタのすべてのスマートホストでテストします。
.\PelNet.ps1 –From test@domain.com -Rcpt user@contoso.com –sendConnector Outbound_Contoso
すべてのソース トランスポート サーバーからすべての送信コネクタのすべてのスマートホストまで、特定のアドレスをテストします (実行時間にも注意してください)。
.\PelNet.ps1 –From test@domain.com -Rcpt user@contoso.com –addressSpace contoso.com
選択したソース トランスポート サーバーからスマートホストまで、特定のアドレス スペースをテストし、送信するメールをキューに登録します。
.\PelNet.ps1 –From test@domain.com -Rcpt user@contoso.com –addressSpace contoso.com –sourceTransportServers EX15-01,EX15-02,EX15-03 -mailSubmissionTest
スクリプトの出力
次はスクリプトの出力について説明します。
コンソール出力は下のスクリーンショットのようになります。ご覧のとおり、このツールがどのトランスポート サーバーでコードを実行しているのかがわかります。
ログ ファイルと共に、最も重要なカンマ区切り (.csv) ファイルが出力されます。この CSV ファイルのデータから、テストした環境の全体像をつかむことができます。
この CSV ファイルには次の列が含まれます。
SmartHost 、 SendConnector 、 SMTPVerb 、 Status 、 TransportServer
これらの列の値を使用して、サーバーがトラフィックを受け付けているかどうかを確認できます。SendConnector 列は使用したパラメーターに応じて異なるので注意してください。
実例
では、例を見ていきましょう。社内の contoso.com アドレス スペースのすべてのスマートホストへの接続をテストします (メール送信テストも実行)。
.\PelNet.ps1 –From Michael.Hall@uclabz.com -Rcpt user@targetdomain.com –addressSpace Contoso.com -mailsubmissiontest
青 枠には、ステータス応答とサーバーから返された文字列が記載されています。
赤 枠には、接続しようとしているポートで、リモートのスマートホストがトラフィックを受け付けていない場合またはリモートのスマートホストにアクセスできない場合に返されたステータスと ReturnString 値「CONN_ERROR」が記載されています。
最後に、 緑 枠を見ると、mailSubmissionTest スイッチが使用され、テスト用メッセージ送信が試されたことがわかります。件名と本文についてはスマートホストから応答は送信されないので、「NULL」と記載されています。
列を絞り込んで、接続上の問題がないかを簡単に確かめることができます。また、結果をまとめたピボット テーブルを作成することもできます。
まとめ
PelNet は、すばやくメール フローをテストしたいときや、単体/複数のスマートホストで複数のサーバーを確認したい場合に非常に便利なツールです。
このツールに関するご意見、ご感想、ご指摘などをぜひお寄せください。
PelNet が皆様のお役に立つことを願っています。
Michael Hall
Office 365、サービス エンジニア