ADMT 3.2 安装不完整,MMC 控制台错误“无法打开登录请求的数据库‘ADMT’”

本文提供有关错误(无法打开登录名请求的数据库“ADMT”)的帮助。运行 Active Directory 迁移工具 (ADMT) 控制台时发生的登录失败。

原始 KB 数: 2266373

现象

在 Windows Server 2008 R2 域控制器上安装 ADMT 3.2 并使用 SQL Express 2008 和 SP1 和 SQL 2008 累积更新 4 时,安装将完成且不会出现错误。 但是,安装完成后,对话框“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

如果要求在域控制器上安装 ADMT 3.2 才能在 SID History 中使用命令行或脚本化用户迁移,请在目标域中的 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”,则会在提升的命令提示符下运行以下命令,并记下返回的服务 SID 值:

    SC SHOWSID MSSQL$SQLEXPRESS
    
  5. 在 Windows 目录中,创建名为“Data”的“ADMT”子文件夹和一个子文件夹。 例如,将在提升的命令提示符下运行以下命令:

    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。