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 です。必要に応じてカスタム ポートを指定できます。

要件

  1. Exchange 管理ツールがインストールされているマシンから実行する必要があります。パラメーターの組み合わせによっては EMS は不要ですが、Exchange Server PowerShell スナップインが必要な場合は自動的に読み込まれます。
  2. スクリプトをトランスポート サーバーでリモート実行できるように、リモート 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

スクリプトの出力

次はスクリプトの出力について説明します。

コンソール出力は下のスクリーンショットのようになります。ご覧のとおり、このツールがどのトランスポート サーバーでコードを実行しているのかがわかります。

Pelnet1

ログ ファイルと共に、最も重要なカンマ区切り (.csv) ファイルが出力されます。この CSV ファイルのデータから、テストした環境の全体像をつかむことができます。

この CSV ファイルには次の列が含まれます。

SmartHostSendConnectorSMTPVerbStatusTransportServer

これらの列の値を使用して、サーバーがトラフィックを受け付けているかどうかを確認できます。SendConnector 列は使用したパラメーターに応じて異なるので注意してください。

 

実例

では、例を見ていきましょう。社内の contoso.com アドレス スペースのすべてのスマートホストへの接続をテストします (メール送信テストも実行)。

.\PelNet.ps1 –From Michael.Hall@uclabz.com -Rcpt user@targetdomain.com –addressSpace Contoso.com -mailsubmissiontest

枠には、ステータス応答とサーバーから返された文字列が記載されています。

枠には、接続しようとしているポートで、リモートのスマートホストがトラフィックを受け付けていない場合またはリモートのスマートホストにアクセスできない場合に返されたステータスと ReturnString 値「CONN_ERROR」が記載されています。

最後に、枠を見ると、mailSubmissionTest スイッチが使用され、テスト用メッセージ送信が試されたことがわかります。件名と本文についてはスマートホストから応答は送信されないので、「NULL」と記載されています。

PelNet2

列を絞り込んで、接続上の問題がないかを簡単に確かめることができます。また、結果をまとめたピボット テーブルを作成することもできます。

PelNet3

まとめ

PelNet は、すばやくメール フローをテストしたいときや、単体/複数のスマートホストで複数のサーバーを確認したい場合に非常に便利なツールです。

このツールに関するご意見、ご感想、ご指摘などをぜひお寄せください。

PelNet が皆様のお役に立つことを願っています。Smile

Michael Hall
Office 365、サービス エンジニア

Skip to main content