Windows共享打印机故障排查:错误代码0x000011b到771实战指南
2026/9/19 19:24:43 网站建设 项目流程

1. 共享打印机连不上的报错地图:先搞清楚该修哪一端

干了这么多年企业网络维护,我修得最多的问题大概就是“共享打印机突然连不上了”。Windows 10 用户尤其容易撞上,而且往往是在一次系统更新之后,全办公室的人同时开始报错。共享打印机的报错五花八门,从 0x000011b、0x00000709、0x00000040 到 0x00000520,再到 771、找不到网络路径、提示系统不支持请求的指令……很多人拿到一个错误码就懵了,到处找工具,结果越修越乱。

这篇文章我就把在 Windows 10 下处理共享打印机连接故障的经验系统性地理一遍。为了方便不同基础的读者,我先把整条链路拆开看:一台客户端要成功使用另一台机器共享出来的打印机,中间要经过至少四个环节。

  • 第一层是网络发现与会话层,客户端要通过 SMB(服务器消息块协议)访问主机,对应问题包括“找不到网络路径”“没有权限”“登录失败”;
  • 第二层是后台打印服务层,也就是 Print Spooler,它一停,后面全部白搭;
  • 第三层是驱动与 RPC 调用层,客户端把自己的打印作业交出去时,需要调用主机上的打印驱动,最容易出问题的 0x000011b、0x00000709 都发生在这里;
  • 第四层是打印端口与数据格式层,作业从主机转发到物理打印机时,如果端口监视器坏了,就会出现 771 这类错误。

所以遇到报错,我的习惯是先让用户在主机上打一张测试页。如果主机也打不了,那是主机到打印机的问题,跟共享无关,别瞎折腾客户端;如果主机打印正常,再怀疑客户端到主机的这条链路。这个顺序看起来很简单,但我见过太多人一上来就重装驱动,重装三次之后才发现主机端压根没开共享。

下面是按错误码对号入座的速查表,后文每一类都会展开讲。

错误提示典型场景第一排查方向
0x000011b补丁更新后主机打印正常,客户端连接报错打印后台 RPC 兼容开关、补丁
0x00000709客户端添加共享打印机时提示无法连接Spooler 服务、驱动残留、默认打印机
0x00000520Win11 连 Win7 共享打印机凭据与登录会话
0x00000006连接共享时打印服务中断服务状态、会话稳定性
0x00000012打印作业发送失败驱动与数据格式
0x00000040安装打印驱动时失败驱动架构、管理员权限
771网络打印机端口不工作WSD / TCP-IP 端口监视器

这张表不是让你死记,而是帮你判断动手方向。下面几章我按“最常见”——“次常见”——“混合环境”——“跨系统环境”的顺序展开,每一条都会有具体的修复路径和原理说明。

2. 0x000011b:安全补丁引发的头号共享打印机故障

2.1 为什么一个“安全更新”会把共享打印机搞挂

如果你是在 2021 年 9 月之后突然开始遇到 0x000011b,那基本不用怀疑,是 Windows 的月度安全更新改动了打印后台处理程序(Print Spooler)的 RPC 调用方式。微软为了修复 PrintNightmare 这类高危漏洞,在补丁里把 RPC 调用的身份验证级别强制拉高了,在域环境里有配套组策略可以协调,但在普通工作组、家庭网络、或者没做策略下发的环境里,老客户端仍然用旧的方式调用,直接被拒之门外。

这个错误的典型表现是:主机上打印正常,其他电脑打开共享打印机时报“操作失败,错误为 0x000011b”。很多网管第一反应是重装驱动,但驱动没问题,问题是协议不匹配。如果你在日志里看到“RPC 服务器不可用”“操作失败为 0x000011b”这些字眼,基本就是这个原因。

2.2 首选解法:注册表打开 RPC 隐私等级兼容开关

修复 0x000011b 最干净、影响最小的办法是加一个注册表兼容开关,而不是卸载补丁。这个开关是微软留给系统管理员在非域环境下使用的,等于告诉打印后台处理程序“对 RPC 调用的隐私保护要求可以协商,不强制”。

操作步骤如下:

  1. 在主机或客户端上按下 Win + R,输入regedit打开注册表编辑器。
  2. 定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
  3. 在右侧空白处右键,新建一个 DWORD(32 位)值,命名为RpcAuthnLevelPrivacyEnabled
  4. 将数值数据设为0,基数选择十六进制,点击确定。
  5. 关闭注册表编辑器,重启 Print Spooler 服务,或者直接重启电脑。

重启 Print Spooler 的命令是:

net stop spooler net start spooler

这条命令需要以管理员身份运行。设置完这个键之后,0x000011b 在绝大多数情况下都会消失。

我解释一下原理:RpcAuthnLevelPrivacyEnabled这个键设为 0,表示关闭 RPC 隐私等级强制;设为 1,表示重新强制启用。PrintNightmare 补丁本身没有提供“彻底关闭”的组策略选项,这个注册表键就是官方的后门兼容开关。它不牺牲补丁对 PrintNightmare 的防护能力,只是把 RPC 调用从“必须隐私加密”降级为“可协商”,所以比卸载补丁稳妥得多。

2.3 备选方案:卸载补丁和 IP 直连兜底

如果你连注册表都不想动,或者正处在一个不能马上重启的环境里,可以考虑卸载 2021 年 9 月前后的打印相关更新,需要重点关注的补丁包括 KB5005565、KB5005573、KB5005568、KB5005033、KB5005574 等。

卸载路径:设置 → Windows 更新 → 更新历史记录 → 卸载更新,在列表里找到对应补丁,右键卸载,重启后测试。但我不建议长期这么做,系统更新会自动重新安装这些补丁,几天后故障可能再次出现,办公室又要炸一次锅。

另一个兜底思路是绕过共享打印,改用 IP 直连。比如惠普 M126 这类带网口的设备,直接在客户端添加“使用 TCP/IP 地址端口的打印机”,把端口填成打印机自己的 IP,不走 Windows 共享。这样虽然放弃了驱动集中分发的便利,但至少能立刻恢复办公。

2.4 “打印机共享修复工具”到底修的是什么

热词里提到的“打印机共享修复工具”“NT6 打印机共享修复工具”,本质上干的事就是把我在上面写的注册表键值加上去,顺便把 Spooler 服务设为自动、启动防火墙里文件和打印机共享相关的规则、给 Everyone 加上打印权限。这些操作你手动做也完全可以,释放权掌握在自己手里,还可以避免下载到来源不明的工具。这类工具的核心价值在于快速批量修复,但如果你只有一台电脑出问题,手工操作不超过三分钟。

3. 0x00000709 与“第二层坑”:客户端打印服务与驱动残留

3.1 0x00000709 的报错场景和常见误判

0x00000709 是另一个高频错误,报错文本通常是“Windows 无法连接到打印机。操作失败,错误为 0x00000709。”出现这个错误时,可能是因为客户端机器的 Print Spooler 服务本身状态不对,也可能是本机已有同名打印机残留,甚至是“默认打印机”的注册表项被写坏了。

和 0x000011b 一对比,区别很明显:0x000011b 多半出现在系统更新之后,而 0x00000709 更多出现在安装过多个打印机驱动、删过打印机、或者用 Ghost/精简版系统的电脑上。如果用户之前装过厂商的“全家桶”驱动,卸载时又没卸干净,后台打印机列表里残留了一个虚拟打印机条目,连共享时就会直接撞车。

3.2 从服务到队列的清理顺序

修复 0x00000709 我建议按下面的顺序来,不要上来就删驱动:

  1. 按 Win + R 输入services.msc,找到 Print Spooler,确认它处于“正在运行”状态。如果停了,右键启动;如果反复停,检查依赖服务比如“RPC Endpoint Mapper”是否正常。
  2. 打开资源管理器,进入C:\Windows\System32\spool\PRINTERS,把里面残留的.spl.shd文件全部删掉。这些是没发出去的打印任务缓存,积压多了会阻塞新连接。
  3. 打开“设置 → 设备 → 打印机和扫描仪”,把所有已经断开、带黄色感叹号、或者名字后面带“副本”字样的打印机全部移除。
  4. 打开“控制面板 → 程序和功能”,卸载掉以前装过的打印机驱动套件,然后重新下载安装最新版驱动。

做完这四步,大部分 0x00000709 都能解决。

还有一个容易被忽略的点:如果主机端开启共享的打印机名字里带了空格或者特殊字符(比如“HP LaserJet M126 MFP”),某些老版本的客户端程序在解析共享路径时会出问题。你可以去主机端的“打印机属性 → 共享选项卡”里,把共享名改成一个不带空格的简短名字,比如HP-M126,然后客户端按新共享名重新连接。

3.3 32 位客户端连 64 位主机:驱动架构不匹配

这是我在实际维护中遇到最多、但很多新手完全没概念的问题。主机的 Windows 是 64 位,客户端是 32 位(比如某些老笔记本或者精简测试机),客户端连接共享打印机时,会尝试从主机上拉取驱动。如果主机端只安装了 x64 驱动,32 位客户端就会连接失败。

解决办法:在主机端“打印机属性 → 共享 → 其他驱动程序”里,勾选 x86(32 位)驱动,然后插入驱动光盘或指定驱动安装包路径让系统补上。反过来也一样,32 位主机要服务 64 位客户端,就勾选 x64。

这个细节一般在大型企业域环境里由部署工具处理好了,但小办公室、家庭局域网里经常被忽略。遇到 0x00000709,先看一眼客户端和主机的系统架构是不是一样的,能少走很多弯路。

3.4 注册表直接指定默认打印机的做法

有时候报 0x00000709 是因为系统在“设置默认打印机”这一步失败,客户端把默认打印机指到了一个已经失效的网络路径上。这个失效路径会写在注册表里:

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows

右侧有一个名为Device的字符串值,它保存了当前用户默认打印机的名称、驱动和端口。正常格式是:

HP LaserJet M126 MFP,winspool,Ne00:

如果你在Device里看到一个指向已经不存在共享路径的打印机,直接双击它,把它改成当前可用打印机的名称、驱动、端口格式,然后保存退出,再重启一下 Print Spooler。这个方法对“默认打印机每次开机都跳回旧设备”这种问题非常管用。

4. Windows 版本混用才是重灾区:Win7/Win10/Win11 互相连接的坑

4.1 新版系统连老主机的 SMB 1.0 开关

电脑不是一个朝代换齐的,办公室里既有 Win10、Win11,也有 Win7,甚至还有老旧的 XP 时代打印机。不同 Windows 版本混用时,最先出问题的往往不是打印机驱动,而是 SMB 协议。

Windows 10 和 Windows 11 默认禁用 SMB 1.0,而 Win7 默认还带着 SMB 1.0。如果你用 Win10 或 Win11 去连接一台 Win7 共享的打印机,连接不上是很正常的事,因为两台机器之间在协议协商阶段就谈不拢。热词里那个“win11 连接 win7 共享打印机”“win10 是主机 win7 是客户机”都是这个场景。

解决办法:在 Win10/Win11 上把 SMB 1.0 功能打开。路径是“控制面板 → 程序 → 启用或关闭 Windows 功能”,往下拉找到“SMB 1.0/CIFS 文件共享支持”,勾选“SMB 1.0/CIFS 客户端”和“SMB 1.0/CIFS 服务器”,确定后重启。也可以管理员身份运行 PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -All

需要提醒的是,SMB 1.0 是一个很老的协议,存在已知安全风险,只建议在必须兼容旧设备的局域网内部使用,不要在公网或者不可信网络环境里开启。

4.2 凭据管理器与 0x00000520 登录会话错误

0x00000520 这个错误码在 Win11 连 Win7、或者两台机器不在同一个工作组时很常见。它的本质是登录会话问题:客户端尝试用的账户在主机上没有建立有效会话。这时候你大概率会在弹窗里看到“输入网络凭据”,但输入了正确密码还是报错。

排查路径如下:

  1. 在“控制面板 → 用户账户 → 凭据管理器 → Windows 凭据”里,点击“添加 Windows 凭据”。
  2. 输入主机 IP 或计算机名,用户名填主机上的一个本地账户(比如DESKTOP-ABC\zhangshan),密码填对应密码,点击确定。
  3. 回到打印机连接窗口,用\\192.168.x.x\打印机共享名方式重新连接。

如果你要连的主机是在工作组模式下,尽量不要用“Guest”或“Everyone”去访问,尤其不要在两台机器都开着“仅来宾”模式的情况下去猜。共享打印机本质上也是共享文件夹的一种,主机必须有可用的账户,否则即使你能看到共享名,点击时也会被拒。

4.3 “拒绝从网络访问这台计算机”与 Guest 权限

还有一个和权限相关的隐蔽坑:Windows 10/11 的本地安全策略里,“拒绝从网络访问这台计算机”这个策略默认包含了 Guest 账户。很多办公室的共享打印机设置了“Everyone 打印”,但 Everyone 最终映射为 Guest 身份访问时,直接就被策略拦掉了。报错可能不是 0x00000520,而是“拒绝访问”“找不到网络路径”。

修改方法:

  1. 在主机上按 Win + R 输入secpol.msc打开本地安全策略。
  2. 依次展开“本地策略 → 用户权限分配”。
  3. 右侧找到“拒绝从网络访问这台计算机”,双击打开,把里面的 Guest 账户移除。
  4. 同时在“从网络访问此计算机”里,确认 Guest 或 Users 在里面。

然后到打印机的“打印机属性 → 安全”选项卡,给 Everyone 分配“打印”权限。做完这两步,很多莫名其妙的“无法连接”都会消失。

4.4 0x00000006、0x00000012、0x00000040 的处理思路

这三个错误不像前面几个那么常见,但热词里反复出现,我也简单说一下处理思路。

0x00000006 是“无效句柄”,在共享打印机场景里往往意味着客户端和主机之间的 SMB 会话被中断了,比如主机睡眠、网络波动、Spooler 崩溃。处理方式比较朴素:主机和客户端都重启一遍 Print Spooler,然后把卡在队列里的任务清掉,重新连接。

0x00000012 是“没有更多文件”,常见于打印作业传输过程中数据格式被截断。优先检查驱动版本是否一致,特别是 32 位和 64 位混用时;其次把打印机驱动换成最新的 WHQL 版本,别用精简系统自带的“Microsoft 打印到 PDF”这类虚拟驱动去连共享。

0x00000040 出现在“添加打印机”或“安装打印机驱动”过程中,多和管理员权限相关。右键点击安装程序,选择“以管理员身份运行”;如果你是在主机端添加“其他驱动程序”,也要注意当前用户是否有管理员权限。精简版系统用户遇到 0x00000040 的概率更大,因为这些系统阉割了一些打印组件,驱动安装服务注册不上。

5. 惠普 M126 这类一体机的共享陷阱:端口、WSD 和双向支持

5.1 一体机共享中“一条 USB 线”引发的连锁反应

惠普 M126 系列是办公室里非常常见的一体机,它有一个特点:很多公司买回来只用 USB 线接一台主机,然后主机开启共享。这种连接方式本身没问题,但问题往往出在驱动软件的设置上。惠普这类一体机自带的安装程序默认会搜索网络中的打印机,一旦它发现打印机有 WSD 端口,就会自动创建一堆“网络发现”设备,用户在添加打印机时很容易选错,选到 WSD 端口设备,而不是共享打印机。

WSD 这类端口的问题在于,它在后台 Print Spooler 服务重启之后,经常无法自动恢复设备连接,打印任务会一直挂在队列里,显示“正在打印”或者“错误”。这就是为什么很多人重装了驱动、设置了共享,还是打不出来——因为客户端连的根本不是共享打印机,而是 WSD 端口下的一个“幽灵设备”。

5.2 客户端添加 M126 共享打印机的正确路径

正确做法是:客户端不要用“添加打印机向导”去自动搜索,直接手动添加。

  1. 在主机端记录打印机共享名,推荐修改成一个不带空格的简短短名,比如HP-M126
  2. 客户端按 Win + R,输入\\主机IP回车,能访问到主机共享资源的话说明网络链路没问题。
  3. 右键其中的打印机,选择“连接”;或者通过“设置 → 设备 → 打印机和扫描仪 → 添加打印机”,选择“我需要的打印机不在列表中”,选择“按名称选择共享打印机”,输入\\192.168.1.100\HP-M126
  4. 如果弹出驱动安装提示,选择安装,等待完成后打印测试页。

如果提示找不到网络路径,第一步先确认主机 IP 是否能通,客户端和主机是否在同一网段;第二步用 IP 替换计算机名,因为 NetBIOS 名称解析偶尔会坑人。

5.3 端口监视器故障与“771”的处理

热词里出现的“连接共享打印机报错 771”,在很多情况下和 WSD 端口监视器有关。如果你在打印机属性里看到端口一栏写的是 WSD-xxx,而打印任务又频繁失败,我建议把端口改掉,或者干脆换一条路。

如果打印机本身有网络接口(千兆或者百兆都行),可以手动添加一个标准 TCP/IP 端口:

  1. 打印机属性 → 端口 → 添加端口。
  2. 选择“Standard TCP/IP Port”,点“新端口”。
  3. 输入打印机的 IP 地址,取消勾选“查询打印机并自动选择驱动程序”,下一步完成。
  4. 端口类型选择“原始(Raw)”,协议选 Raw,端口号填 9100,勾不勾“启用双向支持”看情况,通常取消勾选更稳定。

换到 TCP/IP 端口之后,客户端其实就可以不用共享了,直接添加一个“使用现有端口”的打印机实例,选择对应驱动即可。遇到 771 的报错时,这种“干掉 WSD,改走 9100”的方式,我试下来成功率非常高。

另外要提醒一下 M126 的一个常见隐藏坑:安装惠普驱动时,尽量只装“打印机驱动”基础组件,不要顺手装 HP Smart、HP 更新器、HP 程序保护这些常驻软件。它们在后台会干扰共享打印机的枚举和连接,尤其在主机上装了之后,客户端连接时偶尔会触发“无法检测设备”的弹窗。

6. Windows 与银河麒麟混用:跨系统共享打印机的“卡纸”排查

6.1 Windows 侧的基础配置与 SMB 可见性检查

现在不少办公室的桌面环境是 Windows 和银河麒麟混用的。打印机挂在 Windows 10 主机上,麒麟工作站在网络里要添加这台共享打印机,报错形态和 Windows 之间互相连很不一样。最常见的情况是:麒麟端“添加打印机”时能看到共享名,连接后状态显示“正在打印”,但打印机就是不出纸;或者打印队列日志里提示“Unable to get printer status”。

先把 Windows 侧的基础配置检查一遍:

  1. 主机关闭密码保护共享,或者在网络共享中心里临时开放“来宾共享”。
  2. 防火墙的“文件和打印机共享”规则必须放行(TCP 445、TCP 139、UDP 137/138)。
  3. 打印机共享设置里,给 Everyone 或者 Guest 勾选“打印”权限。
  4. 确认主机能正常打印测试页,再用其他 Windows 机器测一次共享,排除 Windows 侧本身的问题。

在这之后,再用麒麟机器去验证。如果你在 Windows 主机上能看到共享名,但麒麟这边连不上,优先考虑 SMB 协议和账户认证问题,而不是打印机本身。

6.2 麒麟端添加打印机的两种方式

麒麟 V10 是基于 Linux 内核的桌面系统,添加共享打印机通常有两种方式。

图形界面方式:

  1. 打开“设置 → 打印机”或者运行system-config-printer
  2. 点击“添加打印机”,选择“网络打印机”。
  3. 输入smb://Windows主机IP/共享名,例如smb://192.168.1.100/HP-M126
  4. 系统会弹出认证窗口,输入 Windows 主机上允许访问的账户和密码。
  5. 如果系统识别到打印机,会列出对应的驱动。没有自动识别时,手动选择一个通用驱动(比如 Generic PCL 6 或 Generic PostScript),然后应用。

命令行方式:

smbclient -L //192.168.1.100 -U zhangshan

这条命令用账户zhangshan查看主机上共享的资源列表,能看到打印机共享名说明 SMB 层是通的。如果提示NT_STATUS_ACCESS_DENIED,说明账户或权限有问题;如果提示NT_STATUS_CONNECTION_REFUSED,先检查 Windows 防火墙。

6.3 显示“正在打印”但不出纸的三大根因

我在麒麟环境里处理这个问题比较多,总结下来“正在打印”但不出纸主要有三个原因。

第一个原因是 Windows 主机端账户权限回收。很多主机策略会在一定时间内强制注销空闲会话,麒麟端的打印作业进到 Windows 队列后,等主机恢复会话时作业已经丢失了。解决办法是给麒麟端配置一个专用账户,并保持密码不过期;不要用 Guest,Guest 会话被回收得更快。

第二个原因是麒麟端驱动不匹配。打印机挂在 Windows 上,驱动是 Windows 驱动,Linux 端发送数据时要经过 Samba/CUPS 转换。如果打印机本身只支持 PCL 5 或 PCL 6,而你在麒麟端选的是 PostScript 驱动,打印作业会把 PostScript 指令直接推给打印机,结果就是打印机收到一堆看不懂的代码,表现为“正在打印”但是没有纸张动作。处理方式是优先选择打印机同品牌同型号的 Linux 驱动,或者选择打印机支持的 PCL 语言通用驱动。

第三个原因是 Windows 主机端共享名里有特殊字符。麒麟的 smb 地址解析对空格和长共享名比较敏感,建议把共享名改成简短无空格的格式,比如HP-M126,再用smb://主机IP/HP-M126方式连接。

6.4 适合跨系统场景的驱动选择:PCL 还是 PostScript

在跨系统共享打印机的场景里,驱动选择直接决定能不能出纸。惠普 M126 这类低端一体机通常原生支持 PCL 和部分 PostScript 仿真,在麒麟端最稳妥的做法是:

  • 如果麒麟仓库里有惠普官方 Linux 驱动包(比如 hplip),优先安装匹配型号的驱动;
  • 没有官方驱动时,选择“Generic PCL 6/5”通用驱动,绝大多数激光一体机能认;
  • 尽量避免使用 PostScript 通用驱动,除非打印机本身明确标注“原生 PostScript”;
  • 如果打印机打印出来的内容是乱码,把驱动换回 PCL,或者反过来试一次,故障即可定位。

我在实际维护中还遇到过一种情况:麒麟端显示任务已发送,但 Windows 主机队列里根本没有这条任务。这时候不要去查打印机,重点检查麒麟端的 Cups 服务状态和日志,用systemctl status cups看服务是否正常,再看/var/log/cups/error_log里 smb 后端有没有报错。跨系统环境排错的顺序永远是:先看 SMB 层通不通,再看队列是否进入 Windows 端,最后才轮到驱动和数据格式。

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

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

立即咨询