简介
Microsoft Windows 2000 引入了一个全新的 Microsoft Windows NT 操作系统版本。与 Windows NT 的以前版本相比,Windows 2000 在许多方面都进行了重大改动,打印子系统只是其中的一个方面。即便这些改动所带来的好处在操作系统的稳定性和可靠性方面得到了印证,但仍然付出了一定的代价。在升级和迁移到 Windows 2000 或 Windows Server 2003 之时,公司常常发现自己处在一个混合了 Windows NT 4.0 以及 Windows 2000、Windows XP 或 Windows Server 2003 系列操作系统的环境中。
使用本地和远程(客户端和服务器)驱动程序功能和设置生成打印作业的网络打印更增加了互操作性方面的复杂性。由于这个原因,包含 Windows NT 4.0 以及 Windows 2000、Windows XP 或 Windows Server 2003 系列操作系统的环境中的网络打印会给各家公司带来一些难题。
本文旨在帮助解释存在于网络打印环境中的过程及环境条件,尤其当这些条件与 Windows NT 操作系统的混合版本相关时。另外,还讨论了可用于处理这些问题的各种方法。
一些由混合了 Windows NT 4.0 及更新的 Windows 版本的环境所引起的互操作性问题扎根于对打印机驱动程序结构模型所做的改动。本文分析了从内核模式到用户模式进程空间的迁移,以及 Microsoft 通用打印机驱动程序的升级。只有当驱动程序模式产生互操作性问题时,才会涉及与打印机硬件的设备局限性相关的其他问题。本文还探讨了设备字体支持如何影响处在 Windows NT 4.0 升级过渡期的客户。
请注意有关这方面的论述紧紧围绕各公司因升级数万台客户端以迁移到 Windows 2000 或更新版本所带来的挑战而要面对的过渡期,这一点很重要。混合或旧式客户端无法完全获得 Windows 2000 及更新版本的打印改进功能所带来的裨益。本文假设客户的目标是为了获得一个所有客户端和服务器都运行 Windows 2000 或更新版本的网络打印环境。
Windows 2000 和 Windows Server 2003 打印体系结构
认识 Windows 打印子系统对于确定因存在包含 Windows NT、Windows 2000 或 Windows Server 2003 系列操作系统的混合环境而引发的互操作性问题很有帮助。Windows 2000(及 Windows 的更新版本)的打印体系结构由一个后台打印程序和一组打印机驱动程序组成。通过调用与设备无关的 Win32 打印和图形设备接口 (GDI) 函数,应用程序可以创建打印作业并发送给各种设备,包括激光打印机、矢量绘图仪、光栅打印机和传真机。打印机驱动程序包括一个允许用户控制打印机的可选项的用户接口 (UI) 组件。
应用程序对 Win32 GDI 函数的调用会传递给 GDI 图形引擎,由该引擎将绘图指令作为增强型图元文件 (EMF) 进行后台处理,或者同打印机驱动程序一起提供可发送给后台打印程序的可打印的图像。后台打印程序组件会解析 EMF 文件,并能在数据流中插入页面布局信息和作业控制指令。后台打印程序随后会将数据流发送给目标打印机的 I/O 端口相关联的串行、并行或网络端口驱动程序。设备会解析作业(针对设备以打印机描述语言 (PDL) 进行了格式化),并输出打印好的文档。
后台打印程序和驱动程序组件被设计为可替代的,从而使硬件供应商可以轻松地对新的硬件增加支持。
Windows 2000 对打印机驱动程序所做的改动
打印机驱动程序是一种可将应用程序数据转化为打印设备可用以创建打印页的格式的软件。在 Windows NT 4.0 中,所有打印机驱动程序都以内核模式运行。这些驱动程序称为 Windows 打印环境中的第 2 版驱动程序。Windows 2000 及更新版本本质上支持用户模式驱动程序,同时还专门支持内核模式驱动程序以实现向后兼容。Microsoft 转而采用用户模式驱动程序(也称为第 3 版驱动程序)以实现系统可靠性和稳定性。采用内核模式驱动程序,出现一个错误就会令整台服务器崩溃,而对于用户模式驱动程序,错误仅会影响运行驱动程序的进程——通常是后台打印程序。重新启动后台打印程序要比重启整个系统快得多。此外,当后台打印程序出现故障时,用户仍可运用服务器的其他服务。Windows Server 2003 默认对后台打印程序服务提供自动恢复功能。(服务控制管理器中的一项设置)
将打印机驱动程序从内核模式迁移到用户模式并不是 Windows 2000 所做的唯一改动,还引入了 Microsoft 通用打印机驱动程序 (Unidrv)。这一打印机驱动程序核心取代了 Windows NT 4.0 及更早版本中的光栅设备驱动程序 (RASDD) 接口。Unidrv 背后的概念是:不用独立硬件供应商 (IHVs) 编写整个驱动程序,就可使用 Unidrv 引擎的核心打印功能,并且只需通过运用微型驱动程序提供特定于设备的功能。微型驱动程序通常是一个自定义文件,或者可能是一个插件,可提供特殊的生成功能或自定义的 UI 选项。核心打印机控制语言 (PCL) 引擎 (Unidriv.dll) 和 PostScript 引擎 (PScript5.dll) 均允许使用微型驱动程序。Unidrv 微型驱动程序的自定义文件为 .gpd 文件,而对于 PostScript 微型驱动程序,则为 .ppd 文件。
Windows Server 2003 附带了 3,800 种打印设备的驱动程序。虽然这些驱动程序由 Microsoft 提供给 Windows Server 2003,但是其中大部分都是各个打印机制造商提供给 Microsoft 的。这些所谓的 inbox 驱动程序都包含在各自的产品中。虽然标准打印驱动程序完全可满足绝大多数企业打印设备,但是打印机制造商可能会选择开发自己的驱动程序以供用户使用,而不采用 Unidrv.这类驱动程序通常称为一体化驱动程序,因为它们并未被实施为 UniDrv 微型驱动程序。(许多制造商现在都开始致力于让他们所有的驱动程序都采用 UniDrv 模型而非传统的一体化模型。)
总的来说,有这几种驱动程序类型:
内核模式(第 2 版)或用户模式(第 3 版)
PostScript (PS) 或 PCL
微型驱动程序或一体化驱动程序
注意:
驱动程序可以是上述不同类型的组合——例如,核心模式 PCL 驱动程序、用户模式一体化驱动程序、PostScript 微型驱动程序。(Windows 2000 或 Windows Server 2003 所附带的驱动程序均为用户模式。)
根据具体的设备类型,所有这些驱动程序类型都可从打印机制造商处获得。Windows 2000 及更新版本所附带的 inbox 驱动程序也由打印机制造商提供,并经许可才能分发。Microsoft 为 Windows 2000、Windows XP 和 Windows Server 2003 提供的所有驱动程序均为 Unidrv 或 PostScript 微型驱动程序,并且在所有这些平台上都可兼容。
独立硬件供应商 (IHV) 还提供了 Windows CD 所没有附带的微型驱动程序。
如果能够认识到各种打印机驱动程序间的差异,就会更清楚地了解混合与匹配驱动程序如何导致网络打印环境出现问题。因为 Windows NT 4.0 只能运行内核模式打印驱动程序,而 Windows 2000 和 Windows Server 2003 可同时支持用户模式和内核模式驱动程序,解决不兼容问题有时牵涉到修改运行 Windows 2000 或 Windows Server 2003 的服务器,以便匹配 Windows NT 4.0 服务器。
升级到 Windows 2000 Server 或 Server 2003 系列操作系统
从 Windows NT 4 Server 升级到 Windows 2000 或 Windows Server 2003 之前,许多 IHV 都建议卸载所有 IHV 打印机驱动程序,并对 Windows 2000 和 Windows Server 2003 系列操作系统重新安装有关打印机驱动程序的最新版本。Microsoft 推荐用户使用 Fixprnsv.exe 实用工具,其位于 Windows Server CD 上的 \Printers\Fixprnsv 目录。此实用工具可帮助在升级前确定已知的不良驱动程序,并用兼容的驱动程序取而代之。如果 Windows CD 上没有可供替代的驱动程序,那么该实用工具会提示用户从打印机制造商那里获取经过更新的驱动程序。Microsoft 推荐用户按照 IHV 的指示更新系统上的打印驱动程序,然后运用 Fixprnsv.exe 实用工具定位可能在升级期间产生问题的其他打印驱动程序。
下面几节将介绍如果在升级到 Windows 2000 或 Windows Server 2003 系列操作系统之前没有卸载驱动程序可能发生的情况。
驱动程序的升级过程
从 Windows NT 4.0 升级到 Windows 2000 或更新版本时,可能会发生许多与打印机驱动程序有关的情况。本节对每一种情况都进行了介绍。
Windows NT 4.0 操作系统附带的 inbox 驱动程序(PCL 和 PostScript)都被升级到 Windows 2000 或 Windows Server 2003 系列操作系统的新版驱动程序。(将 Windows 2000 Server 升级到 Windows Server 2003 系列操作系统也会发生同样的替代/更新状况。)
驱动程序型号名与 Windows 2000 或 Windows Server 2003 系列操作系统的驱动程序名称完全匹配的 IHV 驱动程序(PCL 或 PostScript)会在不受用户干涉的情况下升级到 inbox 驱动程序。
不使用因稳定性因素而被阻止的驱动程序。在升级期间,使用这些驱动程序的打印机会被移除。如果某台打印机直接到一台计算机并拥有一个可识别的即插即用 ID,那么 Windows 会为其搜索一个合适的驱动程序。如果找到了合适的驱动程序,该打印机会在升级期间作为新的打印机进行安装。
未被阻止并且不存在名称匹配的驱动程序将在整个升级期间保持不变。
Windows NT 4.0 Inbox 驱动程序
在升级过程中,所有 Windows NT 4.0 PCL 驱动程序 (RASDD) 都将被升级到最新的 Unidrv 驱动程序。(UNIDRV5 用于 Windows 2000,而 UNIDRV5.1 则用于 Windows Server 2003 系列操作系统。)Windows NT 4.0 所附带的 PostScript 驱动程序在 Windows 2000 或 Windows Server 2003 系列操作系统中,分别被升级到 PostScript 5.0 版或 PostScript 5.2 版。5.0 和 5.2 版都支持 PostScript 级别 1、2 和 3.
Windows 2000 Inbox 驱动程序
所有 Windows 2000 inbox 驱动程序也将被更新为 Windows Server 2003 版本。
注意:更改过的驱动程序(更新为具有新名称的驱动程序)不再与先前在原始服务器上所用的其他驱动程序相关联。(其他驱动程序为那些通过“打印机”对话框中的“其他驱动程序”选项添加的驱动程序。)配置完运行 Windows 2000 或更新版本的打印服务器之后,需要相应地重装其他驱动程序——比如:Windows NT 以及 Windows 95、Windows 98 和 Windows Millennium Edition 客户端的驱动程序。其他驱动程序的关联按照每个型号执行,所以只需每次对一个型号的驱动程序(而非打印机队列)安装这些下层驱动程序。
名称匹配的 IHV 驱动程序
如果驱动程序型号名与现有的 Windows NT 4.0 驱动程序名称相匹配,那么 IHV Windows NT 4.0 驱动程序将在不受用户干涉的情况下升级到 Windows 2000 或 Windows Server 2003 系列操作系统驱动程序。
在这种情况下,IHV 驱动程序将被当作 Microsoft 驱动程序一样对待。鉴于指向和打印 (Point and Print) 环境中 Windows 2000 驱动程序和 Windows NT 4.0 驱动程序间的交互问题,许多 IHV 建议在升级后重新加载他们的 Windows NT 4.0 驱动程序。这一问题适用于计划在 Windows NT 与 Windows 2000、Windows XP 和 Windows Server 2003 系列操作系统间使用指向和打印功能的用户。(更多信息及可支持的配置,请参阅本文后面的“Windows 2000 的指向和打印功能”。)
被阻止的 IHV 驱动程序(需要用户干预)
Microsoft 设计了自 Windows NT 4.0 进行升级的途径,因而要是新操作系统有更新的驱动程序可用,旧驱动程序就会被替代。如果 Windows 找不到更新的驱动程序版本,并且未能确定该驱动程序存在任何与 Windows 2000、Windows XP 或 the Windows Server 2003 系列操作系统有关的已知问题,将使用现有的驱动程序。
Printupg.inf 系统文件中保存有一个已知存在问题的驱动程序列表。此列表中的驱动程序不会在安装操作系统时被升级。相反,必须安装来自 IHV 的更新的驱动程序版本,或者从 Windows 2000(及 Windows 的更新版本)附带的 inbox 驱动程序中选择的备用驱动程序。Printupg.inf 中的信息有助于确定来自 IHV 的新版驱动程序是否被阻止。另外,Fixprnsrv.exe 实用工具可用于将已知的不良驱动程序替换为 inbox 驱动程序(如果可用的话)。要是无法定位和安装兼容的驱动程序,Fixprnsv.exe 就会报告这一情况,并提示用户访问 IHV 网站。通过在升级前运行 Fixprnsv.exe,就可以确定需要在升级时移除的打印机,从而避免发生服务突然中断的情况。
注意:驱动程序被阻止是因为 Microsoft 通过测试确定其会使操作系统变得很不稳定,或者因为 IHV 根据自身的测试和可用的更新要求将其阻止。
未被阻止的 IHV 驱动程序(无需用户干预)
某些 Windows NT 4.0 驱动程序不会被阻止,并且不与任何 inbox 驱动程序的名称相匹配。这些驱动程序在升级过程中不会被更改或替换。Microsoft 建议用 Fixprnsv.exe 实用工具确定应加以替换的驱动程序。对于未被阻止的驱动程序(因为其不在 Printupg.inf 文件中或驱动程序的日期晚于 Printupg.inf 所列的日期),Fixprnsv.exe 将不与干涉。
迁移到 Windows 2000
与上一节(讨论了打印服务器升级)不同,本节介绍了部署全新(替代)Windows 2000 或 Windows Server 2003 打印服务器以替换现有的 Windows NT 4 或 Windows 2000 打印服务器的常见操作。鉴于此处的讨论目的,迁移过程可用于替代打印服务器(将打印机从旧服务器转移到新服务器)或强化打印服务器(将打印机从多台打印服务器转移到单台打印服务器)。管理员有两种主要方法可将打印机从一台 Windows 打印服务器转移到另一台服务器:手动或自动。(也可以执行半自动化的打印机迁移。有关内容将在下面几节予以介绍。)
手动打印服务器迁移
手动迁移过程非常简单明了。在现有的 Windows 打印服务器上记录当前的打印环境(即端口、打印机名称、共享名、驱动程序型号和版本等等)后,就可以使用“添加打印机向导”在新的 Windows 2000 打印服务器上手动重建各台打印机。这种方法的优点是:用户可以使用最新的公司标准(比如命名标准)和最新的可用驱动程序版本创建所有队列。而这种方法最大的缺点在于:处理大型打印环境时非常耗时,并且比自动化方法更易出错。
自动打印服务器迁移
Microsoft 开发了一个名为 Print Migrator(打印迁移程序)的实用工具。在该实用工具的前两个版本中,只要两台服务器都使用相同的操作系统,就可将打印机从其中一台服务器转移到另一台服务器。而在第 3 版中,将增加下列主要功能:
跨平台支持:Print Migrator 3 允许用户将打印机从 Windows NT 4 打印服务器转移到 Windows 2000 或 Windows Server 2003 打印服务器。
群集支持:用户可以将打印机从独立的 Windows NT 4 或 Windows 2000 打印服务器迁移到运行 Windows 2000 或 Windows Server 2003 的群集打印服务器。
LPR 端口转换:在执行备份和还原操作时,用户可以将 LPR 端口转换为标准 TCP/IP 打印机端口。
显而易见,自动备份和还原打印机的速度更快且更加精确。但是请注意,打印机是在没有更改驱动程序版本的情况下迁移到 Windows 2000 或 Windows Server 2003 的,这一点很重要。也就是说,Windows NT 4.0 打印服务器上原先使用的驱动程序在 Windows 2000 或 Windows Server 2003 上被创建为内核模式(第 2 版)驱动程序。同时还保留了 Windows 2000 所用的内核模式驱动程序。正如本文后面的“指向和打印”一节所详细介绍的,这个过程对可能仍在使用来自服务器的打印服务的旧式 (Windows NT 4) 客户端提供了极高的互操作性。
注意:
有关 Print Migrator 3.0 的功能和局限性的更多信息,请参阅相关的产品文档。
可通过 Microsoft 打印服务器网站获取 Print Migrator 3.0.参见后面的“相关链接”一节,了解其他信息。
半自动服务器迁移方法
管理员可通过结合使用手动和自动方法来迁移打印机。有一些受 Windows 2000、Windows XP 和 Windows Server 2003 支持的脚本操作可执行部分必要的任务。这些脚本在 Windows 资源工具包中有所描述。
Windows 2000 的指向和打印功能
本节介绍指向和打印 (Point and Print) 功能,阐述了安装打印机驱动程序和共享打印机以实现指向和打印的具体方法,并讨论了有关使用指向和打印功能的问题。
运用打印机驱动程序及指向和打印功能
指向和打印功能允许 Windows 用户创建到远程打印机的连接,而不必提供磁盘或其他安装媒体。所有必要的文件和配置信息都从打印服务器自动下载到客户端。
与打印服务器使用相同驱动程序体系结构的客户端不要求在打印服务器上安装其他任何驱动程序以获得完全支持。其他客户端要求用户在打印服务器上安装适当的驱动程序,以便在连接时自动下载更新。例如,对共享打印机使用第 3 版(用户模式)驱动程序的 Windows 2000 打印服务器不要求安装任何其他驱动程序,以对运行 Windows 2000 和更新版本的客户端提供完全的指向和打印支持,因为这些客户端也支持第 3 版驱动程序。然而,为了向 Windows NT 4.0 客户端提供第 2 版驱动程序,Windows 2000 打印服务器要求安装适当的第 2 版驱动程序(可通过“其他驱动程序”进行安装)。其他平台体系结构(比如:Intel x86、Intel IA64 或 Alpha)也要求安装特定的驱动程序。有关网络打印(包括指向和打印驱动程序安装)的更多信息,请参阅 Windows Server 资源工具包。
通常,客户端可采用四种指向和打印方法连接到运行 Windows 2000 或更新版本的打印服务器所承载的共享网络打印机:
UNC 路径从“开始”菜单,选择“运行”,键入 \\PrintServer\Printer,然后单击“确定”。
添加打印机向导。在向导中选择“网络打印机”,然后指定共享打印机的路径。
拖放。使用 Net View 或“开始”菜单中的“运行”命令,查看远程打印服务器上的共享打印机;例如:\\PrintServer.然后将所要的打印机图标拖入本地工作站 Printers & Faxes 文件夹。
双击。在“运行”中使用上述 Net View 命令查看共享打印机,然后双击共享打印机图标来安装打印机。
注意Windows 2000 及更新版本的操作系统也支持用于打印机安装和配置的命令行和脚本界面,比如:PRNADMIN.DLL 或任何使用 Windows Management Instrumentation (WMI) 打印提供程序的 Microsoft Visual Basic 脚本。有关详细信息,请参阅 Windows Server 资源工具包。
从 Windows 2000 Professional 到 Windows 2000 Serv 12下一页 |