局域网打印机共享中连接受限问题
局域网打印机共享中连接受限问题
摘  要:解决局域网中网上邻居共享打印机无法连接,服务器登录无访问权限的问题。具体针对客户端计算机一直打开服务器的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系统允许同时连入的用户数量上限也为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。这个文件名给我的第一映像就是与打印机有关。那么第一猜测就是客户端计算机开机时可能会对已安装的设备(包含共享的打印机)进行检测,或者在打开某些应用程序(如 Word)时会一直监测打印机状态。如果这是系统的固有的任务的话,那么问题就麻烦了,很难解决了。不管,还是先百度一下spoolss是个什么东西,以及网上邻居会话中打开\PIPE\spoolss到底是什么意思。
终于,到了微软官方的解决方案(解决 Windows 对等工作组中服务器消息块入站连接限制的问题support.microsoft/kb/328459/zh-cn),高兴了一把,立马仔细研究了一下。该解决方案可采用更改注册表的方法或采用配置组策略的方法,具体既是启用“网络访问:不允许 SAM 帐户和共享的匿名枚举”。设置完重启后,发现客户端计算机根本无法连接服务器(此时实验室只有两台客户端计算机还是开着的)。而恢复设置后即能顺利连接上服务器。失望至极。微软官方给的解决方法都没用了,那还能怎么解决。后来仔细想想,“不允许共享的匿名枚举”那不就是直接拒绝了我们局域网中的共享访问吗。因为,客户端都是采用匿名访问的方式的。这就相当于告诉所有客户端,既然你们总是有10个客户端占用了连接,而且打开了spoolss文件,那就都不要连了,你们就不会碰见10个客户端总是占用会话打开spoolss的问题了。这就是微软的官方解决思路,真失望!
三、探究打印机驱动问题
晚上睡觉想了想。既然是客户端一开机就连接,那解决问题还是应该从客户端计算机入手。spoolss不是与打印机有关吗,那就直接咨询cannon的客服。在线排队等了一会,终于接入了。可客服给的解决方法是,在客户端计算机上,每次打印的时候,将共享打印机设置正确的端口,不打印的时候设置成其他的端口。这个方案没有试,即使可以未免也太麻烦了吧。
还是在网上不断的搜呀呀,不断的换关键词,了几天了,大多都是重复的和不相干或者不能解决我的问题的。终于看到了一个论坛的帖子(bbs.pcbeta/viewthread. php?action=printable&tid=294661)底下有条回复“……问题主要出在打印机驱动程序上。某些打印机驱动程序很傻的在用户的驱动组里加了打印状态程序,这个程序一直占着连接数,即使它空闲也不会释放连接数!(我指的是某些,似乎佳能的打印机就是这样。)”底下紧接着一个跟帖“非常感谢楼上,没错,就是接的佳能810打印机”。这下貌似终于看到一线希望了。立马通知所有客户端退出“打印状态程序”,并确保结束相关的进程。服务器上强制断开连接,再刷新。显然,问题就在这。服
务器上就一直显示的是两个会话连接了(这两个客户端尚未结束进程)。测试了一下退出“打印状态程序”的情况下打印也正常。打印时,服务器上显示新建了一个会话,打印结束并强制断开会话连接后,该会话就没有了。
这样一来,只要要求所有客户端禁止启动“打印状态程序”,并配合前面已经建立的计划任务(每隔15分钟强制断开所有会话连接),问题就基本解决了。
至于打印之后,强制断开会话之前,会话是否为空闲会话还不知道,貌似过了一分钟该会话也没有自动断开,但偶尔刷新之后打开的文件数显示为0。这个就不纠结了,有兴趣的可以自己再测试吧。
电子商务是干什么的在上述解决方法实施之前也参考了很多网上其它的方法,比方说在服务器上开启某些服务(很多本来就已经开启的),启用Guest账户等。但我想问题的主要原因还是客户端机子上不断产生的会话请求吧。
总结
上面废话了这么多,其实我所遇到的问题的原因和解决方法都很简单。
flash动画制作学习原因:(1)客户端安装的共享打印机驱动中带了“打印机状态监测”的程序,随着客户端开机之后,它就一直监测连接在服务器上的打印机的状态;(2)XP系统服务器允许登录的用户数量上限是10个,而这10个会被每天早上前10个开机的客户端一直占用。所以,其它客户端计算机无法登录和连接共享打印机。
解决方法:(1)在客户端上禁止打印机驱动中的这个“打印机状态监测”程序的启动;(2)在服务器上创建计划任务定时(定时时间根据打印机任务频繁程度自己决定吧)强制断开所有连接。就这样问题就解决了。
战争小说
注:计划任务批处理文件命令
net session /delete /y
后记
毕竟,网上邻居共享打印机在PC用户中还是占少数的,遇见跟我完全相同问题的可能就更少,以至于网上几乎很难到一个完整的解决方案。甚至看到很多老外也在纠结这个问题,而且跟帖中是一个接一个的老外在寻求答案。不过不知他们的问题是否跟我遇到的问
题完全相同。不过我也已经固执地纠结着这个问题好几天了,懒得翻译成英文了。耽误了很多的工作时间。罪过!罪过!
2012.08.23

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。