
局域网打印机共享中连接受限问题.docx
4页1局域网打印机共享中连接受限问题摘 要:解决局域网中网上邻居共享打印机无法连接,服务器登录无访问权限的问题具体针对客户端计算机一直打开服务器的 spoolss 文件并建立持续会话连接而无法断开的问题,提供参考解决方法关键词:网上邻居;共享打印机;无访问权限;\PIPE\spoolss局域网打印机共享除采用专用打印机服务器共享外,另一种比较普遍的方法就是采用网上邻居然而,非服务器系统的网上邻居共享却一度出现很多让人棘手的问题,以致百度一下就有很多关于“网上邻居”的问题,尤其是关于“无法连接网上邻居”的问题本人也是最近折腾实验室共享打印机时遇到此问题,一直边思考边在网上找解决方法,但还是被折磨了好几天,不过也总算是解决了问题由于网上很多针对此问题的解决方案都近于重复,且无法最终解决我所遇到的问题故此,做一下总结,希望对大家在今后解决类似问题时能起到一定的借鉴作用废话不多说,直接讲问题问题背景实验室有一台 Cannon LBP-810 打印机,没有与之匹配的专用打印机服务器,但空闲电脑很多故,将此打印机通过 USB 连在一台空闲的 XP Pro SP3 系统的电脑上(以下简称服务器) ,然后通过网上邻居共享的方式共享给实验室其他二十多台计算机(以下简称客户端)提供打印服务。
客户端操作系统有 XP 的,也有 WIN7 的问题症状客户端连接打印机时常常无法连接打开网上邻居,双击服务器时,XP 系统客户端常提示“无访问权限,服务器连接数已达到最大…”等类似信息,WIN7 系统客户端也提示访问错误、网络位置不存在等信息(由于问题已解决,不好随便折腾实验室的共享打印机以重现问题,所以不记得准确的提示信息了) 双击服务器若能顺利打开,则在客户端计算机上打印正常双击服务器若提示上述无法连接的信息,则无法打印问题解决过程(此过程略显繁琐,想直接看解决办法的直接看总结 )一、 确认服务器连接数在服务器上运行命令 net config server,提示信息“登录的用户数量上限:10”这也就是说 XP 系统上允许同时连入的客户端为 10 个而实验室有二十多台客户端计算机,因而无法同时连上服务器所以,在使用时会出现有些客户端计算机能使用打印机,而有些则不能使用打印机在服务器上右击“我的电脑” ,点击“管理->系统工具->共享文件夹->会话” ,查看确实一直有 10 个会话连接,也就是说已经达到连接数的上限,所以其它客户端计算机会显示“无访问权限” 尝试解决方法:提升服务器允许登录的用户数量上限。
通过百度得知,XP 系统的用户数量上限是无法更改的;在 WIN7 系统上运行上述命令,显示允许同时连入的用户数量上限为 20;在远景论坛上询问得知 WIN8 系统允许同时连入2的用户数量上限也为 20这也就是说,即使系统升级到 WIN8 也无法解决实验室的网络打印机共享问题通过百度得知,服务器系统能支持的用户数量上限比较大,能达到 200 多故此,备用解决方案为采用服务器系统但从 cannnon 的支持得知, Cannon LBP-810打印机无服务器系统的驱动因而,换用服务器系统也无法解决实验室打印机共享问题二、 探究网上邻居的连接原理(高深的原理就不说了,很多我也没看太懂,下面只是根据网上的介绍结合所碰到的问题的个人理解 )通过网上搜索学习得知,网络邻居的连接采用会话连接的方式当客户端计算机向服务器发送连接请求时,会创建会话会话主要有两种,正常会话和空闲会话正常会话:是指我们打开网上邻居、打开服务器、访问共享文件夹,或者有打印需求时使用共享打印服务器,此时与服务器建立的会话均是正常会话空闲会话:是指我们在访问完共享资源关闭服务器的窗口后或打印结束后依然存在的会话连接此时的连接由于没有任何具体的会话请求,因而称为空闲会话。
由于实验室打印机的打印任务并不频繁,客户端也没有其它访问服务器的需求,从服务器的监控软件可以看到 10 个连接客户一般均在“IPC$”里面,而且打开的文件均为spoolss百度 “IPC$”为空会话不知道监控软件中的 IPC$是否是空会话的意思(空会话应该是不会有打开文件的吧) ,也不知道空会话是否为空闲会话姑且将此链接视为空闲会话,因为实验室确实没有谁的机子会一直有访问服务器的需求因此,按网上的方法输入下述命令将自动断开空闲会话的时间更改为 1 分钟:net config server /autodisconnect:1注:XP 系统和 WIN7 系统默认自动断开空闲会话的时间均为 15 分钟但没有任何效果, “空闲连接”依然一直保持着连接,连接时间达到 1 分钟并为被清除继续寻找解决方法既然自动断开连接不起作用,而又肯定那些连接是没有必要的连接,那就寻找强制断开连接的方法当然,从计算机管理中的会话里面能够手动断开所有连接但是,毕竟不能专门去安排个人看到有无用的连接时就手动断开连接所以,按照网上的方法,创建了计划任务计划任务执行一个批处理文件,批处理文件中的的命令如下:net session /delete /y该计划任务的作用就是断开所有会话连接,从每天早上 7:00 开始,每隔 15 分钟自动执行一次,持续时间 17 个小时(差不多就是实验室的工作时间吧) 。
计划任务设置好后,问题依旧如故服务器上还是总是有 10 个会话连接通过手动运行上述批处理文件后,刷新会话连接显示,在断开后,会话连接是会全部被断开,但是,一直刷新显示,很快就又重新建立了 10 个会话连接重复操作亦如此而我可以肯定,此时并没有人使用打印机,也没有人访问共享资源另外,从前面自动断开空闲会话时间的设置未凑效来看,这 10 个连接应该不是空闲连接而是客户端计算机自动发出的会话连接通过观察发现,每天早上,随着实验室计算机的开启,服务器的会话连接会逐渐增多,并很快占满 10 个连接也就是说这些会话连接从计算机一开机就已经建立难道这是局域网打印机共享后的必然结果?无法改变?实在想不出为什么那么这些会话连接既然不太可能是空闲会话,那么到底在访问什么呢?突然想起监控软件中有显示这些会话客户正打开的文件(计算机管理中的共享文件夹下面也能看到) 仔细一看,居然所有的计算机打开的文件都是 spoolss这个文件名给我的第一映像就是与打印机有关那么第一猜测就是客户端计算机开机时可能会对已安装的设备(包含共享的打3印机)进行检测,或者在打开某些应用程序(如 Word)时会一直监测打印机状态如果这是系统的固有的任务的话,那么问题就麻烦了,很难解决了。
不管,还是先百度一下spoolss 是个什么东西,以及网上邻居会话中打开\PIPE\spoolss 到底是什么意思终于,找到了微软官方的解决方案(解决 Windows 对等工作组中服务器消息块入站连接限制的问题 ,高兴了一把,立马仔细研究了一下该解决方案可采用更改注册表的方法或采用配置组策略的方法,具体既是启用“网络访问:不允许 SAM 帐户和共享的匿名枚举” 设置完重启后,发现客户端计算机根本无法连接服务器(此时实验室只有两台客户端计算机还是开着的) 而恢复设置后即能顺利连接上服务器失望至极微软官方给的解决方法都没用了,那还能怎么解决后来仔细想想, “不允许共享的匿名枚举”那不就是直接拒绝了我们局域网中的共享访问吗因为,客户端都是采用匿名访问的方式的这就相当于告诉所有客户端,既然你们总是有 10 个客户端占用了连接,而且打开了 spoolss 文件,那就都不要连了,你们就不会碰见 10 个客户端总是占用会话打开 spoolss 的问题了这就是微软的官方解决思路,真失望!三、探究打印机驱动问题晚上睡觉想了想既然是客户端一开机就连接,那解决问题还是应该从客户端计算机入手spoolss 不是与打印机有关吗,那就直接咨询 cannon 的客服。
排队等了一会,终于接入客服了可客服给的解决方法是,在客户端计算机上,每次打印的时候,将共享打印机设置正确的端口,不打印的时候设置成其他的端口这个方案没有试,即使可以未免也太麻烦了吧还是在网上不断的搜呀找呀,不断的换关键词找,找了几天了,大多都是重复的和不相干或者不能解决我的问题的终于看到了一个论坛的帖子( php?action=printable&tid=294661)底下有条回复“……问题主要出在打印机驱动程序上某些打印机驱动程序很傻的在用户的驱动组里加了打印状态程序,这个程序一直占着连接数,即使它空闲也不会释放连接数!(我指的是某些,似乎佳能的打印机就是这样 ) ”底下紧接着一个跟帖“非常感谢楼上,没错,就是接的佳能 810 打印机” 这下貌似终于看到一线希望了立马通知所有客户端退出“打印状态程序”,并确保结束相关的进程服务器上强制断开连接,再刷新显然,问题就在这服务器上就一直显示的是两个会话连接了(这两个客户端尚未结束进程) 测试了一下退出“打印状态程序”的情况下打印也正常打印时,服务器上显示新建了一个会话,打印结束并强制断开会话连接后,该会话就没有了这样一来,只要要求所有客户端禁止启动“打印状态程序” ,并配合前面已经建立的计划任务(每隔 15 分钟强制断开所有会话连接) ,问题就基本解决了。
至于打印之后,强制断开会话之前,会话是否为空闲会话还不知道,貌似过了一分钟该会话也没有自动断开,但偶尔刷新之后打开的文件数显示为 0这个就不纠结了,有兴趣的可以自己再测试吧在上述解决方法实施之前也参考了很多网上其它的方法,比方说在服务器上开启某些服务(很多本来就已经开启的) ,启用 Guest 账户等但我想问题的主要原因还是客户端机子上不断产生的会话请求吧总结上面废话了这么多,其实我所遇到的问题的原因和解决方法都很简单原因:(1)客户端安装的共享打印机驱动中带了“打印机状态监测 ”的程序,随着客户端开机之后,它就一直监测连接在服务器上的打印机的状态;(2)XP 系统服务器允许登录的用户数量上限是 10 个,而这 10 个会被每天早上前 10 个开机的客户端一直占用所以,4其它客户端计算机无法登录和连接共享打印机解决方法:(1)在客户端上禁止打印机驱动中的这个“打印机状态监测 ”程序的启动;(2)在服务器上创建计划任务定时(定时时间根据打印机任务频繁程度自己决定吧)强制断开所有连接就这样问题就解决了注:计划任务批处理文件命令net session /delete /y后记毕竟,网上邻居共享打印机在 PC 用户群中还是占少数的,遇见跟我完全相同问题的可能就更少,以至于网上几乎很难找到一个完整的解决方案。
甚至看到很多老外也在纠结这个问题,而且跟帖中是一个接一个的老外在寻求答案不过不知他们的问题是否跟我遇到的问题完全相同不过我也已经固执地纠结着这个问题好几天了,懒得翻译成英文了耽误了很多的工作时间罪过!罪过!2012.08.23。












