资讯详情

资讯详情

0x0000011b错误修复攻略:Windows共享打印机RPC冲突的注册表解法

先说个场景你在办公室连共享打印机前一秒大家都用得好好的突然你这边弹窗“操作无法完成错误 0x0000011b”点多少次重试都没用。旁边的同事一脸无辜打印机却在自己家里正常出纸。这画面我在处理企业办公环境时见过太多次了。这个 0x0000011b 错误几乎九成以上都出现在访问共享打印机的时候而不是打印机本身坏了。它本质上是 Windows 系统层面的问题和打印机硬件、驱动关系不大。2021 年 9 月之后微软针对 Print Spooler 打印后台服务发布了一系列安全更新直接改变了客户端和打印服务器之间的 RPC 通信方式导致新旧系统版本之间“对不上暗号”于是就把访问请求拦在了门外报出 0x0000011b。这篇文章写给所有被这个问题折磨过的 Windows 10/11 用户以及那些要给公司几十台电脑统一处理的运维朋友。我会把解决思路、完整操作步骤、以及哪些方法治标、哪些方法治本讲清楚按我实际处理过的路径一步步来照着做基本都能解决。1. 先搞懂 0x0000011b 是哪来的补丁、RPC 和打印共享链路很多人一上来就搜“如何关闭更新”“如何卸载补丁”但不懂根源就容易反复踩坑。咱们花几分钟把原理说透后面操作你就知道哪一步是关键了。1.1 一次安全更新引发的连锁反应2021 年夏天爆出了个叫 PrintNightmare 的严重漏洞攻击者可以利用 Windows 打印后台处理服务的缺陷远程在别人的电脑上执行代码拿到系统权限。这漏洞太吓人微软紧接着就发布了紧急安全补丁其中就包括广为人知的 KB5005565以及后续几批更新。这些补丁干了一件大事把打印服务之间的 RPC 通信安全级别强制拉高。RPC 是 Windows 内部组件之间互相调用的“电话线”打印机共享时客户端要打电话给打印服务器告诉它“我要打印”“给我枚举一下队列”。补丁更新后这个电话要求双方必须使用“隐私保护级别”的加密认证才能通话。问题是你的打印服务器也就是连接打印机并开启共享的那台电脑可能打了新补丁而客户端访问共享打印机的电脑没打或者反过来。两边使用的安全协议版本不一样电话打不通客户端就只能干等最后超时弹错。这就是 0x0000011b 最典型的触发机制。用生活里的例子理解以前办公楼门卫看一眼工牌就放你进去某天突然换了个新门卫要求必须人脸识别加指纹比对。你同事都录过脸了你还没录于是就被拦在门外。打印机没坏门卫也没坏就是“认证方式”变了。1.2 为什么有的机器报错有的机器不报错这个现象在办公室里特别有迷惑性。同一台共享打印机你的 Windows 11 连不上旁边 Windows 10 的老电脑却连得好好的。根本原因是不同系统更新进度不同。具体来说Windows 10 1809 之前的旧版本由于补丁机制差异基本不太会触发 0x0000011b而 Windows 10 1909、20H2、21H1、21H2 以及 Windows 11 都是重灾区。版本越新安全补丁更新得越激进出问题的概率越高。另外还有一类常见组合Windows 7 客户端连 Windows 10 共享打印机报 0x0000011b。旧系统根本没有新补丁的 RPC 安全逻辑但服务器已经“升级了门禁”旧客户端自然进不去。针对这种情况核心处理目标往往不是客户端而是那台 Windows 10 打印服务器——让服务器放宽 RPC 安全要求问题就迎刃而解。1.3 微软自己给的答案一条注册表键微软在后来发布的官方支持文档里给出了一个标准解法在注册表的打印配置项里新增一个名为RpcAuthnLevelPrivacyEnabled的 DWORD 值并把数据设为0。这个键的作用就是重新允许打印的 RPC 通信使用非隐私保护级别。可以理解为给打印服务单独开一个“老门卫通道”不影响系统其他部位的安全策略只对打印链路放低门槛。这是目前最被认可、实操成功率最高的方案也是后面第三部分的主角。2. 方案选型三个方向哪种最适合你处理 0x0000011b 不止一种路子但不同方案的适用场景差别很大。我按优先级给你捋一遍别一上来就挑最暴力的方法。2.1 三种主流方案横向对比方案操作难度安全性影响是否治本适用场景修改 RpcAuthnLevelPrivacyEnabled 注册表低仅降低打印链路的 RPC 安全要求范围可控治本保留补丁不降安全基线绝大多数办公环境推荐首选卸载系统更新如 KB5005565低系统整体安全补丁缺失漏洞暴露风险高治标系统可能自动重装补丁临时应急后续必须做长期加固共享打印机改直连打印机 IP中无安全副作用完全绕开共享链路彻底一劳永逸打印机支持网络功能且网络环境允许2.2 不同场景该优先用什么如果你只是自己电脑连不上公司共享打印机第一选择就是方案一改注册表。操作简单几分钟搞定默认不会影响别人。如果你是运维公司有几十台电脑报错我的建议是先在打印服务器上加注册表键再用批处理脚本批量推给客户端同时把补丁卸载作为备用应急手段。优先加键不要优先卸补丁。哪类情况才考虑卸载补丁比如你手头没有打印服务器管理权限或者公司域策略禁止修改注册表临时又急等着打文件这时候卸载更新是最快捷径。但你要清楚过几天 Windows 更新可能又帮你装回去问题再犯。2.3 我为什么不推荐一上来就卸载补丁因为那个 PrintNightmare 漏洞确实非常危险补丁不仅仅是给打印机用的它堵住的是整个打印服务上可能被人利用的攻击面。你把补丁卸了等于把漏洞重新敞开在内网里如果有内鬼或者被横向渗透很容易出事。还有一个实际问题Windows 10/11 的补丁是累积式的你卸掉一个旧补丁新补丁可能还是带同样的修复逻辑某些更新历史里根本找不到可卸载项。我见过有人翻遍更新列表发现 KB5005565 早就被下游的累积更新取代了根本卸不掉白白浪费半小时。所以卸载补丁适合应急注册表方案才是正解。3. 完整实操注册表修复、补丁处理与长期加固这一节是重点我会把每种方法的具体路径、命令、以及实际操作中容易忽略的细节全部写出来。地址栏里的路径可以复制千万别输错。3.1 方案A注册表修复 RPC 打印链路最推荐这个方案的核心就是把那个关键注册表键值加上去。可以在打印服务器上操作也可以在客户端上操作。在打印服务器上加了之后原理上所有访问这台服务器的客户端都不再报 0x0000011b这是覆盖面最广的做法。如果客户端加那只有这台客户端自己生效。实际批量处理时两边都加上最稳妥。图形界面操作步骤按Win R输入regedit回车打开注册表编辑器。在顶部地址栏粘贴以下路径回车定位HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print在右侧空白处右键选择“新建”——“DWORD (32 位)值”。把新建的值重命名为RpcAuthnLevelPrivacyEnabled。双击该值把数据改成0基数保持“十六进制”确定。关闭注册表编辑器。按Win R输入services.msc找到“Print Spooler”服务右键重启。或者直接重启电脑。这里必须提醒很多人在第 4 步出错把RpcAuthnLevelPrivacyEnabled打错一个字母或者建到了别的键下面。注意路径最后一级是Print不是Print\Monitors也不是Print\Printers。建错位置等于没改查了半天发现还是报错。批量部署时用命令行更快在管理员身份打开的 CMD 或 PowerShell 里执行reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print /v RpcAuthnLevelPrivacyEnabled /t REG_DWORD /d 0 /f执行完同样需要重启 Print Spooler 服务net stop spooler net start spooler重启服务后共享打印机连接会被断开需要重新到“设备和打印机”里打开对应打印机或者重新访问\\服务器名。这个属于正常现象不用慌。3.2 方案B卸载问题更新应急手段如果你的情况实在不适合改注册表那就只能卸载更新。但先确认一下系统里到底装了哪个相关补丁不要瞎卸。先到“设置”——“Windows 更新”——“更新历史记录”——“卸载更新”在列表里找名字里带 KB 的补丁。针对 0x0000011b网上最常见的关联编号包括KB5005565Windows 10 2004/20H2/21H1 系列KB5005573Windows 10 21H2 相关批次KB5005566、KB5005568部分 LTSB/LTSC 版本KB5006670、KB5006743Windows 11 及后续 Windows 10 批次具体以你自己的系统更新历史为准看 9 月之后、报错出现之前安装的补丁逐个卸载就对了。卸载完重启电脑再连打印机试试。命令行卸载方式是管理员身份打开 CMDwusa /uninstall /kb:5005565 /norestart/norestart表示先不重启如果你要连着卸好几个补丁这个参数可以省几次重启。卸载后如果着急用可以先用着但强烈建议你在之后 24 小时内重新装上补丁然后改用注册表方案。一个更省事的办法是用 Windows“暂停更新”功能把自动更新暂停几周给自己留出调整时间。具体方法后面接着讲。3.3 方案C防止更新被再次自动安装卸载补丁后过一两天又莫名报 0x0000011b不用怀疑就是 Windows 更新帮你把补丁装回去了。要防这个有几个常用手段。如果你用的是 Windows 10/11 专业版或企业版用组策略最稳Win R输入gpedit.msc进入“计算机配置”——“管理模板”——“Windows 组件”——“Windows 更新”——“管理最终用户体验”右侧双击“配置自动更新”改成“已禁用”。这样系统不会主动下载安装更新但要注意你手动点“检查更新”时它还是会装。家庭版没有组策略编辑器可以改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU在AU项下新建一个 DWORD 值命名NoAutoUpdate数据填1。如果想更精细地只隐藏某一个补丁可以用微软官方的“显示或隐藏更新”疑难解答工具也就是 wushowhide.diagcab。运行后选择“隐藏更新”在列表里勾选要屏蔽的补丁号系统之后就不会自动安装它。这个工具对装完补丁后临时压制很实用但并不能永久生效——一旦后续又有新的累积更新发布被屏蔽的补丁内容可能换个编号重新出现。我的实际经验是别指望一劳永逸地阻止更新。最靠谱的做法还是加注册表键让补丁存在也不产生副作用。毕竟微软后续新补丁可能会调整打印 RPC 行为但那个注册表键依然能压住 0x0000011b。3.4 方案D共享打印机改直连打印机 IP彻底绕开共享如果你的打印机支持网络功能网口或 Wi-Fi且你能问到它的 IP 地址那这招最省心不通过任何电脑共享直接让每台客户端连接打印机的 IP。原理很简单0x0000011b 只出现在“客户端 → 共享主机 → 打印机”这条 RPC 链路上。改成直连后客户端直接通过 TCP/IP 端口和打印机通信根本不经过打印服务器的 RPC 安全检查自然没有报错空间。操作步骤先在打印服务器上看一眼打印机属性里的“端口”或“位置”记下打印机 IP。如果不知道可以在打印服务器上用cmd执行ipconfig查不到要看路由器的 DHCP 列表或者在服务器上访问打印机面板的网络设置。在客户端电脑上打开“设置”——“蓝牙和其他设备”——“打印机和扫描仪”点击“添加设备”。选择“我需要的打印机不在列表中”填写打印机的 IP 地址系统会自动识别端口并安装对应驱动。这个方案的缺点是每台电脑都要单独加一次打印机没有域环境里通过共享分发那么集中。但一旦配好就再也不会受 Windows 更新影响。对于环境里打印机本身带网络接口的我强烈建议优先直连而不是共享。4. 常见问题与排查技巧实录处理打印问题最怕的就是“我照做了怎么还不行”。这里把我在实际环境里踩过、以及帮别人远程排查时遇到的高频状况汇总一下能帮你省不少时间。4.1 加了注册表键为什么还是报错这个情况我见得太多了通常都是下面这五个原因之一注册表路径错了。复查一遍是否精确到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print。注意是SYSTEM还是SOFTWARE经常有人看走眼。值类型错了。必须新建DWORD (32 位)值不是QWORD (64 位)。虽然有些系统 QWORD 也能识别但严格来说 DWORD 才是标准避免节外生枝。没重启服务或电脑。键值改完Print Spooler 还是旧配置你不会立刻看到效果。确认加完键后重启过服务。问题出在服务器端你却只改了客户端。如果很多电脑都连不上同一台共享打印机请到那台打印服务器上加注册表键。第三方杀毒软件或安全软件拦截了 RPC 打印调用。有些国产安全软件会额外做“打印防勒索”策略把这个链路直接禁了。可以在报错机器上临时退出安全软件试试。如果你全检查了一遍还是报错还可以顺手看看防火墙是否放行了“文件和打印机共享”。在控制面板“Windows Defender 防火墙”里允许应用或功能通过防火墙确保“文件和打印机共享”是勾选状态。4.2 连接共享打印机反复提示密码错误这个和 0x0000011b 经常混着出现尤其是 Windows 11 连接 Windows 11 共享打印机时明明密码是对的却一直转圈提示“登录失败”“密码错误”。这其实是凭据管理器的旧缓存闹的。处理办法控制面板里打开“凭据管理器”选择“Windows 凭据”把和打印服务器相关的条目全删掉。重新访问共享路径比如在资源管理器地址栏输入\\192.168.x.x这时会重新弹窗要求输入账号密码。输入服务器的本机用户名密码勾选“记住我的凭据”。还有一种情况服务器端的 Guest 账号权限异常。如果你不想用具体账户也可以在打印服务器上共享打印机时给 Everyone 或 Guest 添加打印权限然后客户端用匿名方式连接。但这属于临时放开权限的做法我是建议在公司内网再这么干公网或半信任网络要谨慎。4.3 其他常见打印机错误码速查0x0000011b 不是打印机共享路上唯一的坑有几个错误码经常和它一起出现我把排查方向整理成一个速查表错误码/提示大概原因处理方向0x0000011bRPC 安全级别不匹配补丁系统差异加 RpcAuthnLevelPrivacyEnabled 注册表键或卸载相关更新0x00000709驱动名称冲突同名打印机驱动已存在删除设备管理器里同名旧打印机驱动重装目标驱动0x00000bc4驱动与端口初始化失败或端口配置被破坏删除打印机和端口重新添加打印机换一个新端口名0x00000002打印机不可用可能是未联机、驱动异常或后台服务停了检查打印机电源线、网络状态重启 Print Spooler 服务反复提示密码错误凭据管理器缓存了旧密码或 Guest 权限设置异常删 Windows 凭据重新登录或调整共享权限比如里面说的 0x00000bc4很多人误以为也是系统更新问题实际上它多半发生在驱动或端口层面。如果你打印机驱动装了一半、或者端口名称被其他打印机占用就会触发这个错误。处理方式也不是去动补丁而是干脆把打印机删干净重新用http://打印机IP的方式访问或者重新建端口。除了这些还有两个容易被忽略的“非技术”细节。一是打印服务器长时间不关机Print Spooler 服务假死表现出来就是所有客户端连不上、报各种错。重启一下服务就恢复了。二是打印机驱动的 32 位和 64 位版本不要混装尤其在服务器上给别人共享时有时候要额外安装对应架构的驱动否则客户端装驱动时会报错。5. 最后说点实际排查里的心得处理这种事情第一原则是分清主次。你自己一台电脑报错先加注册表键如果整层楼电脑都报错优先去打印服务器上加键再用批处理脚本推到所有客户端这样比一台台卸补丁省事太多。我曾经一次性给设计部门的 30 台电脑处理过这个问题过程是先在共享打印的 Windows 10 服务器上加RpcAuthnLevelPrivacyEnabled0然后写了个一句的reg add命令放到公司内部工具批量跑一遍最后统一重启客户端。整个过程不到一个小时问题当天清零。对比之前那些先卸载补丁的应急做法重复报修率反而更高。注册表键会轻微降低打印链路 RPC 的认证要求所以我一般建议限制在可信任的内网环境中使用。如果你在公共网络或对安全要求非常严格的单位可以考虑把打印机从“共享”改成“直连 IP”方案一劳永逸且没有任何安全妥协。最后再分享一个小细节有些笔记本用户在 Win11 24H2 之后连接共享打印机会遇到新版本的 0x0000011b如果这个键加了还不行可以试试在“网络和共享中心”里关闭“受保护的打印模式”。不同系统的入口措辞略有不同但核心思路是让 Windows 别对打印链路管太严。打印共享这口饭本质上就是 Windows 安全策略和易用性博弈的产物我们只能见招拆招。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →