那台 HP LaserJet 1020,比我工龄还长
我们办公室有一台 HP LaserJet 1020,机身发黄,出纸口那道塑料边已经磨圆了,铭牌上的字要用手指摸才认得出。这台机器是 2006 年买的,比我进公司还早六年,一天打印两百页左右,除了偶尔卡纸,居然一直没坏。它身上只有一个方口 USB,没有网口,也没有无线,所以只能挂在一台电脑上,谁要打印就得让那台电脑开着。
挂着它的电脑换过三次。最早是前台那台联想启天,装 Windows 7 三十二位,后来主板电容爆了,换成一台二手戴尔,还是 Win7。今年年初那台戴尔的硬盘开始有异响,我索性把库房一台闲置的 i3 机器搬出来,装了 Windows 10 专业版,版本是 1909,内存只有 4G,开机两分钟。
换机器那天我以为半小时能搞定,装驱动、插 USB、点共享,完事。结果从上午十点折腾到下午四点半,中间还错过了一顿午饭。这篇就按那天的顺序写,哪一步白费了我也照实说,省得有人重走一遍。
先把环境说清楚:路由器是普通家用那种,网关是 192.168.1.1,网段就是常见的一百段。整个办公室六台电脑,一台 Win7,四台 Win10,我自己那台是 Win11 的笔记本。打印机挂在 Win10 那台上,那台机器我后面就叫它主机。
先把 IP 钉死,别让它到处跑
这台主机原来是自动获取 IP,路由器重启一次地址就可能变。共享打印机靠地址找人,地址一变,所有人第二天都连不上,回头就来问我是不是又坏了。所以我做的第一件事是给它固定 IP,定成 192.168.1.201,避开路由器自动分配的池子。
设置的位置在控制面板、网络和共享中心、更改适配器设置,右键以太网、属性、Internet 协议版本四。IP 填 192.168.1.201,子网掩码 255.255.255.0,网关 192.168.1.1,DNS 填路由器的地址和 114.114.114.114。填完点确定,网络会断一下再恢复,正常。
固定 IP 之前一定要先 ping 一下这个地址有没有人用。我图省事没 ping,设完发现跟一台网络摄像头撞了,两边都时断时续,打印机打一半不动,摄像头画面花屏。查了四十分钟才想到是地址冲突,把摄像头改到 210 就好了。
顺手把主机名也改了,原来叫 DESKTOP 加一串随机字符,我改成 OFFICE-PRINT,好记。改完要重启,重启之后工作组里能看到这个名字,后面别人找起来方便很多。
还有一个电源设置,主机的睡眠要关掉。打印机共享靠主机在线,主机一睡,别人点打印就报错。我把电源计划里的睡眠改成从不,显示器可以关,硬盘和网络不能断。这一条最容易被忽略,尤其是换新机器之后默认设置又回去了。
共享开出来只是第一步
驱动装好,测试页打出来一张,字迹清楚。接着右键打印机、打印机属性、共享选项卡,勾上共享这台打印机,共享名我用了 HP1020,全大写,短,好输。系统提示要不要改网络设置,我点了是,它自动开了网络发现和文件打印机共享。
共享名里别用中文和空格,这是我吃过亏的。之前有一次共享名写了 前台打印机,结果在别的机器上添加的时候怎么都找不到,改成英文立刻就好。后来我索性所有共享名都用大写字母加数字,不给自己找麻烦。
还要看一眼打印机属性里的端口。HP 1020 是 USB 接口,端口显示的是 USB001 那种虚拟端口,这个不用动。我见过有人手贱把端口改成 IP 端口,打印机直接离线,还以为是驱动坏了,重装了三遍。
共享权限那块,默认是 Everyone 可以打印,我一般不动它。真要限制,在安全选项卡里加用户,把打印权限给出去,管理打印机那项别给。办公室里都是同事,我没那么严格,但财务那台机器连着工资表,我还是单独收了一下权限。
做完这些,我在自己机器上试着添加,能看见也能连上,心里还挺美。真正的麻烦是后面五个人轮流来试的时候才冒出来的,每个人报的错还不一样,有的根本连不上,有的连上了打不出来。
有台机器显示已连接,点打印却一直排队,状态栏写着错误、正在打印。我起初以为是驱动问题,前后换了三版驱动都没用。后来把打印服务停掉,进系统盘的 spool 缓存目录,把里面残留的打印任务文件全删了,服务再启动,积压的几十个任务一下子清空,第一张纸才吐出来。那次之后我养成习惯,谁报打了没反应,先看队列,再看服务。
端口这块也得说。Win10 默认喜欢用 WSD 端口自动发现,名字长得像一串乱码,机器重启或者路由器换了之后经常失联。我后来统一改成标准 TCP/IP 端口,直接填那台主机的固定地址,端口名自己起个看得懂的,比如前台主机。改完打印机列表里那台设备就老实了,不用每次等它慢慢搜索。这个改动看着小,省下的解释时间不少。
还有默认打印机自己乱跳的事。办公室五台机器共用两台打印机,谁装个虚拟打印机,默认项就被抢走,同事打出来的单子进了 PDF 文件,人还站在打印机前面等。我的处理是进设备和打印机,把让 Windows 管理默认打印机那个勾去掉,再手动指定。缺点是换位置要自己改,好处是不会莫名其妙打错地方。
别笑,我还遇过一次压根不是软件问题。那台主机的网线被保洁阿姨拖地时碰松了,水晶头卡扣断了一半,插着看着挺稳,实际一碰就掉。表现就是别人时连时断,我 ping 过去丢包三成。换了根网线,一切恢复正常。所以现在我排故障的顺序里,物理连接排在很前面,先看灯,再看线,省得在系统里绕圈。
Win10 和 Win11 的网络发现不是一个逻辑
Win7 那台老机器最顺利,打开网络,看见 OFFICE-PRINT,双击,装驱动,两分钟搞定。它用的是 SMB1 那套老协议,Win10 主机这边为了它,我还得把 SMB1 客户端和服务端都打开,在启用或关闭 Windows 功能里勾上,重启。
两台 Win10 的机器,网络里压根看不见主机。我一开始以为是网络发现没开,去每台机器上检查,发现都开着。后来才明白,Win10 1803 之后默认关掉了 SMB1,而网络浏览这块老功能还依赖它,所以列表是空的,但直接输地址其实是通的。
验证的办法很简单,在文件资源管理器的地址栏里直接敲两个斜杠加 192.168.1.201,回车,能看见共享的 HP1020,就说明网络是通的,只是发现不了。这一步我建议所有人都先做,能省掉一大半瞎猜。
我那台 Win11 更麻烦一点。22H2 之后,不安全的来宾登录默认禁止,连匿名访问共享都会被拒。这个设置在本地安全策略里,叫网络安全、LAN 管理器身份验证级别那一组,我把它调成了发送 LM 和 NTLM,允许回退。调完注销一次才生效。
说到这我得承认,那天我在这上面绕了很久,因为 Win11 的报错跟 Win10 完全不一样,它不说找不到,它说无法访问,你可能没有权限使用网络资源。这句话太笼统了,我一开始往权限上想,查了半天共享权限,其实压根没走到权限那一步。
Guest 关掉之后,凭据这关卡了一下午
网上很多老教程让你把 Guest 账户启用,说这样别人连共享就不用输密码。我没走这条路,原因有两个:一是公司那台机器上存着一些内部文件,Guest 一开等于门不锁;二是 Win10 之后 Guest 共享本身就被限制得厉害,开了也未必通,白折腾。
不开 Guest,就得用账号。问题是主机上只有一个本地账户,叫 print,密码是我随手设的一串。我在每台客户机第一次连的时候,弹窗要凭据,输 print 加密码,勾上记住我的凭据,能连上。麻烦在于重启之后有两次又弹了,说保存的凭据无效。
查下来是 Windows 的凭据管理器里存了旧的地址记录。控制面板、用户帐户、凭据管理器、Windows 凭据,里面有一条 192.168.1.201 的记录,删掉,重新连一次,再把密码存进去,就稳定了。这个操作我在三台机器上各做了一遍,做完之后再没弹过。
还有一个小细节:用户名要写 主机名加反斜杠加账户名,或者干脆写 192.168.1.201 加斜杠加账户名,光写 print 有时候认不出来,会跑到域上去找。我在前台那台机器上就遇到过,输 print 死活不对,加上主机名立刻就过了。
密码我后来改成了一个稍微长一点的,没告诉所有人,而是给每台机器单独保存。这样谁离职了,我改一次密码,他电脑上存的那份就失效。麻烦是麻烦,但办公室这种地方,能少一点事就少一点。
凭据存下来也不是一劳永逸。主机那边改过一次登录密码,其他机器存的旧凭据立刻失效,点开打印机就弹输入框,输新密码还提示不对,因为系统还在拿旧的去试。得进控制面板的凭据管理器,把 Windows 凭据里那条跟主机地址相关的删掉,重新连一次,勾上记住。这个操作我教过三个人,每个人第一次都要找半天。
共享权限和安全权限是两套东西,这点坑过我最久。共享标签里给了完全控制,安全标签里还是只读,结果就是能连上、能看到、打不出来,报拒绝访问。要在安全标签里把 Everyone 或者具体账户加进去,给读取和执行。两个地方都得对,缺一个都白搭。我第一次遇到时在共享标签里反复改,改了一小时才发现改错了地方。
还有账户密码为空的情况。主机用的是没设密码的本地账户,别的机器连过来会被组策略直接拦掉,提示凭据冲突。解决办法要么给主机账户设个密码,要么在组策略里把限制使用空白密码的本地账户那条改成禁用。办公室这种环境,我倾向直接设密码,简单,也不至于谁都能上那台机器翻文件。
工作组名字不一致也会出怪事。新买的一台笔记本默认工作组是 WORKGROUP,老机器却是 MSHOME,网络里互相看不见,但直接用地址访问又能通。这种半通不通的状态最磨人,你以为网络有问题,其实只是浏览列表没刷新。把工作组名统一,再把网络位置设成专用网络,列表就正常了。名字这种小事,出问题时真能耗掉一下午。
0x0000011b 这个错误码,让我查了半宿
折腾到下午三点多,四台机器里三台通了,剩下一台 Win10 1909,一点打印就弹窗,说无法连接到打印机,错误 0x0000011b。那台机器是出纳的,每天要打一堆回单,她站在我旁边看着我,我压力挺大。
这个错误码我后来查明白了,是 2021 年 9 月那批安全补丁改的。微软把打印后台的 RPC 认证级别提高了,原本走匿名或者低加密的连接被拒,于是客户端就报这个错。主机和客户机只要有一边装了那个补丁,另一边没装,就容易出。
网上流传的办法有两个。一个是卸载补丁,我不太愿意,那台机器还连着财务系统,补丁卸了别的地方可能出问题。另一个是在主机上改注册表,加一个叫 RpcAuthnLevelPrivacyEnabled 的项,值设成 0,再重启打印服务。我选的是后者。
注册表的位置在本地机器、系统、当前控制集、控制、打印这一串下面,路径是一层层点进去的,不是我记错。新建 DWORD 三十二位,名字照抄,值填零,确定。再去 services 里找到 Print Spooler,重启。重启打印服务大概十秒,期间所有打印任务会清空,我提前跟出纳说了别点打印。
改完再去那台机器上连,还是报错。我以为是注册表没生效,重启了主机一次,还是不行。后来发现客户机上那条旧的打印机连接还在,得先删掉再重新添加,因为错误状态被缓存了。删掉、重启、重新连,这一次通了,测试页出来的时候我看了眼时间,晚上七点二十。
顺便说一句,这个注册表改法等于把安全级别降回去了,属于权衡。内网环境我能接受,如果这台机器直接暴露在公网,我肯定不会这么干。写出来是给同样困在办公室里的人一个参考,不是说这是标准答案。
驱动装不上,别硬装
HP 1020 这机器太老,惠普官网给的驱动只到 Win7,六十四位的包在 Win10 上装会提示不兼容。我试过兼容模式,右键安装程序、属性、兼容性、以 Windows 7 模式运行,装是装上了,但打印出来全是乱码,纸上密密麻麻一堆符号。
后来换了个思路,用 Windows 自带的通用驱动。添加打印机的时候选 本地端口,厂商选 HP,型号列表里找 LaserJet 1020,系统会用内置的那个驱动。这个驱动功能少,没有状态监控,但打印正常,A4 文档出来挺干净。
客户机那边不需要单独装驱动,连共享的时候主机会把驱动推过去。但如果客户机是三十二位系统,主机的六十四位驱动推不过去,会提示需要额外的驱动程序。这种情况得在共享的 其他驱动程序 里提前把 x86 的包勾上,不然就得手动装。
我就被这个卡过一次。前台那台 Win7 是三十二位,连的时候一直提示找不到驱动,我在主机上点了 其他驱动程序,勾了 x86,塞进去一个 Win7 的驱动包,再连就顺利了。这个入口藏在打印机属性的共享选项卡里,按钮叫 其他驱动程序,字很小。
还有一次是驱动版本冲突。出纳那台机器原来连过另一台惠普,型号是 M1136,驱动装了一堆。再加 1020 的时候,系统自动选了 M1136 的驱动,打出来页面缩小了一半。删掉所有惠普打印机和驱动,重新来一遍才好。
真把我救出来的是最后这一招,说起来挺笨的。
不进网络邻居,也不管什么发现不发现,直接在客户端上按 Win 加 R 输入 control printers 打开设备和打印机,点添加打印机,选我需要的打印机不在列表中,再选使用 TCP/IP 地址或主机名添加打印机。设备类型选 TCP/IP 设备,地址就填 192.168.1.201,端口名它会自动给我补一个 IP 加地址,我一般手动改成 HP1020 好辨认。下一步选驱动的时候,如果系统列表里没有,就点从磁盘安装,把从惠普官网下回来的那个解压好的文件夹指进去,我用的是 LaserJet 1020 的 6.1.0.20047 那一版,文件名是 hplj1020 加 inf 后缀。这一步走完,端口就绕开了共享那一套,也绕开了凭据、来宾账户、445 端口这些麻烦事。
驱动这里还有个老实人容易忽略的坑。主机如果是六十四位的系统,共享出去的时候默认只带六十四位驱动,客户端里那些三十二位的老机器一连就报找不到驱动。解决办法是在主机的打印机属性里点共享,点其他驱动程序,把三十二位那一项勾上,再让它去要三十二位的安装包。单位的机房里还有两台装着 Win7 三十二位的机器,就是靠这一步才连上的。反过来说,如果客户端是六十四位而主机装的是三十二位驱动,情况会好一点,一般能自己回落到系统自带驱动,但功能会少一些,双面打印之类的选项会消失。
还有一个特别烦的事,反复装卸几次之后,系统里会残留一堆同名的打印机条目和驱动包,端口列表里也会多出七八个没用的地址端口。清的时候别只在设备和打印机里删图标,那只是删了个门牌。要到打印服务器属性里的驱动程序标签页,选中对应的驱动,点删除驱动程序和驱动程序包,如果提示正在使用,就先在服务里把打印后台处理程序停掉,再回来删。端口那一页也可以顺手把没用的删掉。我那天就是因为端口列表里躺着一个指向旧地址的 192.168.1.88,客户端一直在偷偷用它,所以每次看着像连上了,打出来却是空白页。
现在这套东西我算是固定下来了。主机固定 192.168.1.201,关掉休眠和快速启动,共享名统一用 HP1020,不加空格,主机上同时装好三十二位和六十四位驱动。客户端那边一律不用网络浏览,全部手动加地址端口,装完把默认打印机设好,再把主机的共享打印机图标从列表里删掉,省得以后有人手贱点进去又连一遍。五台机器这么配下来,到写这篇的时候已经安稳了两个多月。
真正通的那条路,有点土但稳
那天真正让五台机器全通的,不是什么高级办法,是把连接方式统一了:所有人都不通过网络浏览去找打印机,一律在运行框里输入两个斜杠加 192.168.1.201 加斜杠加 HP1020,回车,弹凭据,输账号密码,装驱动。
这条路土,但它绕开了网络发现、绕开了工作组浏览、绕开了 SMB1 的开关状态,只依赖一件事:那台主机的 445 端口通。只要 445 通,共享就能连。我后来把这串地址写在便利贴上,贴在前台显示器边框上,谁来问就让他照着敲。
为了让这条路更稳,我在主机上把网络配置文件设成了专用网络,不是公用。公用网络下共享会被防火墙拦得更狠。设置的位置在设置、网络和 Internet、状态、属性里,改成专用。改完防火墙规则会自动放宽一点。
防火墙我也手动放行了文件和打印机共享,专用和公用两个配置文件都勾上。这一步其实系统会自动做,但办公室装过一些安全软件,会把规则改回去,所以我干脆手动加一遍,等于上了双保险。
收尾时我做了个 bat 脚本放在每台机器的桌面上,双击就自动删掉旧连接、重新映射打印机。脚本内容我就不贴了,太简单,就两行命令加一个暂停。出纳说这个比记地址方便,我听了挺高兴,虽然这事本来不该让她记。
一些零碎的补丁式经验
主机千万别设成自动休眠。我前面说过一次,这里再说一遍,因为它是复发率最高的故障。Win10 默认平衡电源计划,二十分钟不动就睡,睡下去网络就断,别人点打印就卡在队列里。改成从不之后,那台机器的电费一个月多了几块钱,值。
打印队列卡住的时候,最快的办法是清空 spool 文件夹。位置在系统盘、Windows、System32、spool、PRINTERS 下面,把里面的文件全删掉,重启打印服务。删之前先停服务,不然文件被占用删不掉。这个操作我一个月要做两三次,基本都是有人打了带图片的大文件。
还有共享名后面的那个括号。有时候系统会自动在打印机名字后面加个括号和数字,比如 HP1020 后面跟个 2,那是因为同名的打印机已经存在。添加的时候看仔细,选错就连到旧的那台去了,打出来自然不对。
Win11 那边,如果哪天又连不上,先看 网络和共享中心 里的 高级共享设置,确认 启用文件和打印机共享 还是开着的。系统大版本更新之后这个开关有时会被重置,我遇到过两次,都是更新完第二天早上出问题。
还有件事我到现在也没想明白的:同样一条网线,前台那台机器接上去就连不上共享,换到出纳那边同一个交换机口就能连。后来我把前台的网线换了一根,好了。那根旧线测线仪打出来八芯全通,但就是不行。这事我解释不了,只能记下来,下次先换线。
那天收工的时候,出纳打了一叠回单,机器嗡嗡地出纸,我坐在旁边听了一会儿,觉得这声音还挺好听。一台 2006 年的打印机,靠着一堆老协议和几个注册表值,又活过了一天,说起来有点魔幻,但办公室的日子大概就是这样。
