[XADM] Mbconn.exe ユーティリティに関する問題の回避方法

文書翻訳 文書翻訳
文書番号: 301585 - 対象製品
この記事は、以前は次の ID で公開されていました: JP301585
すべて展開する | すべて折りたたむ

目次

現象

この資料では、Mbconn 6.0.4417 で発生する以下の既知の問題を回避する方法について説明します。
  • [名前を付けて保存] ダイアログ ボックスを使用した後で Mbconn が突然終了する。
  • Mbconn エクスポート ファイルのレコードが正しくフォーマットされていないため、Ldifde インポートが機能しない。
  • 「No such object」または「No private databases found on this server」というエラー メッセージが表示される。
  • 実際にはメールボックスへの再接続が成功していても、すべて失敗とレポートされる。

    再接続後、メールボックスにアクセスできるようになるまで 10 分以上かかる場合があります。

回避策

「現象」に記載された Mbconn の問題を回避するには、以下に紹介する回避策を適宜実行してみてください。

[名前を付けて保存] ダイアログ ボックスでログ ファイル名を入力すると Mbconn が突然終了する

Mbconn は、Mbconn.exe が保存されているフォルダにログ ファイルを生成します。Mbconn.exe が読み取り専用の共有フォルダに保存されているなどの理由でこの場所にファイルを書き込むことができない場合には、ログ ファイルの別の保存場所を選択する画面が表示されます。このときに表示されるのは、名前を付けて保存するときに通常使用されるダイアログ ボックスです。ここでどのような場所またはファイル名を選択しても、Mbconn は異常終了します。

この問題を回避するには、Mbconn を書き込み可能な場所にコピーするか、ファイル選択ダイアログ ボックスで [キャンセル] をクリックして、ログを出力せずに Mbconn を使用するようにします。

「回避策」先頭のリストに戻る

エクスポートするファイルの場所を指定しようとすると Mbconn が突然終了する

エクスポート ファイルを作成するときに参照ボタンをクリックしてファイルを指定しようとすると、Mbconn が突然終了します。

この問題を回避するには、ファイル名を入力して [Generate] をクリックする方法でエクスポート ファイルを作成します。

「回避策」先頭のリストに戻る

Mbconn が Exchange データベースを列挙しない

接続先のドメイン コントローラと Exchange コンピュータを定義した後で、次のいずれかのエラー メッセージが表示されることがあります。
No private databases found on this Exchange Server
または
Mailbox Reconnect

Connection to server failed.
ExServer : Exchange1
DC : DC1

HRESULT : ERROR_DS_NO_SUCH_OBJECT
AD Error : 0000208D: NameErr: DSID-031001C9, problem 2001 (NO_OBJECT), data 0, best match of:
'DC=domain,DC=domain,DC=com'

There is no such object on the server.
この問題は、管理者が、Active Directory の構成コンテナの親ドメインに属している Microsoft Windows アカウントでログオンしていない場合に発生します。構成コンテナは、Active Directory フォレストにインストールされた最初のドメインのサブコンテナとして作成されます。フォレストが複数のツリーで構成されていると、構成コンテナが格納されているツリーを見つけるのが困難になる場合があります。構成コンテナの親ドメインを確認するには、次の手順を実行します。
  1. Active Directory サイトとサービスの管理コンソールを起動します。
  2. [サイト] オブジェクトをクリックし、プロパティを開きます。
  3. [オブジェクト] タブをクリックします。親ドメインが ドメイン.com の場合、ここには次の形式でドメイン名が記載されます。
    ドメイン.com/Configuration/Sites
この問題を回避して Mbconn を使用するためには、ドメイン コントローラや接続先の Exchange 2000 サーバーの場所がどこであろうと、このドメインのアカウントを使って Windows にログオンする必要があります。

「回避策」先頭のリストに戻る

再接続に成功していても、失敗したと Mbconn がレポートする

Mbconn は、再接続に成功したメールボックスがあった場合でも、すべての再接続が失敗したとレポートすることがあります。管理者が Exchange のシステム マネージャを起動し、クリーンアップ エージェントを使ってすべてのメールボックスの接続状態を確認しようとすると、クリーンアップ エージェントは動作せず、次のようなエラー メッセージが表示されます。
An internal processing error has occurred. Try restarting the Exchange System Manager or the Microsoft Exchange Information Store service, or both.

