在基于 Windows 2000 或 Windows Server 2003 的服务器上安装 Service Pack、更新汇总或打印机修补程序后无法打印

文章翻译 文章翻译
文章编号: 832219 - 查看本文应用于的产品
重要说明:本文包含有关如何修改注册表的信息。修改注册表之前,一定要先进行备份,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和修改注册表的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表说明
展开全部 | 关闭全部

症状

安装更新 Unidrvui.dll 文件的 Microsoft Windows 2000 Service Pack 2 (SP2)、Windows Server 2003 Service Pack、更新汇总或修补程序后,用户可能会遇到下面两种症状:
  • 当客户机或服务器尝试打印时,后台打印程序服务似乎停止响应(或“挂起”),并且显示下面的错误消息:
    Unable to create Print job.
  • 当尝试从服务器控制台打印测试页时,收到下面的错误消息:
    Test page failed to print.

原因

如果在具有许多基于 Unidrv 的打印机控制语言 (PCL) 打印机驱动程序的服务器上安装 Service Pack 或修补程序软件包,则可能会出现此现象。

当在具有许多基于 Unidrv 的 PCL 打印机驱动程序的服务器上安装更新 Unidrvui.dll 的 Service Pack 或修补程序文件时,服务器可能需要较长的时间(多达 2 小时)重新生成分析二进制打印机说明文件(.bud 文件),这些文件用于提高这些驱动程序的后台打印程序的效率。在这段时间内,后台打印程序无法接收输入的打印作业,并将表明打印列队已满的消息返回客户端。这是一次性的分析操作,且此操作在成功重新生成分析二进制 .bud 文件后不会发生。

从通用打印机说明 (GPD) 文件生成的二进制 .bud 文件必须重新生成,因为 GPD 分析程序文件版本已更改。分析所有基于 Unidrv 的 PCL 驱动程序后,后台打印程序可以重新接收打印作业。因此,Microsoft 建议在具有许多基于 Unidrv 的 PCL 打印机驱动程序的服务器上计划 Service Pack 和修补程序的安装,以适应此多达两小时的 .bud 文件编译过程。

解决方案

要解决此问题,请为服务器安排足够的时间,以便为每个升级的驱动程序文件完成对所有基于 Unidrv 的打印机驱动程序的分析,然后为使用这些文件的每台打印机安排足够的时间。

替代方法

警告:注册表编辑器使用不当可能导致严重问题,可能需要重新安装操作系统。Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。

如果无法等待服务器完成对所有基于 Unidrv 的打印机驱动程序的分析,请手动删除所有缓存的二进制打印机说明文件(.bud 文件),然后自动重新创建这些文件。自动重新创建可能会在较短的时间内完成,具体时间取决于服务器的速度。通常情况下,此操作在 30 分钟内完成。

注意:当启动后台打印程序时,它将安装较新版本的 Unidrv.dll。因此,.bud 文件会过时。.bud 文件是 .ppd 文件的编译版本,可以完整地从这些 .ppd 文件中重新生成。因此,您可以删除 .bud 文件。为此,请按照下列步骤操作:
  1. 停止后台打印程序服务。为此,请在命令提示符下运行以下命令:
    net stop spooler
  2. 搜索所有的 .bud 文件,然后确保这些文件标有当前时间和日期。这些文件显示当前日期。
  3. 删除日期和时间标记为当前日期之前的所有 .bud 文件。这些文件位于下面的文件夹中:
    %SYSTEMROOT%\System32\Spool\Drivers\w32x86\3
  4. 如果存在以下注册表项,请将其删除:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PostSPUpgrade
    为此,请按照下列步骤操作:
    1. 单击“开始”,单击“运行”,在“打开”框中键入 regedit,然后单击“确定”。
    2. 找到并单击下面的注册表子项:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
    3. 在“注册表”菜单上,单击“导出注册表文件”。
    4. 在“文件名”框中,键入 printkey,然后单击“保存”。

      注意:如果以后必须还原
      Print
      注册表项,您可以双击保存的 Printkey.reg 文件完成此操作。
    5. 找到下面的注册表子项并单击它(如果存在):
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PostSPUpgrade
    6. 在“编辑”菜单上,单击“删除”,然后单击“是”以确认删除
      PostSPUpgrade
      注册表项。

      注意:重新启动计算机后,
      PostSPUpgrade
      注册表项可能会重新显示。如果存在其他未被分析的 .bud 文件,则会出现此行为。分析这些文件后,将自动删除此注册表项。
  5. 重新启动服务器。
重新启动服务器后,用户可以在大约 30 分钟后使用打印功能。

属性

文章编号: 832219 - 最后修改: 2007年12月10日 - 修订: 5.1
这篇文章中的信息适用于:
  • Microsoft Windows 2000 Advanced Server SP4
  • Microsoft Windows 2000 Advanced Server SP3
  • Microsoft Windows 2000 Advanced Server SP2
  • Microsoft Windows 2000 Server SP4
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Server SP2
  • Microsoft Windows 2000 Professional SP4
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Professional SP2
  • Microsoft Windows Server 2003 Web Edition
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003 Standard Edition
关键字:?
kbprint kbprb KB832219
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

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