ADMT 3.2 のインストールが不完全、MMC コンソール エラー "ログインによって要求されたデータベース 'ADMT' を開くことができません"

この記事では、エラーのヘルプを提供します (ログインによって要求されたデータベース "ADMT" を開くことができません。Active Directory 移行ツール (ADMT) コンソールを実行するときに発生するログオンに失敗しました。

適用対象: Windows Server 2012 R2
元の KB 番号: 2266373

現象

WINDOWS Server 2008 R2 ドメイン コントローラーに ADMT 3.2 をインストールし、SP1 および SQL 2008 累積的な更新プログラム 4 で SQL Express 2008 を使用すると、エラーなしでインストールが完了します。 ただし、インストールが完了すると、ダイアログ "Active Directory 移行ツールのインストール ウィザード" は空白になります。

その後、ADMT コンソールを実行しようとすると、次のエラーが表示されます。

Active Directory 移行ツール
失敗したアクションをチェックできません。:D BManager.IManageDB.1: ログインによって要求されたデータベース "ADMT" を開くことができません。 ログオンに失敗しました。

その後、MMC コンソールに次の情報が表示されます。

MMC でスナップインを作成できませんでした。
MMC でスナップインを作成できませんでした。 スナップインが正しくインストールされていない可能性があります。
名前: Active Directory 移行ツール
CLSID: {E1975D70-3F8E-11D3-99EE-00C04F39BD92}

原因

ADMT がドメイン コントローラーで SQL Express 2008 SP1 と相互運用する方法にコードの欠陥があり、その結果、"SQLServerMSSQLUser$ComputerName$InstanceName" グループが作成されません。 このグループは、ADMT のインストール中に特定のアクセス許可を構成するために ADMT で必要であり、SQL インスタンスで ADMT データベースを作成できるようにします。 ADMT では、グループが存在することを想定しているため、空白のダイアログと不完全なインストールが発生します。

回避策 1

標準的な方法は、ターゲット ドメインのメンバー コンピューターに ADMT をインストールすることです。 ターゲット ドメインの Windows 2008 R2 メンバー サーバーに SQL Express 2008 SP1 をインストールし、その同じメンバー サーバーに ADMT 3.2 をインストールします。

回避策 2

SID 履歴でコマンド ラインまたはスクリプト化されたユーザー移行を使用するために、ドメイン コントローラーに ADMT 3.2 をインストールする必要がある場合は、ターゲット ドメインの Windows Server 2008 R2 メンバー サーバーに SQL 2008 SP1 (Express 以外のエディション) をインストールし、ドメイン コントローラーに ADMT 3.2 をインストールするときにそのリモート インスタンスを選択します。 または、SQL Express 2005 SP3 をドメイン コントローラーにインストールすることもできます。

回避策 3

ADMT 3.2 と SQL Express 2008 SP1 を同じドメイン コントローラーにインストールする必要がある場合は、ターゲット ドメインのドメイン コントローラーで次の手順を使用します。

  1. ドメイン コントローラーに、SQL Server 2008 用の累積的な更新プログラム パッケージ 4 をインストールします。

  2. SQL Express 2008 SP1 をドメイン コントローラーにインストールします。 インストール中に作成された SQL インスタンス名に注意してください (既定値は SQLEXPRESS です)。

  3. "SQLServerMSSQLUser$DCComputerName>$<<InstanceName" の形式でドメイン ローカル グループを作成します>。 たとえば、ドメイン コントローラーの名前が "DC1" で、SQL インスタンスが "SQLEXPRESS" の場合は、管理者特権のコマンド プロンプトで次のコマンドを実行します。

    NET LOCALGROUP SQLServerMSSQLUser$DC1$SQLEXPRESS /ADD
    
  4. SQL サービス インスタンスの名前を指定して、SC.EXE コマンドを使用して SQL サービス SID を取得します。 たとえば、SQL インスタンスが "SQLEXPRESS" の場合は、管理者特権のコマンド プロンプトで次のコマンドを実行し、返された SERVICE SID 値をメモします。

    SC SHOWSID MSSQL$SQLEXPRESS
    
  5. Windows ディレクトリで、"ADMT" サブフォルダーと、その下に "Data" という名前のサブフォルダーを作成します。 たとえば、管理者特権のコマンド プロンプトで次のコマンドを実行します。

    MD %SystemRoot%\ADMT\Data
    
  6. 手順 4 で取得した SID を使用して、%SystemRoot%\ADMT\Data フォルダーに対する FULL CONTROL アクセス許可を設定します。 たとえば、手順 4 で返された SID が "S-1-5-80-3880006512-4290199581-3569869737-363123133" の場合、管理者特権のコマンド プロンプトで次のコマンドを実行します。

    ICACLS %systemroot%\ADMT\Data /grant *S-1-5-80-3880006512-4290199581-3569869737-363123133:F
    
  7. ローカル SQL Express 2008 インスタンスを選択しながら、ドメイン コントローラーに ADMT 3.2 をインストールします。