トップ回答者
Exchange 2010のトランスポートルールにおける文字の処理方法について

質問
-
佐藤と申します。
Exchange Server 2010でトランスポートルールとRMSの連携機能についてExchange 2010のRC版で評価をしていた所、ひょんな事からトランスポートルールが正常に動作していないと思い色々と検証してみました。
具体的には、メッセージの特定の文字が含まれている時にトランスポートルールを適用するというルールが適用される場合や適用されない場合があるようです。
(今回はExchange 2010のRC版で試してみましたが、もしかしたらExchange 2007でもそうなのかもしれません。)
まず、こちらの環境を簡単に記します。
■環境
1.EX2010-ADDS
OS:Windows Server 2008 R2
役割:AD DS、DNS、AD RMS
2.EX2010-RC
OS:Windows Server 2008 R2
役割:Exchange 2010 RC(HUB、CAS、MBX)
3.EX2010-XP
OS:Windows XP SP3
役割:Outlook 2007 SP2
■トランスポートルール
[件名]フィールドまたはメッセージの本文に'秘密'または'㐂'または'\'が含まれる場合'RMS Test'を使用する権利保護メッセージ
※2番目の文字は「㐂(よろこぶ)」という環境依存文字でVista以降追加された文字なので、下記テストパターン26はEX2010-ADDSからOWA経由で送信しました。
※上記以外にはトランスポートルールは存在しない状態でテストしています。
■発生している現象
1.上記トランスポートルールで指定されている文字が本文に含まれていても、'RMS Test'が適用される場合と適用されない場合がある。
※下記、「テスト内容」に記載した「保護された」というのは、'RMS Test'が適用された事を意味します。
■テスト内容
上記トランスポートルールで指定した文字を様々なパターンで文字を組み合わせた。(詳細は下記参照)
- 秘密(指定した文字(全角)) → 保護された
- 秘密(半角スペース+指定した文字) → 保護された
- 秘密(全角スペース+指定した文字) → 保護された
- 秘密 (指定した文字+半角スペース) → 保護された
- 秘密 (指定した文字+全角スペース) → 保護された
- あ秘密(ひらがな+指定した文字) → 保護されず
- 1秘密(半角数字+指定した文字) → 保護されず
- 1秘密(全角数字+指定した文字) → 保護されず
- 秘密](指定した文字+半角記号) → 保護された
- [秘密(半角記号+指定した文字) → 保護された
- 秘密](指定した文字+全角記号) → 保護された
- [秘密(全角記号+指定した文字) → 保護された
- [秘密](半角記号+指定した文字+半角記号) → 保護された
- 【秘密】(全角記号+指定した文字+全角記号) → 保護された
- あ秘密あ(ひらがな+指定した文字+ひらがな) → 保護されず
- 1秘密あ(半角数字+指定した文字+ひらがな) → 保護されず
- 1秘密あ(全角数字+指定した文字+ひらがな) → 保護されず
- A秘密(半角英数字大文字+指定した文字) → 保護されず
- A秘密(全角英数字大文字+指定した文字) → 保護されず
- 秘密A(指定した文字+半角英数字大文字) → 保護されず
- 秘密A(指定した文字+全角英数字大文字) → 保護されず
- a秘密(半角英数字小文字+指定した文字) → 保護されず
- a秘密(全角英数字小文字+指定した文字) → 保護されず
- 秘密a(指定した文字+半角英数字小文字) → 保護されず
- 秘密a(指定した文字+全角英数字小文字) → 保護されず
- 㐂(Vista以降追加された環境依存文字) → 保護された
- ―(指定した文字の文字コードを含む文字(815C)) → 保護されず
- \(指定した文字(半角:5C)) → 保護された
- 秘密秘密(指定した文字の連続) → 保護されず
- 秘密 秘密(指定した文字+半角スペース+指定した文字) → 保護された
- 秘密 秘密(指定した文字+全角スペース+指定した文字) → 保護された
上記の27はトランスポートルールに含めていない文字なので、保護されずに問題ないのですがテストパターン6,7,8,16,17,18,19,20,21,22,23,24,25,27,29では想定した結果と異なりました。
■知りたい事
指定した文字の前後にどのような文字があったとしても、きちんとルールが適用されないと信頼性が無い気がしたので質問致しました。
1.Exchange Server 2010ではどのようなロジックで文字を判断してトランスポートルールを適用しているのか?
2.文字を判断する方法に関する設定等が存在するのか?存在する場合はどこで設定出来るのか?
何か関連する情報をお持ちの方がいらっしゃいましたらアドバイス頂ければ幸いです。
よろしくお願いいたします。
回答
-
おそらく、ルール作成時に
「件名フィールドに特定の文字が含まれる場合」
で作成されているのではないかと思うのですが、
「件名フィールドがテキストパターンと一致する場合」
で作成されてみてはいかがでしょう。
TechNetの記事(http://technet.microsoft.com/en-us/library/dd638183(EXCHG.140).aspx)を見ますと、
「件名フィールドに特定の文字が含まれる場合」 はNo.22に該当しますが、型がWordsです。
「件名フィールドがテキストパターンと一致する場合」 はNo.26に該当し、型はPatternになっていますので、
Words型の場合は、英語圏で言う単語、つまり文字列が空白や記号で区切られてなければHitせず、
Pattern型の場合は、何らかの形で文字列が含まれていればHitする、といった仕様になっているのではないかと思います。- 回答の候補に設定 Takeda.Yuusuke 2009年9月16日 5:39
- 回答としてマーク Takanari Sato 2009年9月25日 1:02
すべての返信
-
おそらく、ルール作成時に
「件名フィールドに特定の文字が含まれる場合」
で作成されているのではないかと思うのですが、
「件名フィールドがテキストパターンと一致する場合」
で作成されてみてはいかがでしょう。
TechNetの記事(http://technet.microsoft.com/en-us/library/dd638183(EXCHG.140).aspx)を見ますと、
「件名フィールドに特定の文字が含まれる場合」 はNo.22に該当しますが、型がWordsです。
「件名フィールドがテキストパターンと一致する場合」 はNo.26に該当し、型はPatternになっていますので、
Words型の場合は、英語圏で言う単語、つまり文字列が空白や記号で区切られてなければHitせず、
Pattern型の場合は、何らかの形で文字列が含まれていればHitする、といった仕様になっているのではないかと思います。- 回答の候補に設定 Takeda.Yuusuke 2009年9月16日 5:39
- 回答としてマーク Takanari Sato 2009年9月25日 1:02
-
Takeda.Yuusukeさん
佐藤です。
返信が遅くなりましたが、回答ありがとうございました。
アドバイス頂いた内容で試してみましたので、結果をご報告いたします。
試した事としては、
前回: 「[件名]フィールドまたはメッセージの本文に'秘密'または'㐂'または'\'が含まれる場合'RMS Test'を使用する権利保護メッセージ」
→TechNetの記事内のPredicate property がWords型の場合
今回: 「[件名]フィールドまたはメッセージの本文に'秘密'または'㐂'と一致する場合'RMS Test'を使用する権利保護メッセージ」
→TechNetの記事内のPredicate property がPatterns型の場合
※前回テストで送付した送信済みメッセージの再送でテストしたため、「件名フィールドがテキストパターンと一致する場合」ではなく、「件名フィールドまたはメッセージの本文がテキストパターンと一致する場合」としました。
※「件名フィールドまたはメッセージの本文がテキストパターンと一致する場合」を指定した場合、文字列に「\」を指定すると「Stackが空です。」とエラーになってしまうため、対象から外しました。
上記のトランスポートルールで望んでいた結果通りの動作になりました。
ありがとうございました。