☰
0x0000011b错误修复攻略:Windows共享打印机RPC冲突的注册表解法
2026/9/30 10:51:24 网站建设 项目流程

先说个场景:你在办公室连共享打印机,前一秒大家都用得好好的,突然你这边弹窗“操作无法完成,错误 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,这是覆盖面最广的做法。如果客户端加,那只有这台客户端自己生效。实际批量处理时,两边都加上最稳妥。

图形界面操作步骤:

  1. 按Win + R,输入regedit,回车打开注册表编辑器。
  2. 在顶部地址栏粘贴以下路径,回车定位:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
  3. 在右侧空白处右键,选择“新建”——“DWORD (32 位)值”。
  4. 把新建的值重命名为RpcAuthnLevelPrivacyEnabled。
  5. 双击该值,把数据改成0,基数保持“十六进制”,确定。
  6. 关闭注册表编辑器。按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,网上最常见的关联编号包括:

  • KB5005565(Windows 10 2004/20H2/21H1 系列)
  • KB5005573(Windows 10 21H2 相关批次)
  • KB5005566、KB5005568(部分 LTSB/LTSC 版本)
  • KB5006670、KB5006743(Windows 11 及后续 Windows 10 批次)

具体以你自己的系统更新历史为准,看 9 月之后、报错出现之前安装的补丁,逐个卸载就对了。卸载完重启电脑,再连打印机试试。

命令行卸载方式是管理员身份打开 CMD:

wusa /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 安全检查,自然没有报错空间。

操作步骤:

  1. 先在打印服务器上看一眼打印机属性里的“端口”或“位置”,记下打印机 IP。如果不知道,可以在打印服务器上用cmd执行ipconfig查不到,要看路由器的 DHCP 列表,或者在服务器上访问打印机面板的网络设置。
  2. 在客户端电脑上,打开“设置”——“蓝牙和其他设备”——“打印机和扫描仪”,点击“添加设备”。
  3. 选择“我需要的打印机不在列表中”,填写打印机的 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 共享打印机时,明明密码是对的,却一直转圈提示“登录失败”“密码错误”。这其实是凭据管理器的旧缓存闹的。

处理办法:

  1. 控制面板里打开“凭据管理器”,选择“Windows 凭据”,把和打印服务器相关的条目全删掉。
  2. 重新访问共享路径,比如在资源管理器地址栏输入\\192.168.x.x,这时会重新弹窗要求输入账号密码。
  3. 输入服务器的本机用户名密码,勾选“记住我的凭据”。

还有一种情况:服务器端的 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 服务器上加RpcAuthnLevelPrivacyEnabled=0,然后写了个一句的reg add命令,放到公司内部工具批量跑一遍,最后统一重启客户端。整个过程不到一个小时,问题当天清零。对比之前那些先卸载补丁的应急做法,重复报修率反而更高。

注册表键会轻微降低打印链路 RPC 的认证要求,所以我一般建议限制在可信任的内网环境中使用。如果你在公共网络或对安全要求非常严格的单位,可以考虑把打印机从“共享”改成“直连 IP”方案,一劳永逸且没有任何安全妥协。

最后再分享一个小细节:有些笔记本用户在 Win11 24H2 之后连接共享打印机会遇到新版本的 0x0000011b,如果这个键加了还不行,可以试试在“网络和共享中心”里关闭“受保护的打印模式”。不同系统的入口措辞略有不同,但核心思路是让 Windows 别对打印链路管太严。打印共享这口饭,本质上就是 Windows 安全策略和易用性博弈的产物,我们只能见招拆招。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询