问题背景:为何更新后打印机共享失效?
随着Windows系统的安全机制不断升级,许多企业在部署局域网打印机共享时遇到了阻碍。特别是安装了2021年下半年及之后的累积更新后,客户端电脑尝试连接共享打印机时,经常弹出“0x0000011b”错误代码,或者显示“操作无法完成”。
这一问题的核心原因在于微软为了修复PrintNightmare高危漏洞,在更新中加强了打印后台处理程序(Spooler)的安全检查。系统默认要求RPC(远程过程调用)绑定身份验证级别为“包级隐私”,而旧版的共享打印机制无法满足这一新增的安全要求,从而导致连接被拒绝。
解决方案一:修改注册表(推荐首选)
这是目前最有效且副作用最小的解决方法,通过调整打印后台处理程序服务的配置来兼容旧版共享机制。请按照以下步骤操作:
第一步:确定主机IP地址
首先,您需要知道连接打印机的主机电脑(即插接USB打印机并开启共享的那台电脑)的内网IP地址。在主机上按下 Win + R,输入 cmd,然后输入 ipconfig 查看IPv4地址,例如:192.168.1.100。
第二步:修改注册表
- 打开注册表编辑器:在主机电脑上按
Win + R,输入regedit并回车。 - 定位路径:导航至以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
- 创建新DWORD值:在右侧空白处右键,选择“新建” > “DWORD (32位) 值”。
- 命名:将新值命名为
RpcAuthnLevelPrivacyEnabled(注意大小写完全一致)。 - 修改数值:双击该值,将其数值数据修改为
0。
第三步:重启打印服务
注册表修改完成后,需要重启打印后台处理程序服务以生效:
- 按
Win + R,输入services.msc打开服务管理器。 - 找到 Print Spooler 服务。
- 右键点击选择“重新启动”。
修改完成后,客户端电脑尝试重新连接共享打印机,通常即可成功。
解决方案二:卸载特定安全补丁(备选方案)
如果上述注册表方法对您不可用,或者您希望彻底解除安全限制,可以尝试卸载导致此问题的累积更新补丁。请注意,这可能会降低系统安全性,建议仅在内网环境可信的情况下使用。
- 进入主机的“设置” > “更新和安全” > “Windows更新”。
- 点击“查看更新历史记录”。
- 选择“卸载更新”。
- 在列表中寻找发布日期在2021年6月之后的KB补丁(通常是涉及打印安全的补丁,如KB5004442等)。选中后点击卸载。
- 重启计算机。
如何阻止系统再次自动安装该补丁?
为防止Windows Update自动还原补丁导致问题复发,您可以使用组策略禁止特定KB编号的更新:
- 按
Win + R,输入gpedit.msc打开本地组策略编辑器。 - 导航至:计算机配置 > 管理模板 > Windows组件 > Windows更新 > Windows更新管理器。
- 启用“隐藏指定的更新”策略。
- 点击“显示”,输入需要隐藏的KB号码(如
KB5004442)。
解决方案三:重置共享打印机配置
在某些复杂情况下,打印机的共享状态可能已损坏。此时可以执行一次完整的重置:
- 取消共享:在主机的打印机属性中,取消勾选“共享这台打印机”。
- 删除驱动:在“打印服务器属性”中,删除该打印机的驱动程序。
- 重启Spooler:如上所述,重启Print Spooler服务。
- 重新共享:再次勾选“共享”,并添加一个简单的共享名(建议使用英文,避免中文编码问题)。
- 客户端重连:在客户端电脑上,删除旧的打印机图标,通过IP地址(
\\192.168.1.100\PrinterName)重新添加打印机。
注意事项与最佳实践
安全警示:修改注册表或卸载补丁会改变系统的安全基线。请确保您的局域网是受信任的内部网络,避免将开启了共享打印功能的电脑暴露在公共互联网环境中。
- 网络映射:对于长期使用的共享打印机,建议在客户端电脑上将其映射为网络驱动器或直接固定连接,以减少每次连接时的RPC协商耗时。
- 驱动一致性:确保主机和客户端安装相同版本或兼容版本的打印机驱动,避免因驱动版本差异导致的其他打印故障。
- 防火墙设置:检查主机Windows防火墙是否放行了“文件和打印机共享”相关的入站规则,包括TCP 139, 445端口以及UDP 137, 138端口。
总结
错误代码0x0000011b是Windows安全加固带来的典型兼容性痛点。通过修改注册表项 RpcAuthnLevelPrivacyEnabled 为0,可以在保持系统大部分安全更新的前提下,快速恢复打印机共享功能。此方法无需卸载系统补丁,操作简便,是中小企业和家庭用户解决此问题的最佳实践。