ID no: c1041724
このとき、アプリケーション イベント ログには、次のようなエラー メッセージが記録されます。
種類 : エラー
ソース : MSExchangeIS
分類 : General
イベント ID : 9562
日付 : 14.06.13
時刻 :6:30:42 PM
ユーザー : N/A
コンピュータ : EXCHANGE1
説明 : Failed to read attribute msExchUserAccountControl from Active Directory for /O=MICROSOFT/OU=EXCHANGE/CN=RECIPIENTS/CN=COMMONNAME.
また、システム マネージャで [メールボックス] フォルダを開き、失敗したユーザー 1 人に再接続しようとすると、次のエラー メッセージが返されます。
このメールボックスは既に既存のユーザーに再接続されているため、この処理を実行できません。0}
サービスまたはシステム マネージャを再起動しても、このエラーは解消されません。通常は、メールボックスがアクセス可能になるまで約 10 分かかります (もう 1 度クリーンアップ エージェントが正常に実行できた時点で、再接続プロセスが完了します)。

ユーザーの homeMDB 属性と mailNickname 属性は、Ldifde ユーティリティで確認できます。これらの属性が設定されていれば、Mbconn の再接続プロセスは実際に成功しています。Ldifde ユーティリティを使ってユーザーの homeMDB 属性と mailNickname 属性を確認するには、対象となるユーザー アカウントの識別名が必要です。Mbconn のプレビュー モードでは、接続先となるメールボックスのユーザー アカウントの識別名が表示されます。たとえば、次のコマンドを実行するとします。
LDIFDE -F CON -D "CN=Common Name,OU=Container,DC=Domain,DC=COM" -L homeMDB,mailNickname
出力結果は次のサンプルのようになります。
E:\>LDIFDE -F CON -D "cn=Common Name,ou=Container,dc=domain,dc=com" -L homeMDB,mailNickname
"dc1.domain.com" に接続しています
SSPI を使って現在のユーザーとしてログインしています
ディレクトリをファイル con にエクスポートしています
エントリを検索しています...
エントリを書き出しています dn: CN=Common Name,OU=Container,DC=domain,DC=com
changetype: add
homeMDB:
CN=Private Information Store (DC1),CN=First Storage Group,CN=InformationStore,CN=DC1,CN=Servers,
CN=Exchange,CN=Administrative Groups,CN=Microsoft,CN=Microsoft Exchange,CN=Services,CN=Configuration,
DC=domain,DC=com
mailNickname: CommonName
1 entries exported

コマンドが正しく完了しました
: homeMDB 属性と mailNickname 属性があるかどうかにかかわらず、Ldifde ユーティリティは「1 entries exported」というメッセージを返します。「エントリがありませんでした」というメッセージが返された場合は、ディレクトリからのユーザー オブジェクトの読み取りに失敗したことを意味します。その場合の原因には、識別名の入力ミス、オブジェクトの表示に必要な権限がない、エスケープする必要のある文字をエスケープしていなかったことなどが考えられます。エスケープする必要のある文字の詳細については、この資料の「Active Directory のインポート中にエクスポート ファイルがエラーを返す」を参照してください。

homeMDB 属性と mailNickname 属性が存在していて、クリーンアップ エージェントが正常に実行できた場合は、ユーザー オブジェクト属性を追加する受信者更新サービスの再接続プロセスが完了できていないことが考えられます。ユーザー オブジェクトに proxyAddresses 属性が設定されていなければ、受信者更新サービスによるオブジェクトの処理は行われていません。

この問題や明白な再接続問題が発生しないようにするには、Mbconn エクスポート ファイルの各レコードに次の行を追加します。
msExchUserAccountControl: 0
msExchUserAccountControl 値の詳細については、この資料の「Active Directory のインポート中にエクスポート ファイルがエラーを返す」を参照してください。

「回避策」先頭のリストに戻る

Active Directory のインポート中にエクスポート ファイルがエラーを返す

