本文提供有关错误(无法打开登录名请求的数据库“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,请在目标域的域控制器上使用以下步骤:
在域控制器上安装 SQL Server 2008 累积更新包 4。
在域控制器上安装 SQL Express 2008 SP1。 请注意在安装期间创建的 SQL 实例名称(默认值为 SQLEXPRESS)。
使用“SQLServerMSSQLUser$<DCComputerName>$<InstanceName>”格式创建域本地组。 例如,如果域控制器名为“DC1”,并且 SQL 实例为“SQLEXPRESS”,则会在提升的命令提示符下运行以下命令:
NET LOCALGROUP SQLServerMSSQLUser$DC1$SQLEXPRESS /ADD
使用具有 SQL 服务实例名称的 SC.EXE 命令检索 SQL 服务 SID。 例如,如果 SQL 实例为“SQLEXPRESS”,则会在提升的命令提示符下运行以下命令,并记下返回的服务 SID 值:
SC SHOWSID MSSQL$SQLEXPRESS
在 Windows 目录中,创建名为“Data”的“ADMT”子文件夹和一个子文件夹。 例如,将在提升的命令提示符下运行以下命令:
MD %SystemRoot%\ADMT\Data
使用步骤 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
选择本地 SQL Express 2008 实例时,在域控制器上安装 ADMT 3.2。