この問題を検索すると、結論の出ていないフォーラムの投稿ばかりが並びます。理由のひとつは、「Windows が WebDAV に接続できない」がひとつの障害ではないことです。少なくとも九つあり、しかも Windows はそのうちのいくつかを同じ曖昧なメッセージで報告します。
なので症状から引いてください。表で自分が見たエラー文言を探し、指し示された確認手順に進みます。最初の二つでほとんどが片づき、その下はどれも「似たメッセージを着た別の問題」です。
| Windows の表示 | 原因 | 対処 |
|---|---|---|
エラー コード: 0x80070043 | WebClient 停止、HTTP 上の Basic 認証、URL の形 | 確認 1〜3、詳細は エラー 0x80070043 |
システム エラー 67 が発生しました。 | 同じ三つの原因を net use が報告した形 | net use のエラー 67 |
| 入力されたフォルダーは有効ではないようです。 | 多くは WebClient 未起動、またはサブパス違い | 確認 1 と 3 |
約 50MB 超のファイルで 0x800700DF | FileSizeLimitInBytes の既定値 50,000,000 バイト | 50MB 制限 |
システム エラー 5 が発生しました。 | アカウントかパスワードの誤り、権限不足 | 確認 4 |
システム エラー 1244 が発生しました。 | サーバー側で認証方式が有効でない、ログオンの種類の不一致 | サーバー側 |
システム エラー 58 が発生しました。 | 使った名前がサーバーのバインディングに無い | サーバー側 |
システム エラー 59 が発生しました。 | サイトまたはアプリケーション プールが停止 | サーバー側 |
システム エラー 224 が発生しました。 | URL のゾーンがリダイレクターに信頼されていない | 信頼済みサイトに追加 |
システム エラー 1397 が発生しました。(相互認証の失敗) | 証明書認証のドライブをアイドル後に再接続した | 切断してから再割り当て |
| マウントはできるが Mac で書き込みが失敗 | Finder は LOCK を宣言するクラス 2 のサーバーを求める | Mac で WebDAV が遅い |
上のエラー番号と文言は、1244 の誤字も含めてマイクロソフトの WebDAV リダイレクターのドキュメントに出ているものです。
確認 1:WebClient サービスは動いているか
Windows で割り当てた WebDAV ドライブは、すべて WebClient というサービスを通ります。マイクロソフトは 2023 年 11 月にこれを非推奨とし、同じお知らせで Webclient サービスは既定では開始されないと明記しています。素の Windows 11 では、他のどの原因よりこれが多いです。
powershell
Get-Service WebClient | Format-List Name, Status, StartType
Set-Service -Name WebClient -StartupType Automatic
Start-Service -Name WebClientservices.msc で「状態」列が空だったなら、WebDAV リダイレクターは読み込まれておらず、どうやっても割り当ては成功しません。そのときエクスプローラーが出すのは「入力されたフォルダーは有効ではないようです。」で、悪くもない URL を延々と疑うことになります。
確認 2:HTTP 上の Basic 認証を許可しているか
WebClient は BasicAuthLevel というレジストリ値を読みます。文書化されている値は三つで、0 は無効、1 は SSL サイトのみ、2 は SSL と非 SSL の両方です。既定値は 1 なので、Basic 認証の http:// エンドポイントはパスワードを聞かれる前に失敗します。
cmd
reg add "HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters" /v BasicAuthLevel /t REG_DWORD /d 2 /f
net stop WebClient
net start WebClient再起動は省略できません。マイクロソフトのドキュメントも、このキーの値を変更したら WebClient を再起動するか PC を再起動する必要があると書いています。これを飛ばすせいで「この対処は迷信」と結論する人が多いのです。
レベル 2 の代償も理解しておきます。資格情報は平文で流れます。127.0.0.1 なら妥当、自分の管理下のネットワークなら許容範囲、インターネット越しには不適切で、その場合は HTTPS を使います。
確認 3:URL はリダイレクターが受け付ける形か
- スキームを書く。
http://host:port/path。ホスト名だけだと SMB として扱われ、サーバーに届きません。 - 80 と 443 以外のポートは必ず書く。WebDAV 拡張の仕様書には、Vista 以前のクライアントがポート 80 しか扱えなかったと記録されています。だから書式が後付けに見えます。
- サブパスを正確に合わせる。
/davや/remote.php/dav/files/aliceのような公開パスに対し、一階層上を割り当てると同じ「有効ではないようです」になります。 - コマンドラインならどちらでも可。
net use * http://www.example.com、または\\server[@SSL][@port][\path]という UNC 形式で、DavWWWRootがサーバーのルートを指します。
確認 4:古い資格情報が送られていないか
コントロール パネル、資格情報マネージャー、Windows 資格情報で、そのホストの項目をすべて削除します。そのうえで net use Z: /delete で中途半端な割り当てを落としてから再試行します。パスワードを直しても 0x80070043 が残るのは、間違ったものがキャッシュに残っているからです。
関連して、マイクロソフトは Windows 7 以降 Basic 認証の資格情報を資格情報マネージャーに保持できないと明記しています。つまりサインイン時に自動復元はされません。同社の推奨はログオン スクリプトで net use をやり直すことです。
確認 5:誰も触れないタイムアウトとキャッシュ
以下はすべて HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters にあり、すべてマイクロソフトが文書化しており、すべてサービス再起動で有効になります。「ときどき動く」という報告の多くはここで説明できます。
ServerNotFoundCacheLifeTimeInSec、既定 60。WebDAV サーバーではなかったホストを覚えていて、一分間は即座に失敗を返します。直してすぐ再試行すると同じエラーになる理由です。InternetServerTimeoutInSec、既定 30、およびLocalServerTimeoutInSec、既定 15。リモートとローカルの接続タイムアウトです。SendReceiveTimeoutInSec、既定 60。リクエスト単位なので、大きなファイルの遅いPUTはサイズ制限ではなくここで落ちることがあります。FileAttributesLimitInBytes、既定 1,000,000。ひとつのコレクションの全プロパティ合計の上限で、数千件のフォルダーでは届きます。SupportLocking、既定 1。LOCKを実装しないサーバーに対する挙動が変わります。FileNotFoundCacheLifeTimeInSec。大文字小文字を区別する Linux の WebDAV サーバーに接続するときは 0 にすることをマイクロソフトが推奨しています。大文字小文字だけ違う名前がファイル未検出やデータ上書きを招くためです。
Windows の問題ではない場合
- macOS では症状が違います。マウントはできて書き込みだけ静かに失敗する。Finder が
LOCKを宣言するクラス 2 のサーバーを求めるためです。Mac で WebDAV が遅い を参照してください。 - 接続する側ではなくサーバーを立てたいなら Windows で WebDAV サーバーを動かす です。
- 割り当ては動くのに 50MB でコピーが止まるなら、ここまでの話はどれも外れです。50MB 制限 を見てください。
ローカルのサーバー(AnyStorage の 3211 番)を割り当てる
AnyStorage は自分の PC で WebDAV サーバーを動かします。サイドバーの Services、WebDAV タブ、Start、エンドポイントは http://127.0.0.1:3211 で、ポートは変更できます。アプリで開いている接続はすべてルート直下のフォルダーになるので、割り当て一つで S3 バケット、Cloudflare R2、Backblaze B2、MinIO、Google ドライブ、OneDrive、Dropbox、SFTP ホストに届きます。
確認 1 と 2 はそのまま当てはまります。エンドポイントは HTTP、Basic 認証は常に有効なので、WebClient が動いていて BasicAuthLevel が 2 である必要があります。資格情報は WebDAV タブにあり、既定のユーザー名は anystorage、パスワードは生成された 24 文字です。無料版ではマウントは読み取り専用で、読み書きは Pro の機能です。接続は遅延して行われるため、そのセッションでアプリ内から開いた接続だけがルートに現れます。現行バージョンに TLS はなく、だからこそ既定で 127.0.0.1 にバインドし、LAN 公開を有効にする前に警告します。
全部試してもだめでした。
同じ URL に別の WebDAV クライアントを向けてください。そちらが接続できてエクスプローラーができないなら、問題はサーバーではなくリダイレクターです。レジストリをこれ以上いじっても変わりません。
大量転送に割り当てドライブを使うべきですか。
割り当てドライブは閲覧と小さなドラッグに向いています。まとまった転送はストレージと直接やり取りするクライアントで行うのが筋で、WebClient もそのレジストリ値も 4GB の上限も回避できます。
Windows 11 なら少しは楽になりますか。
なりません。WebClient は Windows 10 と 11 の両方で非推奨、既定値は十年来のまま、どちらでも既定では起動しません。上の確認は恒久的なものとして扱ってください。