エクスポート ファイルの LDIF レコードは一般に次のような書式になっています。
dn: CN=Common Name,OU=Container,DC=Domain,DC=com
changetype: add
UserAccountControl: 66048
displayName: Common Name
cn: Common Name
objectclass: user
samAccountName: CommonName
givenName: Common
sn: Name
ファイルのインポートに使う一般的なコマンド構文を次に示します。
LDIFDE.EXE -I -K -F MBCONN.TXT
インポート中に構文エラーまたはフォーマット エラーが発生した場合は、インポートが停止され、問題のレコードの開始行がレポートされます (最初のレコードで問題が発生した場合は、「1 行目にエラー」といった形でレポートされます)。Active Directory 内にエントリが存在している場合は、-K スイッチを使用しない限り、2 度目にファイルをインポートしようとしたときにエラーが発生します。レコードに属性を追加したりレコードを再インポートして、以前作成したエントリを変更することはできません。LDIF 規格には既存のディレクトリ オブジェクトの変更についての規定もありますが、その書式や構文はレコードの作成時のものとはかなり異なります。

一般に、LDIF インポートのトラブルシューティングでは、エラーが発生したレコードを格納している行を特定し、そのレコードに問題がないか調べる必要があります。

次に、Mbconn エクスポート ファイルで発生する一般的な問題を紹介します。
  • 識別名で使用されている文字が、正しくエスケープされていない場合があります。識別名で使用するときにエスケープする必要がある文字を次に示します。

    • カンマ (,)
    • 等号 (=)
    • 正符号 (+)
    • 円記号 (\)
    • セミコロン (;)
    • 二重引用符 (")
    • 山かっこ (< >)
    この問題は、CN 値に指定されたカンマによって発生するのが最も一般的です ("CN=First Last" とすべきところを "CN=Last, First" としてしまうなど)。LDIF 形式では、完全識別名のセグメントを区切るための区切り文字としてカンマを使用します。 そのため、セグメント内でカンマを使用するには、カンマの前に円記号を付けてカンマが特殊な意味を持たないようにする (エスケープする) 必要があります ("Last\, First" など)。
  • sn (姓) フィールドが空白になっている場合があります。データベースのメールボックス テーブルに givenName フィールドと sn フィールドが格納されていなければ、Mbconn は値を判断しようとし、CN 内のスペースが両者の区切りを示していると見なします。CN にスペースが含まれていなければ、CN 全体を givenName と判断し、sn を空白として扱います。一方、LDIF インポート ファイルに指定されているすべての属性は値を持つ必要があるので、sn を空白扱いすることによってインポートが機能しなくなります。この問題を回避するには、空白になっている sn 属性を検索し、すべての sn 属性に一般的な姓を指定します。
  • samAccountName に使用できない文字が含まれている場合があります。samAccountName に指定可能な文字は 20 文字以内です。スペースは使用できません。また、以下の文字もすべて使用できません。

    • アスタリスク (*)
    • 等号 (=)
    • 正符号 (+)
    • 角かっこ ([ ])
    • 円記号 (\)
    • 縦線 (|)
    • セミコロン (;)
    • コロン (:)
    • 二重引用符 (")
    • カンマ (,)
    • 山かっこ (< >)
    • ピリオド (.)
    • スラッシュ (/)
    • 疑問符 (?)
    Mbconn は CN から samAccountName を作成します。したがって、エスケープする必要のある文字を含んでいる CN のほとんどは、不適切な samAccountName を含んでいることになります。
上記の 3 つの問題は次のバッチ ファイルを使って修正することができます。このバッチ ファイルは、ほとんどの MBconn エクスポート ファイルに対して機能します。バッチ ファイルは、ダブル スペース (1 行おき) で記述されています。この形式にすることにより、ディスプレイ上で不必要に折り返している行を簡単に見分けることができます。

このバッチ ファイルには次の 4 つの機能があります。
  • 必要に応じて DN 値にエスケープ文字を追加します。
  • samAccountName から使用できない文字を取り除きます。
  • 各レコードに msExchUserAccountControl 値を追加します。
  • 各レコードから givenName、sn、cn の行を削除します(これらの行を残しておきたい場合は、削除しないようにバッチ ファイルを編集することもできます)。
このバッチ ファイルは、デフォルトのコマンド ライン拡張機能が有効になっている Microsoft Windows 2000 または Microsoft Windows NT 4.0 で動作します。

このバッチ ファイルを実行するには、 Mbconn エクスポート ファイル名と変更内容を記述する新しいファイル名の 2 つのパラメータが必要です。指定例を次に示します。
E:\>MBCONNFIX.BAT MBCONN.TXT MBCONNFIX.TXT
バッチ ファイルをコピーしてテキスト エディタに貼り付け、Mbconnfix.bat という名前で保存します。
:MBCONNFIX.BAT

@echo off

setlocal

set infile=%1

set outfile=%2

if exist %outfile% del %outfile%

echo Please Wait...

for /f "delims=" %%A in (%infile%) do call :DO_EACH_LINE "%%A"

start notepad %outfile%

goto :EOF

:DO_EACH_LINE

REM     行から引用符を削除します

set line=%1

set line=%line:"=%

REM     使用できない文字にエスケープ文字を付けるか削除します

if "%line:~0,4%"=="dn: " GOTO :FIXDN

if "%line:~0,16%"=="samAccountName: " GOTO :FIXSAM

if "%line:~0,4%"=="sn: " GOTO :FIXSN

REM    次の 2 行では、ldif ファイルから cn 行と givenName 行を削除します

if "%line:~0,4%"=="cn: " GOTO :EOF

if "%line:~0,11%"=="givenName: " GOTO :EOF

echo %line%>>%outfile%

goto :EOF

:FIXDN

set line=%line:+=\+%

set line=%line:\=\\%

set line=%line:;=\;%

set line=%line:"=\"%

set line=%line:<=\<%

set line=%line:>=\>%

set line=%line:,=\,%

set line=%line:\,OU=,OU%

set line=%line:\,DC=,DC%

set line=%line:\,CN=,CN%

echo %line%>>%outfile%

goto :EOF

:FIXSAM

set line=%line:samAccountName: =%

set line=%line:+=%

set line=%line:[=%

set line=%line:]=%

set line=%line:\=%

set line=%line:|=%

set line=%line:;=%

set line=%line::=%

set line=%line:"=%

set line=%line:,=%

set line=%line:<=%

set line=%line:.=%

set line=%line:>=%

set line=%line:/=%

set line=%line:?=%

set line=%line: =%

set line=samAccountName: %line%

echo %line%>>%outfile%

goto :EOF

:FIXSN

rem      ldif ファイルに sn 行を残す場合は、次の 2 行の rem を解除します

rem if "%line%"=="sn: " set line=sn: Surname

rem echo %line%>>%outfile%

echo msExchUserAccountControl: ^0>>%outfile%

echo.>>%outfile%

goto :EOF
「回避策」先頭のリストに戻る

状況

マイクロソフトでは、これが Microsoft Exchange 2000 Server にかかわる問題であることを確認済みです。

詳細

Mbconn.exe ユーティリティは、Exchange 2000 Server の CD-ROM に収録されています。このユーティリティは一般に、代替サーバー データベースの回復時に Exmerge.exe と併用されます。代替サーバーの回復時には、データベース内のデータを取り出すため、Active Directory フォレスト内の Exchange 2000 データベースを別のフォレスト内の回復サーバー上で起動します。このような場合には、Mbconn を使ってまず回復対象の各メールボックスの Active Directory ユーザー アカウントを生成します。その後、Exmerge を使って、回復用のデータベースのデータを稼動中のデータベースにマージします。

Mbconn では LDIF 形式のファイルを生成することができるので、生成されたファイルを Ldifde.exe で Active Directory にインポートすることも可能です。Mbconn のエクスポート ファイルは、以前の Exchange Server の DS/IS 整合性調整機能と同じような機能を実行します。つまり、Mbconn のエクスポート ファイルは、Exchange データベース内で "孤立した" メールボックスに対応するディレクトリ アカウントを作成するので、再びそれらのメールボックスにアクセスできるようになります。生成されたファイルでアカウントの削除や属性の追加などを行ってから、インポートすることも可能です。

データベース内のメールボックス テーブルには特定のユーザー アカウントへの接続に必要な一部の属性しか格納されていません。それ以外の電話番号などの属性を自動的に再入力することはできません。

代替サーバー回復時のセットアップ手順については、次の Microsoft Web サイトのホワイト ペーパー 「Exchange 2000 Server Database Recovery」を参照してください。
http://www.microsoft.com/technet/prodtechnol/exchange/2000/support/dbrecovr.mspx

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 301585 (最終更新日 2001-08-31) をもとに作成したものです。

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

プロパティ

文書番号: 301585 - 最終更新日: 2006年9月29日 - リビジョン: 2.0
この資料は以下の製品について記述したものです。
  • Microsoft Exchange 2000 Server Standard Edition
キーワード:?
kbbug kberrmsg kbnofix KB301585
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com