新换win11电脑搜不到局域网打印机,首要确认是否同子网并ping通打印机ip;其次将wifi设为“专用”网络,启用网络发现、文件和打印机共享,并关闭密码保护共享;再启动function discovery resource publication、ssdp discovery、upnp device host、server、workstation五项服务;最后可尝试unc路径或tcp/ip端口(9100)直连,并清空spool缓存重启print spooler。

新换的 Win11 电脑连上公司或家用 WiFi 后,在“设置→打印机和扫描仪”里点“添加打印机或扫描仪”,等半天列表空空如也,隔壁工位的旧电脑却能立刻搜到同一台共享打印机,问题就出在无线网络的发现机制没打通——不是驱动没装、不是打印机没开,而是系统压根没把这台设备当“局域网里的熟人”看待。
确认是否真在同一局域网
先别急着改设置,用 cmd 验证基础连通性:按 Win+R → 输入 cmd → 回车 → 输入 ipconfig 查看本机 IPv4 地址(比如 192.168.1.105),再找一台能连打印机的电脑,查它的 IP(比如 192.168.1.102)——如果前三个数不一致(如一个是 192.168.1.x,另一个是 192.168.5.x),说明你连的是不同子网的 WiFi,比如公司有访客网和办公网两个 SSID,必须连办公网才能访问打印机。
接着 ping 打印机 IP:在 cmd 里输入 ping 192.168.1.254(把 254 换成你打印机的实际 IP)。如果返回“请求超时”,说明网络层不通,路由器可能隔离了无线客户端之间通信,需联系 IT 开启 AP 隔离关闭选项。
将 WiFi 网络设为“专用”并启用发现功能
按下 Win + I 打开“设置”,进入“网络和 Internet” → “高级网络设置” → 找到当前连接的 WiFi 名称(如“Office-WiFi”)→ 点击它 → 查看“网络配置文件类型”是否显示为“公用网络”。【这是90%以上局域网不可见问题的根源】
若显示为“公用网络”,点击下方“网络配置文件类型” → 选择“专用” → 关闭窗口等待 5 秒,系统自动应用变更。
接着进入“高级网络设置” → “网络和共享中心” → “更改高级共享设置” → 展开“专用”部分 → 勾选“启用网络发现”和“启用文件和打印机共享” → 向下滚动到“所有网络”区域 → 在“密码保护的共享”下选择“关闭密码保护共享” → 点击“保存更改”。
【注意】保存后务必右键任务栏“Windows 资源管理器” → 选择“重新启动”,否则新设置不生效。
启动三项关键发现服务
方法一:快速启用 Function Discovery 相关服务
按 Win+R → 输入 services.msc → 回车 → 等待服务列表加载完成 → 依次找到并双击打开以下三项服务:
① Function Discovery Resource Publication
② SSDP Discovery
③ UPnP Device Host
确保每项的“启动类型”设为“自动(延迟启动)”,“服务状态”为“正在运行”。
方法二:补全底层支撑服务
在同一 services.msc 窗口中,继续查找并启用:
• Server
• Workstation
这两项服务是 Windows 共享协议栈的基础,缺一不可。若状态为“已停止”,右键→“启动”;若启动类型为“手动”,双击→改为“自动”→“应用”。
绕过扫描失效,直连 UNC 或 TCP/IP 端口
按 Win + R 打开“运行”对话框,输入完整 UNC 路径:\192.168.1.100MyPrinter(把 192.168.1.100 替换为共享打印机所在主机的实际 IP,MyPrinter 替换为该主机上设置的纯英文共享名)→ 回车。
若弹出登录窗口,说明路径正确但缺凭据;若直接报错“找不到网络路径”,请返回上一步确认网络发现已启用。
如果 UNC 失效,改走 TCP/IP 端口:进入“设置→蓝牙和其他设备→打印机和扫描仪”→ 点击“添加打印机或扫描仪”→ 选择“我需要的打印机不在列表中”→ 选择“通过 TCP/IP 地址或主机名添加打印机”→ 在“IP 地址”栏填入打印机静态 IP(如 192.168.1.128)→ 协议保持 TCP/IP → 端口号固定填 9100 → 完成。
清空打印后台缓存并重启核心服务
第一步:停掉 Print Spooler
Win+R → 输入 services.msc → 找到 Print Spooler → 右键 → “停止”。
第二步:删光缓存文件
打开文件资源管理器,地址栏直接粘贴:C:WindowsSystem32spoolPRINTERS → 全选里面所有文件(含 .shd 和 .spl 结尾的)→ 直接 Delete 删除。【这一步不能跳过,卡住的打印任务就藏在这里,不删干净,重启服务也没用】
第三步:重启并固化服务
回到 services.msc,右键 Print Spooler → “启动”,并把“启动类型”改为“自动”。











