跳到主要内容
AnyStorage
免费下载

WebDAV 错误码

WebDAV 错误 0x80070043:找不到网络名

映射 WebDAV 网络驱动器报 0x80070043,原因通常是 WebClient 服务、HTTP 上的 Basic 认证或 URL 写法。逐条给出可验证的修法。

0x80070043 到底在说什么、值得排查的四个原因,以及对应的服务与注册表改动。

WebDAV 0x80070043,找不到网络名,WebClient 服务

这个错误码真正的含义

在「映射网络驱动器」里填好 WebDAV 地址,等几秒钟,然后:

text

Windows 无法访问 \\dav.example.com
错误代码: 0x80070043
找不到网络名。

同一个地址在浏览器里能打开,换一个 WebDAV 客户端也能连上,文件资源管理器却坚持说找不到网络名。

这不是 DNS 问题,绝大多数情况下也与服务器无关。0x80070043 是 Win32 错误 67 包装成 HRESULT 的形式,微软的错误码参考里它叫 ERROR_BAD_NET_NAME,描述是「The network name cannot be found.」。前缀 0x8007 表示「被包装过的 Win32 错误」,0x43 就是十进制 67。命令行下同一个失败显示为「发生系统错误 67。」,所以 net use 错误 67 这一页是从另一个角度讲同样的原因。

Windows 把 WebDAV 早期阶段的所有失败都归到这一句话上。知道背后是哪四件事,排查两分钟就够。

微软列出的原因(按排查顺序)
原因怎么确认怎么修
WebClient 服务没有运行Get-Service WebClient 显示 Stopped启动它,并把启动类型设为自动
明文 HTTP 上的 Basic 认证地址是 http://,而且根本不弹密码框BasicAuthLevel 设为 2
服务器没启用 WebDAV,或路径不对curl -I 的响应里没有 DAV:映射 WebDAV 根路径,而不是站点根
URL 形式不对:缺协议、缺端口、子路径错向导还会提示「你输入的文件夹似乎无效」http://host:port/path,或下文的 UNC 形式

微软的 WebDAV 重定向程序文档为「系统错误 67」列了六个条件。上表没写的两个是:目标服务器上 IIS 没有运行;使用 Windows 身份验证的 FQDN 站点没有加入客户端的代理绕过列表。

一、先把 WebClient 服务启动起来

映射出来的 WebDAV 驱动器由一个叫 WebClient 的服务负责。微软在 2023 年 11 月把它标为弃用,同一份公告里明确写着 Webclient 服务在 Windows 上默认不启动。所以一台干净的 Windows 11,在你手动启动服务之前,WebDAV 映射一定失败。

用管理员权限的 PowerShell:

powershell

Get-Service WebClient | Select-Object Status, StartType
Set-Service -Name WebClient -StartupType Automatic
Start-Service -Name WebClient

命令提示符下等价写法:

cmd

sc.exe config WebClient start= auto
sc.exe start WebClient

start= 后面那个空格不是笔误。微软的 sc.exe config 参考明确写着选项与取值之间必须有空格,省掉就会执行失败。论坛里到处转的 start=auto 正是省掉的那种写法。

还有一个坑:WebClient 会记住「不是 WebDAV 服务器」的主机,ServerNotFoundCacheLifeTimeInSec 默认 60 秒。你刚改好就重试,拿到的可能是缓存里的失败。等一分钟,或者重启服务,再判断改动有没有生效。

二、允许 Windows 向 http:// 发送 Basic 凭据

这一条最耗时间,因为 Windows 连密码都不问就失败了。

WebClient 读一个叫 BasicAuthLevel 的注册表值。微软文档给出三个取值:0 禁用 Basic 认证,1 只在 SSL 站点启用,2 在 SSL 与非 SSL 站点都启用。默认是 1。把它指向一个用 Basic 认证的 http:// 端点,重定向程序会在第一次凭据交换之前就拒绝,然后报 0x80070043。

cmd

reg add "HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters" /v BasicAuthLevel /t REG_DWORD /d 2 /f
net stop WebClient
net start WebClient

重启服务是必须的。微软的文档写明:改动这个键下的任何值之后,都要重启 WebClient 或重启计算机。很多人改完立刻重试、看到同样的错误码,于是认定这个修法是玄学,差的就是这一步。

