Windows共享打印机报错0x0000011b?注册表修复与补丁卸载全攻略
发布时间:2026/9/30 3:04:06 作者:尧图编辑部 阅读量:1,286

打印机弹出 0x0000011b 这个错误码基本上是最近几年 Windows 共享打印最常见的拦路虎。尤其是 2021 年 9 月之后微软针对 PrintNightmare 漏洞推出一系列安全更新很多原本稳定的共享打印机突然就报这个错连接时提示操作无法完成错误 0x0000011b重装驱动、重启服务全都无效。我见过太多人卡在这一步甚至有人直接重做系统结果还是一样。其实这个错误本质上是 Windows 安全策略和打印服务之间的权限冲突并不是打印机硬件坏了也不是驱动文件损坏。只要搞清楚背后的触发机制用对方法十分钟以内就能解决。今天这篇就把我实际处理过的方案完整拆开讲从错误成因、快速定位、注册表修复、补丁卸载、驱动重装到共享权限配置一条龙捋清楚。无论你是 Windows 11 连 Win10 共享打印机还是 Win10 访问 Win11 的打印共享或者是连接网络打印机时报这个错都能找到对应的解决路径。1. 错误成因解析为什么安全的补丁会弄坏打印共享1.1 PrintNightmare 漏洞与 RPC 安全强化的关系要理解 0x0000011b得先提一嘴 PrintNightmareCVE-2021-34527。这个漏洞当时相当严重攻击者可以通过打印机后台处理程序Print Spooler远程执行代码而且不需要任何用户交互几乎等于把打印服务变成了后门。微软紧急发布了安全更新核心手段是强制要求打印客户端与打印服务器之间的 RPC 通信使用更高等级的身份验证。这里有个生活化的类比以前打印客户端和服务器之间传数据就像小区楼道门禁老住户报个名字就放行补丁打完之后门禁系统升级不仅要验证身份还要求双方都持有新版门禁卡。问题是很多打印机驱动、老版本 Windows 还停留在旧协议模式拿着旧卡去刷新门禁结果就是被拦在门外——对应到系统层面就是 0x0000011b。1.2 为什么有的机器能打印有的机器报错实际排查中你会发现同一台共享打印机A 电脑连着没问题B 电脑就报 0x0000011b。原因在于报错的那台电脑和共享打印机的宿主机器打印服务器之间有一方的系统补丁版本过新或过旧导致 RPC 身份验证级别不匹配。具体来说微软的补丁改变了 Print Spooler 对远程调用的默认处理行为后装的补丁要求更高安全等级。如果打印服务器通常就是连着打印机的那台主机已经安装了带修复的补丁而客户端还停留在旧补丁状态双方在协商安全策略时就会失败于是系统抛错。还有一个容易被忽略的情况局域网中同时存在多台电脑打印服务器本身可能被域控策略或系统更新自动改了安全设置。我自己就遇到过一台打印服务器自动更新后其他所有客户端全部瘫痪的案例。这解释了为什么很多人卸载补丁有用而另外一些人卸载补丁仍然报错——因为问题很可能出在对端打印服务器而不是你正在操作的这台电脑。2. 动手前的准确定位先判断问题出在哪一侧2.1 三步定位法报错码、访问方向、更新记录在按下键盘之前先把以下三件事问清楚能省掉后面一大半弯路。第一步确认报错码和触发场景。0x0000011b 最常见于通过 UNC 路径访问共享打印机比如\\192.168.1.10\HP LaserJet时Windows 在连接到打印机过程中弹出错误。如果用户是从设置-蓝牙和其他设备-打印机和扫描仪添加网络打印机同样会触发。还有一类情况是已经连着打印机打印文档时突然报错这种一般是打印服务器端安全策略中途变化。第二步确认访问方向。是 Win10 访问 Win11 共享还是 Win11 访问 Win10 共享又或者是两台同版本系统之间共享这个信息决定了修复应该落在哪一端。以我的经验系统版本较新、补丁较全的那台机器往往是被访问端打印服务器旧版本机器是访问端客户端安全策略不匹配通常表现为客户端报错。第三步翻更新记录。在报错电脑上执行wmic qfe list或直接打开设置-Windows 更新-更新历史记录看看近期是否安装了 2021 年 9 月及之后的累积更新。特别是 KB5005565、KB5005566、KB5005568、KB5005569、KB5005570、KB5005571这些编号的补丁就是最早引起 0x0000011b 的一批。如果能找到基本可以判断是补丁导致接下来决定走注册表修复还是卸载补丁路线。2.2 基础环境检查服务、网络、工作组除了判断补丁我还会让用户先做完一组基础检查避免在错误方向上空转。检查 Print Spooler 服务状态。在报错电脑和打印服务器上同时打开服务管理器WinR 输入services.msc找到 Print Spooler确认状态是正在运行启动类型是自动。如果服务停止右键启动并设为自动然后重启服务。这里有个细节很多人在打印服务器上重启 Spooler 后客户端仍然报错那是因为客户端本地也有一个 Spooler两侧的服务都必须正常。检查网络可达性。在客户端电脑上 ping 打印服务器的 IP 或者主机名确认网络通。如果 ping 不通检查防火墙是否拦截了打印共享端口。Windows 防火墙的文件和打印机共享入站规则需要保持启用状态如果之前优化过防火墙导致被禁用打印机连接必然失败。确认工作组一致性。如果两台电脑不在同一工作组也没加入同一个域访问共享打印机会受到权限限制。右键此电脑-属性查看完整计算机名里的工作组名称确保客户端和打印服务器在同一工作组。这一步解决的是另一个容易混淆的报错——0x00000bc4后面会专门提到。做完以上检查如果仍然无法连接再进入下面的正式修复方案。3. 方案一注册表修复法最推荐的首选路径3.1 注册表修改的原理与适用场景注册表修复法的核心思路是在客户端本机绕过 PrintNightmare 补丁带来的 RPC 安全校验。微软留了一个注册表开关允许管理员把 Print Spooler 的远程打印 RPC 身份验证级别降回旧版本从而让老驱动、老协议重新可用。这个方案的优势是不需要卸载补丁、不需要动打印服务器而且不会因为后续 Windows 更新再次触发错误。适用场景是报错电脑客户端安装了新补丁但打印服务器的驱动或系统版本较旧双方安全协商失败。实测下来对 Win10 访问 Win11 共享、Win11 访问 Win10 共享、以及 Win11 连接 Win11 共享打印机这几种组合注册表法多数情况能直接解决。我需要提醒一句修改注册表有风险操作前请先导出注册表备份。方法是在注册表编辑器里选中Print键右键导出保存为 .reg 文件。万一改错双击导入即可还原。3.2 具体操作步骤与命令速查在报错的那台电脑上操作注意是报错客户端不是打印服务器按Win R输入regedit打开注册表编辑器定位到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print在左侧选中Print键右键新建一个 DWORD32 位值命名为RpcAuthnLevelPrivacyEnabled将数值数据改成0。这个键名看起来又长又拗口其实含义是是否启用 RPC 身份验证隐私级别设为 0 就是关闭强制校验。如果你觉得手动建 DWORD 麻烦也可以直接使用管理员身份运行命令行执行以下命令reg add HKLM\System\CurrentControlSet\Control\Print /v RpcAuthnLevelPrivacyEnabled /t REG_DWORD /d 0 /f执行后能看到提示操作成功完成然后重启 Print Spooler 服务让它生效net stop spooler net start spooler如果是通过命令行执行注意命令提示符必须以管理员身份打开否则会提示拒绝访问。3.3 注册表修复后的验证与回滚修复完成后重新在客户端执行添加打印机-通过 UNC 路径添加或者直接双击打印服务器的共享打印机图标正常情况下不再报错。我实测处理过一台 Win11 客户端连 Win10 服务器注册表改完后立即可以打印连重启电脑都不需要。如果改完后仍然报错有两种可能要么打印服务器端也做了类似的安全强制需要在对端也加同样键值要么这个错误根本不是 RPC 认证引起需要走后面的补丁卸载或驱动重装方案。此时可以在打印服务器也执行同样的注册表命令再重试连接。如果之后想恢复默认安全策略把RpcAuthnLevelPrivacyEnabled改成 1或者直接删除这个键值然后重启 Spooler 即可。有一点要记住删除键值后Windows 会回到补丁默认的强制校验状态如果打印服务器和客户端补丁版本不匹配错误会再次出现。4. 方案二卸载系统补丁快速但要注意副作用4.1 需要卸载哪些补丁以及卸载步骤卸载补丁是网上流传最广的方案操作门槛低见效也快。核心逻辑是把引起 RPC 安全策略变化的更新补丁移除让系统回到补丁前状态。如果你是 Win10 系统打开设置-更新和安全-Windows 更新-查看更新历史记录-卸载更新找到对应 KB 编号卸载即可。Win11 的路径是设置-Windows 更新-更新历史记录-卸载更新。需要重点关注并卸载的补丁包括以下 KB 编号操作系统常见引起 0x0000011b 的补丁编号Windows 10 21H2/22H2KB5005565、KB5005566、KB5005568、KB5005569、KB5005570Windows 11 21H2KB5005574、KB5005575、KB5005576Windows Server 2016/2019KB5005563、KB5005565、KB5005573注意卸载补丁后系统可能提示重启需要在打印服务器和客户端都重启一次然后再测试连接。4.2 为什么卸载补丁治标不治本我必须讲清楚卸载补丁只在短期内有效长期来看不是一个干净的解决方案。原因有两点第一系统会自动重新安装补丁。只要开启 Windows 自动更新过不了多久这些补丁会再次被装回去错误就复现了。你要么关掉自动更新要么定期手动卸载非常折腾。第二卸载安全补丁等于把电脑重新暴露在 PrintNightmare 风险之下。这个漏洞有多危险前面已经说过在局域网环境里一台共享打印机的电脑如果被同一网络内其他设备利用可能直接影响整个内网。我不建议为了打印方便去牺牲系统安全尤其是企业环境涉密和数据安全要求比较高的地方更不该用这种方式。所以我对这个方案的态度是只能作为临时应急手段。如果你的打印机是办公刚需、不能停先卸载补丁把打印跑起来之后再找时间实施注册表方案或者更新驱动到兼容版本再把补丁装回去。4.3 卸载补丁失败的替代手段有些机器卸载更新按钮是灰色的或者卸载到一半提示失败。这种情况常见于企业域控环境补丁策略由服务器端统一管理本地管理员无权卸载。替代方案有两个一是用命令行工具卸载。以管理员身份运行命令提示符执行wusa /uninstall /kb:5005565 /norestart把 KB 编号替换成实际需要卸载的补丁。wusa是 Windows Update Standalone Installer 的命令行工具卸载完成后按提示重启系统。二是如果命令行也失败说明系统组件有异常建议直接用方案一的注册表修改。注册表方法不受补丁卸载权限的限制因为它只是调整当前系统的一个开关不涉及修改系统更新组件。5. 方案三干净重装打印机驱动把残留的坑填干净5.1 为什么需要彻底删除旧驱动0x0000011b 报错中有一部分情况跟系统补丁无关而是驱动文件损坏、版本冲突或者安装残留。Windows 打印驱动安装失败后会留下大量残留文件尤其是通过添加打印机向导自动安装的驱动经常会在系统里留下多个版本共存Spooler 在加载时选错版本就会报错。另一种常见情况是打印服务器上原来装过同型号打印机的旧版驱动后来升级驱动时没卸载干净客户端通过网络安装时抓到的是旧版文件自然和补丁后的安全策略不兼容。所以第三种方案的定位是当注册表方法和补丁卸载都没解决问题时把服务器端和客户端的驱动全部清掉从零开始装。5.2 清除残留驱动的完整步骤在打印服务器连接打印机的那台机器上按以下顺序操作首先删除打印机对象。打开设置-蓝牙和其他设备-打印机和扫描仪选中目标打印机点击删除设备。然后清理驱动残留。以管理员身份打开命令提示符执行以下命令查看已安装的打印机驱动printui /s /t2这个命令会弹出打印服务器属性窗口在驱动程序选项卡里能看到所有已安装的驱动。把目标打印机相关驱动全部删除。如果提示驱动正在使用中先重启 Print Spooler 服务再删。删除驱动后再清理驱动文件目录。默认情况下驱动文件位于C:\Windows\System32\spool\drivers\x64\3这个目录里可能有老版本驱动文件残留手动清理时建议先停止 Spooler 服务删除目录下的对应文件再启动服务。清理干净后重新安装打印机。使用官方驱动安装包去打印机品牌官网下载不要用第三方驱动软件或者使用系统自带的添加打印机功能通过网络添加。如果打印服务器本身是联网打印机有自己的 IP 地址建议直接用 IP 添加 TCP/IP 端口避免走共享依赖这样可以彻底绕开共享服务的权限问题。5.3 客户端驱动的重装细节客户端的驱动处理方式和服务器端类似但有一个关键点容易被忽略客户端通过共享方式连接打印机时驱动文件是从打印服务器后台自动下发的如果服务器端驱动不干净客户端装多少次都没用。所以重装顺序必须是先清服务器再清客户端。在客户端上先断开已添加的网络打印机删除设备然后同样用printui /s /t2清理驱动残留。之后重新通过 UNC 路径添加打印机系统会从服务器端拉取新的驱动文件。加了注册表修复的机器这里就会非常顺畅。如果你不想让客户端自动从服务器拉驱动也可以在客户端本机手动安装打印机的官方驱动后再执行连接操作。这样客户端用本地驱动不依赖服务器下发的版本稳定性更好但缺点是以后服务器端换驱动时客户端不会自动同步更新。6. 方案四从共享权限与系统设置兜底排查6.1 Guest 账户与 Everyone 权限配置有一部分用户的场景比较特殊打印机连接本身没报错但打印任务提交后没有反应或者共享打印机提示拒绝访问。这类问题通常不是 0x0000011b而是共享权限配置不到位但经常和 0x0000011b 一起出现排查时很容易混淆。在打印服务器上打开控制面板-所有控制面板项-凭据管理器确认是否启用了 Guest 账户。右键此电脑-管理-本地用户和组-用户找到 Guest确认账户已禁用没有勾选。如果禁用了右键选择属性取消勾选并在账户已启用上打勾。然后设置打印机共享权限。打开打印机和扫描仪选中打印机右键打印机属性进入共享选项卡勾选共享这台打印机设置一个简单的共享名。切换到安全选项卡添加 Everyone 用户并赋予打印权限。这个操作保证了同一局域网内的电脑在不知道复杂账户密码的情况下也能访问打印机。6.2 与 0x00000bc4 错误的区分处理如果你遇到的报错不是 0x0000011b而是操作无法完成错误 0x00000bc4找不到打印机那么要走的排查路径不太一样。0x00000bc4 通常是 SMB 协议访问共享时出现了会话问题常见原因是打印机服务器的 SMB 1.0/CIFS 文件共享协议被禁用或者本机凭据无法通过身份验证。处理方式是在打印服务器上打开控制面板-程序-启用或关闭 Windows 功能找到SMB 1.0/CIFS 文件共享支持勾选并重启系统。需要注意SMB 1.0 是老协议启用它会降低系统安全等级同样建议临时使用解决后最好再关掉。另外在客户端打开设置-账户-凭据管理器-Windows 凭据如果之前保存过错误的网络凭据删掉重新添加正确的服务器 IP 和账户密码。很多时候反复提示输入密码就是因为凭据管理器里缓存了错误的凭证。6.3 Win11 连 Win11 共享打印机反复提示密码错误的处理最近很多人在 Win11 环境内共享打印机时遇到一个变体问题连接过程不报 0x0000011b但反复弹窗要求输入密码输入正确也进不去。这种情况的热词描述是win11连接win11共享打印机反复提示密码错误。这个问题和 0x0000011b 有共同根源系统的安全验证策略变动导致共享打印机使用的默认账户验证失败。解决方法比较直接在打印服务器上开启 Guest 账户并设置好 Everyone 的打印权限同时在客户端凭据管理器里添加一条 Windows 凭据服务器地址填打印服务器的 IP 或主机名用户名填 Guest密码留空。我试过多次这个组合在 Win11 22H2 和 23H2 上都有效。如果你也遇到同样问题不要反复去输入本地账户密码那样只会一直报错。核心思路就是让共享打印机以访客身份免密访问而不是走完整账户验证。7. 常见问题排查技巧实录从实际案例到速查表7.1 典型场景速查表结合我处理过的故障整理一个速查表按照场景-特征-推荐方案排列可以对照自己的情况快速选择。场景特征推荐方案Win10 客户端连 Win11 服务器报 0x0000011b客户端近期自动更新过补丁客户端注册表添加 RpcAuthnLevelPrivacyEnabled0Win11 客户端连 Win10 服务器报 0x0000011b服务器较旧驱动老客户端注册表修复必要时服务器也加键值Win11 连 Win11 共享打印机报 0x0000011b双方补丁版本差距大打印服务器加注册表键值并重装共享驱动共享打印机反复提示密码错误有弹窗但密码无效开启 Guest、Everyone 打印权限、清理凭据找不到打印机 0x00000bc4连接时直接搜不到启用 SMB 1.0 支持检查共享名和网络发现打印任务卡在队列里不执行无报错任务排队重启 Spooler重装服务端驱动7.2 我踩过坑的几个细节第一个坑是只修改客户端注册表忽略了打印服务器。当时一台 Win11 主机共享打印机Win10 客户端全部报 0x0000011b我一开始只给客户端加注册表键值结果还是报错。后来把打印服务器上也加了RpcAuthnLevelPrivacyEnabled0问题立刻解决。所以现在的习惯是同时在报错端和服务端都检查注册表双管齐下。第二个坑是卸载补丁之后系统自动重打。我在一台公司电脑上卸载了 KB5005565当时确实能打印了结果第二天用户告诉我又报错。查了更新记录发现系统在夜间自动更新时把补丁装回去了。后来我改用注册表方案才一劳永逸。第三个坑是驱动重装时没有停掉 Spooler 服务。如果你在驱动还在运行的情况下直接删驱动文件系统会提示文件被占用然后删除不干净装新驱动又会莫名冲突。顺序一定要是停止 Spooler → 清理驱动目录 → 重新添加打印机 → 启动 Spooler。7.3 企业环境下批量修复的思路如果你们公司有几十台电脑同时报错一台台去改注册表不现实。这里分享一个更高效的办法使用组策略或脚本批量下发。在域控环境里可以通过组策略编辑器gpedit.msc配置计算机配置-首选项-Windows 设置-注册表添加一条注册表项路径指向HKLM\System\CurrentControlSet\Control\Print值名称RpcAuthnLevelPrivacyEnabled类型 REG_DWORD数据 0。这样域内所有客户端启动时都会自动同步这个配置相当于一次性给全公司电脑打上了打印兼容补丁。如果没有域控可以用启动脚本或者远程 PowerShell 批量执行。PowerShell 脚本内容很简单New-Item -Path HKLM:\System\CurrentControlSet\Control\Print -Force | Out-Null New-ItemProperty -Path HKLM:\System\CurrentControlSet\Control\Print -Name RpcAuthnLevelPrivacyEnabled -PropertyType DWord -Value 0 -Force把这段保存为 ps1 文件通过组策略或者计划任务在客户端开机时执行一次即可。实测上百台电脑批量处理速度非常快而且不会打断用户正在进行的操作。8. 实操总结与个人经验补充处理了这么多次 0x0000011b我个人的经验坐标是这样的先注册表再补丁最后驱动重装。注册表方案几乎不损失安全性也不会因为系统后续更新失效是我在任何场景下都优先推荐的处理方式。而卸载补丁属于应急手段适合打印机不能停但又没时间好好排查的场景救急可以长期不行。另一个比较隐蔽的细节是这个问题有很明显的方向性。也就是说当你把修复手段用在客户端无效时一定要去打印服务器上反复检查。很多时候用户会把注意力完全放在报错电脑上忽略了打印服务器本身的安全策略变化。记住打印共享是两台电脑之间的通信问题只修一侧常常解决不了一半。如果你正在处理的打印机已经使用了多年而且驱动版本特别老那我建议借这个机会把驱动升级到最新版。很多老驱动当年是按旧 RPC 协议写的补丁更新后这些驱动就不再兼容注册表开关虽然能临时降级验证但驱动本身的稳定性可能已成为隐患。最后分享一个使用小技巧注册表修改完成后最好在客户端和打印服务器上都重启一次 Print Spooler再测试打印。有时候只改注册表不重启服务测试时会误以为方案无效其实只是服务没重新加载配置。多花一分钟做完整套流程后面能省回更多时间。