当您试图导入与 Service Pack 1 运行 Windows Server 2003 的计算机上的.ldf 文件时出现错误消息:"行 LineNumber 上添加错误: 无此对象"

Support for Windows Server 2003 ended on July 14, 2015

Microsoft ended support for Windows Server 2003 on July 14, 2015. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 910823
本文已归档。它按“原样”提供,并且不再更新。
症状
在计算机上的对象将被删除或损坏时, 必须使用包含在 Active Directory 数据库的系统状态备份还原计算机。然后您可能不得不使用 Ntdsutil.exe 工具标记为权威这些对象的已还原的版本。

将在运行 Windows Server 2003 Service Pack 1 (SP1) 与一个控制器上 Ntdsutil 工具写回为被还原的对象的链接权威性地为.ldf 文件。正在还原的对象可能在多个命名上下文。

当试图.ldf 文件导入到目标命名上下文 (NCs) 导入将失败。此外,您可能会收到与以下类似的错误消息:
正在加载项。
添加错误的行 LineNumber: 无此对象
在服务器方的错误是:"找不到目录对象。
注意此错误信息中 LineNumber 是占位符,行号。
原因
Ntdsutil 工具试图写入 ASCII 中的编码的文件。但是,此过程无法进行编码以 base64 格式对象名称,如果名称包含上限 ASCII 范围中的字符。

注意上限 ASCII 范围中的字符都具有一个 128 到 255 之间的字符代码的字符。
替代方法
要变通解决此问题,请按照下列步骤操作:
  1. 通过使用读取 ASCII 文件或 DOS 文件支持的编辑器中打开受影响的.ldf 文件。

    注意Microsoft Visual Studio 和写字板都支持读取 ASCII 已知的编辑器文件并写入 Unicode 支持。
  2. 找到的行报告过该问题。
  3. 查找包含上限 ASCII 范围中字符的行。删除文件中的出现在这行之前该对象。然后,使用 Unicode 编码保存该文件以新名称。

    注意在文件中受影响的行之前显示的该对象是已成功导入。
  4. 导入您在步骤 3 中使用 ldifde 命令与一起保存的文件在 -u 参数 (ldifde-u)。若要不必更多的错误,可以通过使用此替代方法来主动地处理.ldf 文件中发生故障的对象名称。

    注意请确保不要在您映射到不同于用来读取该 ASCII 代码页的多个 ASCII 代码页的对象名中使用字符文件。在您保存该文件使用 Unicode 后如果使用这些字符,导入错误将会保留编码。您必须也找到行,并手动更正错误。
LDAP ldif
Windows SE 172170 Windows SE Bug 172170

属性

文章 ID:910823 - 上次审阅时间:12/09/2015 03:48:02 - 修订版本: 1.3

Microsoft Windows Server 2003 Service Pack 1

  • kbnosurvey kbarchive kbmt kbtshoot kberrmsg kbprb KB910823 KbMtzh
反馈