跳到主要內容
AnyStorage
免費下載

WebDAV 錯誤碼

net use 錯誤 67:找不到網路名稱

用 net use 對應 WebDAV 出現「發生系統錯誤 67」的原因不多。WebClient 服務、HTTP 上的 Basic 驗證、UNC 寫法,逐項給出可用的指令。

net use 為什麼對 WebDAV 位址回傳系統錯誤 67、微軟列出的原因,以及修好之後真正能用的指令。

net use 錯誤 67,發生系統錯誤 67,net use WebDAV

只有兩行,沒有解釋

cmd

C:\>net use Z: http://dav.example.com/
發生系統錯誤 67。

找不到網路名稱。

錯誤 67 在微軟的 Win32 錯誤清單裡是 ERROR_BAD_NET_NAME,說明為「The network name cannot be found.」。檔案總管用十六進位顯示同一個失敗,也就是 錯誤 0x80070043。十進位 67 等於 0x430x8007 是 Windows 把 Win32 錯誤包成 HRESULT 時加的前綴。一個失敗,兩種寫法。

命令列更適合排查:一次只改一個變數,結果立刻看得到。

微軟說的原因

WebDAV 重定向程式文件列出六個會讓磁碟機對應回傳系統錯誤 67 的條件。在非 IIS 的伺服器上,前三個幾乎能解釋所有情況。

文件記載的六個原因與對應動作
文件記載的原因對你的意義
伺服器沒安裝或沒執行 IIS只對 IIS 目標有意義;先確認一般 GET 有回應
用戶端沒安裝 WebDAV 重定向程式Windows Server 要加「桌面體驗」功能;桌面版內建
用戶端的 WebClient 服務沒有執行啟動它,並設為自動
站台沒有啟用 WebDAV檢查回應裡有沒有 DAV: 標頭
用 HTTP 而不是 HTTPS 搭 Basic 驗證調高 BasicAuthLevel,或把端點換成 HTTPS
Windows 驗證的 FQDN 站台缺少 Proxy 略過設定在用戶端的略過清單加入該站台

步驟一:確認重定向程式還活著

對應出來的 WebDAV 磁碟機由 WebClient 服務處理。微軟在 2023 年 11 月淘汰了它,並在同一份公告裡寫明 Webclient 服務在 Windows 上預設不會啟動。在較新的機器上,這一條是答案的機率最高。

powershell

Get-Service WebClient | Format-List Name, Status, StartType
Set-Service -Name WebClient -StartupType Automatic
Start-Service -Name WebClient

命令提示字元版本要求每個 = 後面有空格。微軟的 sc.exe config 參考寫明選項與值之間必須有空格,省掉就會失敗——被到處複製的 start=auto 正是省掉的那種。

cmd

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

服務起來後再試一次。如果之前已經失敗過,等一分鐘:ServerNotFoundCacheLifeTimeInSec 預設 60 秒,在這段時間內 WebClient 會直接回傳快取的失敗,根本不會連伺服器。

步驟二:把指令寫對

net use 對 WebDAV 接受兩種形式。純 URL 形式出現在微軟的操作說明:NET USE * http://www.example.com* 代表用下一個空閒磁碟機代號。UNC 形式由 DavGetHTTPFromUNCPath 函式的文件定義為 \\server[@SSL][@port][\path]@SSL 代表 HTTPS,@port 在連接埠不是 80 或 443 時必寫。DavWWWRoot 指向 WebDAV 伺服器的根。

cmd

rem 預設連接埠的 HTTPS
net use Z: \\dav.example.com@SSL\DavWWWRoot\files /user:alice *

rem 明確寫連接埠的 HTTPS
net use Z: \\dav.example.com@SSL@443\DavWWWRoot\files /user:alice *

rem 自訂連接埠的明文 HTTP
net use Y: http://dav.example.com:8080/remote.php/dav/files/alice /user:alice *

結尾那個 * 不是裝飾。文件裡的 net use 語法接受密碼或 *,寫 * 時 Windows 會提示輸入,密碼不會留在指令歷史裡。想讓對應在重開機後仍存在,加上 /persistent:yes

