今天某单位信息中心的一个朋友向我咨询,在安装了某安全产品后,单位的共享打印机都不能使用了(找不到网络打印机)。单位的计算机是Windows 7
或Windows XP
,在安装该安全产品前共享打印机是可以使用的。后来在测试计算机上全新安装Windows 7
或Windows XP
,安装该安全产品后共享打印机能使用。如果重新安装操作系统应该能解决,但单位有几十个部门都在使用共享打印机,重新安装系统的方法不行。我想,在Windows 2003
与Windows 2008
中都提供了“Internet
打印”
功能,但Windows XP
、Windows 7
、Windows 8
都没有这个功能,可以将服务器版本的“Internet
打印”
组件提取出来复制到Windows XP
、Windows 7
等系统中使用。经过一番尝试,测试成功。
以下为正文
在单位或家庭中经常用到“共享打印机”,例如一个办公室或者一个家庭,几个人共用一台打印机。传统的方式是使用“文件和打印机”中的“打印机共享”,但这种方式有以下几点不足:
(1)从Windows XP开始,Microsoft修改了系统的策略,默认禁止使用Guest用户,并且限制使用空白密码的用户只能进行控制台登录。
(2)这样就导致,如果每台计算机的帐户使用了空白密码,那么必须修改组策略才能使用打印机共享。如果不使用空白密码,要每次开机都能访问共享打印机,则需要这些计算机使用同名、同密码用户。
(3)一些安全产品(例如防火墙或防病毒软件)默认会关闭“文件和打印机共享”相关的端口,必须修改安全产品的策略。但某些产品会造成冲突。
在服务器版本的Windows系统中(Windows Server 2003/2008/2012)都提供了“Internet打印”服务,该使用使用IIS实现。“Internet打印”具有如下的优点:
(1)Internet打印只需要使用TCP的80端口,安全产品一般不会封杀80端口。
(2)使用“Internet打印”服务时,客户端安装共享打印机很方便。
(3)使用Internet打印不需要修改系统策略,可以使用Windows 7、Windows XP系统的安全规则。
下面介绍提取Windows 2003、Windows 2008中“Internet打印”服务组件并添加到Windows XP、Windows 7中的方法。
【说明】虽然在Windows 2003中提供的“Internet打印组件”可以用于Windows 7,但最好还是只用于Windows XP;而从Windows Server 2008中提取的“Internet打印组件”再用于Windows 7、Windows 8。
1从Windows 2003/2008中提取Internet打印组件
在Windows Server 2008中安装“Web服务器”及“打印服务”,然后在IIS管理中,查看打印服务相关的组件及配置,记录并复制相关的文件。
(1)在Windows Server 2008中,添加角色“Web服务器(IIS)”及“打印服务”,如图1-1所示。
图1-1 添加角色服务
(2)安装之后,打开“Internet信息服务管理器”,发现添加了一个名为“Printers”的虚拟目录,该目录保存在“c:\windows\web\printers”中,如图1-2、图1-3所示。
图1-2 添加的打印服务目录
图1-3 虚拟目录保存位置
然后从c:\windows\web\文件夹中复制printers文件夹备用。
(3)在“printers”虚拟目录中,在“处理程序映射”中,查看新添加的映射,如图1-4所示。
图1-4 查看处理程序映射
(4)发现有一个*.printer的处理脚本,如图1-5所示。然后用鼠标双击这一条。
图1-5 Internet服务添加的处理程序映射
(5)在打开的“编辑脚本映射”中记录下请求路径、对应的可执行文件名称,如图1-6所示。然后从c:\windows\system32\文件夹中复制msw3prt.dll备用。
图1-6 查看处理程序及对应保存位置
之后将第(2)、(5)步复制的printers文件夹及msw3prt.dll文件到U盘或其他位置,该程序将可以用于Windows 7、Windows 8的IIS。
2在Windows 7中安装Internet打印服务
在准备提供打印机共享的主机上,安装Internet打印服务,以Windows 7为例进行介绍。
在Windows 7中安装“Internet信息服务”,然后将上一节复制的文档拷贝到Windows 7的计算机中,参照上一节内容添加虚拟目录及脚本处理程序,步骤如下。
(1)在Windows 7中,在“控制面板→程序”中单击“打开或关闭Windows功能”,如图1-7所示。
图1-7打开或关闭Windows功能
(2)在“打开或关闭Windows功能”对话框中,添加“IIS管理控制台”、“万维网服务→安全性→基本身份验证”、“常见HTTP功能”、“应用程序开发功能”组件,如图1-8所示。
图1-8添加IIS服务
(3)将上一节中的printers复制到c:\intepub\wwwroot目录中,如图1-9所示。
图1-9复制printers文件夹
(4)复制msw3prt.dll到c:\windows\system32文件夹中,如图1-10所示。
图1-10 复制dll文件
(5)在“管理工具”中执行“Internet信息服务(IIS)管理器”,如图1-11所示。
图1-11 运行IIS管理器
(6)为printers添加“默认文档”,名称为ipp_0001.asp,如图1-12、图1-13所示。
图1-12 默认文档
图1-13 添加默认文档
(7)双击“处理程序映射”,如图1-14所示。
图1-14 处理程序映射
(8)单击“添加脚本映射”,如图1-15所示。
图1-15 添加脚本映射
(9)在“请求路径”处输入*.printer,可执行文件处输入c:\windows\system32\msw3prt.dll,名称随意例如输入print,然后单击“确定”按钮,如图1-16所示。
图1-16 添加脚本映射
(10)在弹出的“添加脚本映射”对话框中单击“是”按钮,如图1-17所示。
图1-17 确认添加
然后按照“文件和打印机共享”的方式,将这台计算机上安装的打印机设置为“共享打印机”,共享名称任意。
3使用Internet打印服务
在没有安装本地打印机、需要使用网络打印机的计算机上,在IE浏览器中,输入
http://提供共享打印服务的主机IP地址或计算机名称/printers,浏览并连接打印机,主要步骤如下(假设提供打印共享服务的计算机IP地址为10.10.10.102。
(1)在IE浏览器中输入http://10.10.10.102/printers并按回车键,浏览打开目标服务器上提供的共享打印机,并单击要连接的打印机名称,如图1-18所示。
图1-18 选择要连接的打印机
(2)在“属性”选项中,可以在“网络名”后面看到要连接的共享打印机的名称,可以将其复制下来。如果你的计算机已经安装了该打印机的驱动程序,可以单击左下角的“连接”,直接连接该共享打印机,如图1-19所示。
图1-19 连接共享打印机
(3)之后会开始安装并提示安装成功,如图1-20所示。
图1-20 开始安装
(4)如果提示“打印机安装失败”(如图1-21所示),表示你的计算机没有提前安装该打印机的驱动程序,或者你的系统中没有集成该打印机的驱动程序,或者表示你的系统与服务器端版本不一致(例如你的系统是64位而服务器端是32位,反之亦然),此时你需要手动添加共享打印机。
图1-21 安装打印机驱动失败
下面介绍手动连接共享打印机的方法,步骤如下。
(1)在“设备和打印机”中单击“添加打印机”,如图1-22所示。
图1-22添加打印机
(2)在“添加打印机”对话框中单击“我需要的打印机不在列表中”链接,如图1-23所示。
图1-23 添加打印机
(3)在“按其他选项查找打印机”,单击“按名称选择共享打印机”,输入图1-19中复制的打印机的网络地址,本示例为“http://10.10.10.102/printers/LQ1600/.printer”,然后“下一步”按钮,如图1-24所示。
图1-24 输入共享打印机地址
(4)此时会弹出 “添加打印机向导”对话框,手动添加打印机的驱动程序。如果操作系统支持该打印机,请在“厂商”列表中选择,如果不支持,请提供安装驱动,单击“从磁盘安装”按钮(如图1-25所示),选择驱动程序文件夹开始安装,这些就不再介绍。
图1-25 安装打印机驱动
添加之后即可使用。