跳到主要內容
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 站台沒有加入用戶端的 Proxy 略過清單。

一、先把 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 雲端硬碟、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 的單檔上限。

接著看