错误代码0x80070035等连接失败源于网络发现未启用或共享服务未响应,需依次用netsh启用防火墙规则、PowerShell启动FDResPub/SSDPSRV/upnphost/Dnscache服务、reg命令启用AllowInsecureGuestAuth、netsh重置协议栈与Winsock、最后用PowerShell验证响应。

如果您尝试在局域网内访问其他电脑,但系统提示连接失败并显示错误代码(如0x80070035、0x8007003b、0x80070079等),则很可能是网络发现未启用或底层共享服务未响应。以下是通过命令行快速开启网络发现与共享功能的多种代码指令操作方法:
一、使用netsh命令启用网络发现规则组
Windows防火墙默认会阻止网络发现所需的多播和UDP通信,通过netsh可批量启用对应入站规则,无需图形界面干预。该方法直接作用于防火墙策略层,适用于远程管理或脚本部署场景。
1、以管理员身份运行命令提示符或PowerShell。
2、执行以下命令启用网络发现核心规则组:
netsh advfirewall firewall set rule group="网络发现" new enable=Yes
3、执行以下命令启用文件和打印机共享规则组:
netsh advfirewall firewall set rule group="文件和打印机共享" new enable=Yes
4、执行以下命令确保SMB相关端口(TCP 445、UDP 137-138)未被拦截:
netsh advfirewall firewall add rule name="SMB-In" dir=in action=allow protocol=TCP localport=445
二、使用PowerShell命令批量启用网络发现与共享服务
PowerShell可一次性启动所有依赖网络发现的关键系统服务,并将其启动类型设为自动,避免逐项手动配置。该方法覆盖Function Discovery、SSDP、UPnP等易被忽略的服务项。
1、以管理员身份运行PowerShell。
2、执行以下命令启用并启动Function Discovery Resource Publication服务:
Set-Service "FDResPub" -StartupType Automatic; Start-Service "FDResPub"
3、执行以下命令启用并启动SSDP Discovery服务:
Set-Service "SSDPSRV" -StartupType Automatic; Start-Service "SSDPSRV"
4、执行以下命令启用并启动UPnP Device Host服务:
Set-Service "upnphost" -StartupType Automatic; Start-Service "upnphost"
5、执行以下命令启用并启动DNS Client服务(保障NetBIOS名称解析):
Set-Service "Dnscache" -StartupType Automatic; Start-Service "Dnscache"
三、使用reg命令启用不安全来宾登录(适配匿名共享)
当目标共享设备(如旧NAS或Samba服务器)允许Guest账户免密访问时,Windows 10/11默认阻止该行为。通过注册表命令可绕过此限制,无需打开gpedit.msc(家庭版亦适用)。
1、以管理员身份运行命令提示符。
2、执行以下命令写入AllowInsecureGuestAuth注册表项:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v "AllowInsecureGuestAuth" /t REG_DWORD /d "1" /f
3、执行以下命令刷新组策略缓存(立即生效):
gpupdate /force
四、使用netsh命令重置网络发现相关组件状态
当网络发现功能异常且常规设置无效时,可通过netsh重置网络堆栈与WinHTTP Web Proxy Auto-Discovery Service(WPAD)配置,清除可能存在的协议栈污染或代理干扰。
1、以管理员身份运行命令提示符。
2、执行以下命令重置IPv4和IPv6协议栈:
netsh int ip reset
3、执行以下命令重置Winsock目录(修复SMB连接底层套接字):
netsh winsock reset
4、执行以下命令重启网络发现相关服务:
net stop fdrespub && net start fdrespub && net stop ssdpsrv && net start ssdpsrv
五、使用PowerShell命令验证网络发现是否生效
在完成上述任一指令操作后,需立即验证本机是否已成功加入网络发现体系。PowerShell提供原生命令直接探测本地网络广播响应,无需依赖图形界面刷新。
1、以管理员身份运行PowerShell。
2、执行以下命令列出当前网络中已响应的设备(需等待约15秒):
Get-NetNeighbor | Where-Object { $_.LinkLayerAddress -ne "00-00-00-00-00-00" } | Select-Object IPAddress, LinkLayerAddress
3、执行以下命令测试对局域网内常见共享主机名的解析能力:
Test-NetConnection -ComputerName "DESKTOP-ABC" -Port 445
4、执行以下命令强制触发网络发现广播并捕获响应(仅限专用网络):
Invoke-Command -ScriptBlock { net view /all } -ComputerName localhost

