也要把代价说清楚:级别 2 意味着用户名和密码以明文上路。对 127.0.0.1 没问题,在自己掌控的网络里可以接受,跨公网就是错的——那种场合应该改用 https:// 端点。

三、按重定向程序认的格式写 URL

资源管理器的向导要的是完整 URL,包含协议和非默认端口,例如 http://dav.example.com:8080/remote.php/dav/files/alice。只写主机名会被当成 SMB,永远到不了 WebDAV 服务器。

命令行下有两种写法。纯 URL 形式出现在微软的操作说明里:NET USE * http://www.example.com。UNC 形式由 DavGetHTTPFromUNCPath 函数的文档定义为 \\server[@SSL][@port][\path],其中 @SSL 表示走 HTTPS,@port 在端口不是 80 或 443 时必须写。

powershell

net use Z: \\dav.example.com@SSL@443\DavWWWRoot\files /user:alice
net use Y: http://127.0.0.1:3211/ /user:anystorage

DavWWWRoot 是告诉重定向程序「这是 WebDAV 服务器的根」的关键字,微软自己那篇关于重连的排障文章用的就是这个写法。同一片文档里还有两个值得知道的细节:WebDAV 扩展规范记载 Vista 之前的客户端只支持 80 端口;微软还明确写着,从 Windows 7 起 Basic 认证的凭据无法由凭据管理器保存,所以 Basic 认证的映射只能重新连接,不会在登录时静默恢复。

如果是旧密码在被反复重放,先清掉:控制面板、凭据管理器、Windows 凭据,删掉该主机的所有条目,再用 net use Z: /delete 丢掉那个半成品映射。

映射成功但复制失败的情况

那是另一回事。映射本身通了,但超过 50MB 左右的文件以 0x800700DF 失败,说明撞上了 FileSizeLimitInBytes,默认值 50,000,000 字节,硬上限约 4GB。详见 Windows WebDAV 50MB 限制

映射本机的 WebDAV 服务,比如 AnyStorage 的 3211

AnyStorage 在你自己的机器上跑一个 WebDAV 服务:侧边栏 Services,WebDAV 标签,按 Start,就得到 http://127.0.0.1:3211。应用里已打开的每个存储连接都是这个根下的一个文件夹,所以一个盘符就能同时覆盖 S3 桶、Cloudflare R2、Backblaze B2、MinIO、Google Drive、OneDrive、Dropbox 和 SFTP 主机。这是网络映射而不是文件系统驱动,所以用不到 WinFsp。

上面所有规则对它同样有效。端点是 HTTP,Basic 认证始终开启,所以 BasicAuthLevel 必须是 2,资源管理器才会理它。凭据在 WebDAV 标签里:默认用户名 anystorage,密码是首次使用时生成的 24 个字符,建议复制而不是手打。两点需要提前知道:免费版的挂载是只读的,读写属于 Pro;应用重启后,只有你在本次会话中打开过的连接才会出现在根目录下,因为连接是懒加载的。

0x80070043 和错误 67 是一回事吗?

是。Win32 错误 67 就是 ERROR_BAD_NET_NAME0x80070043 是它包装成 HRESULT 后的样子。资源管理器显示十六进制,net use 显示十进制,原因和修法完全相同。

改完 BasicAuthLevel 需要重启电脑吗?

不用,但必须重启 WebClient 服务,这一步最常被跳过。net stop WebClientnet start WebClient 就够了。

把 BasicAuthLevel 设成 2 危险吗?

它会让 Windows 在未加密的连接上发送 Basic 凭据,微软文档对此的一般性表述是强烈不建议。对回环地址来说流量不出本机;对任何需要经过网络的场合,请改用 HTTPS 端点,并把值保持在 1

微软已经弃用 WebDAV,这套还能用多久?

2023 年 11 月的弃用意味着 WebClient 不再继续开发,将来的版本里可能被移除。目前它仍然随系统发布,也仍然能用。这正是不要把流程只押在 Windows 重定向程序上的理由:直接和存储对话的客户端,没有要启动的服务,也没有 4GB 的单文件上限。

接着看