光是寫法就能造成錯誤 67 的有三種:漏掉協定(於是走了 SMB)、漏掉非預設連接埠、以及伺服器在 /dav/remote.php/dav/files/alice 這類子路徑下發布 WebDAV,你卻對應了站台根。

步驟三:允許 HTTP 上的 Basic 驗證

如果端點是 http:// 且使用 Basic 驗證,Windows 會在跳出密碼視窗之前就拒絕。開關是 WebClient 參數機碼下的 DWORD BasicAuthLevel,文件給了三個值:0 停用 Basic 驗證,1 只在 SSL 站台,2 在 SSL 與非 SSL 都允許。預設是 1

cmd

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

重啟服務是必要的,微軟文件對這個機碼下的每個值都這麼寫。同時要清楚代價:等級 2 會讓憑證以明文傳輸。對 127.0.0.1 合理,對自己的區域網路可以接受,對公網就是錯的。

當錯誤代號不是 67 的時候

同一份文件還列出 net use 對 WebDAV 端點回傳的其他代號,它們比 67 有用得多。認得它們,就不會把 WebClient 的解法套到權限問題上。

net use 對 WebDAV 伺服器的其他失敗
錯誤Windows 印出的文字實際意義
5Access is denied帳號或密碼錯誤,或對內容沒有權限
58The specified server cannot perform the requested operation伺服器主機名稱繫結不符
59An unexpected network error occurred站台或其應用程式集區已停止
224Access Denied. Before opening files in this location, you must first add the web site to your trusted sites listURL 所在的區域不被重定向程式信任
1244The operation being request was not performed because the user has not been authenticated沒有啟用任何驗證方式,或登入類型不符
1920The file cannot be accessed by the system該帳號沒有對應的編寫規則

1244 那句話連拼字錯誤都是微軟原文。

重開機之後就消失的對應

對應可用但登出後消失,這是有記載的行為而不是 bug:微軟明確說明從 Windows 7 起,Basic 驗證的憑證無法由憑證管理員保存,並在自家的疑難排解文章裡建議用登入指令碼重新執行 net use。對包含本機服務在內的 Basic 驗證 WebDAV,這就是實務上的答案。

powershell

if (-not (Test-Path Y:)) {
  net use Y: http://127.0.0.1:3211/ /user:anystorage
}

對應本機的 WebDAV 伺服器,例如 AnyStorage

AnyStorage 就在你面前這台電腦上跑 WebDAV 伺服器:側邊欄 Services、WebDAV 頁籤、Start,端點是 http://127.0.0.1:3211。應用程式裡開著的每個連線都是根底下的一個資料夾,所以一個磁碟機代號就能到達 S3 儲存桶、Cloudflare R2、Backblaze B2、MinIO、Google 雲端硬碟、OneDrive、Dropbox 或 SFTP 主機。不必安裝檔案系統驅動程式,所以 WinFsp 從來不會登場。

Windows 不會因為伺服器在本機就放寬規則,上面的項目照樣適用:HTTP 端點需要 BasicAuthLevel2。帳號預設 anystorage,密碼是首次使用時產生的 24 個字元,兩者都在 WebDAV 頁籤裡附複製按鈕。免費版的掛載唯讀,讀寫屬於 Pro。連線是延遲建立的,所以啟動後只有在應用程式裡開過的連線才會出現在根目錄。

錯誤 67 和 0x80070043 是同一件事嗎?

是。67 是 Win32 的 ERROR_BAD_NET_NAME0x80070043 是同一個值包成 HRESULT 供外殼顯示。

net use 成功了,但檔案總管裡看不到磁碟機?

它們在不同的安全性內容中執行。用管理員命令提示字元建立的對應,非管理員的檔案總管看不到,反之亦然。想在檔案總管看到,就用一般的命令提示字元執行。

URL 結尾要加斜線嗎?

加了沒壞處。重定向程式的第一個請求是對你給的路徑送 OPTIONS,有些伺服器對此敏感。不加失敗時,先補斜線再去懷疑憑證。

這些步驟可以全部跳過嗎?

只為瀏覽的話,磁碟機代號確實方便。大量傳輸建議在直接對接儲存 API 的用戶端裡做:沒有服務要啟動,沒有登錄檔要改,也沒有 4GB 的單檔上限。

接著看