メインコンテンツへ移動
AnyStorage
無料ダウンロード

Windows の WebDAV

Windows 11 で WebDAV が動かない理由と対処

マイクロソフトは 2023 年 11 月に WebDAV サービスを非推奨にし、既定では起動しなくなりました。有効化の手順、いまも刺さるレジストリ値、そして各種の上限。

以前の Windows で動いていた WebDAV 割り当てが Windows 11 で失敗する理由を、マイクロソフト自身の非推奨表記と、サービス再有効化のコマンド、文書化された上限つきで。

webdav windows 11 接続できない、WebClient サービス Windows 11、WebDAV 非推奨 Windows

実際に変わったこと

あなたのサーバーは何も変わっていません。マイクロソフトの「非推奨機能」一覧に、2023 年 11 月付でこの項目があります。

text

Webclient (WebDAV) Service
The Webclient (WebDAV) service is deprecated.
The Webclient service isn't started by default in Windows.

この二文が、ネット上の「Windows 11 で WebDAV が使えない」報告のほとんどを説明します。機能は今も存在し、今も動きます。開発は止まり、そしてクリーンインストールではサービスが停止した状態で座っているので、最初の割り当てが失敗する。しかも返ってくる文字列——「ネットワーク名が見つかりません」、0x80070043、「The folder you entered does not appear to be valid.」——は、サービスが止まっていることを一言も教えてくれません。

Windows 11 で WebDAV を壊す五つの要因(順番どおり)
失敗原因対処
割り当てが即座に失敗するWebClient サービスが未起動開始して自動起動に
http:// でパスワードを聞かれないBasic 認証が SSL サイト限定BasicAuthLevel2
50 MB 付近で 0x800700DFFileSizeLimitInBytes の既定値値を上げて再起動
直したのに同じエラー非 WebDAV サーバーのキャッシュ60 秒待つ
再起動で割り当てが消えるBasic の資格情報は保存されないログオンスクリプトで再接続

1. サービスを開始し、自動起動にする

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

Windows Server ではデスクトップ エクスペリエンス機能を追加するまでリダイレクターが入っていません。Windows 11 には入っていて、ただ眠っているだけです。

2. http:// エンドポイントに Basic 認証を許可する

Windows 10 / 11 は既定で平文エンドポイントに Basic 資格情報を送らず、しかもプロンプトを出さずに失敗します。だからこの原因はパスワードの問題と誤診されがちです。制御するのは HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters 配下の DWORD 値 BasicAuthLevel で、マイクロソフトは 0 を無効、1 を「Basic authentication is enabled for SSL web sites only」、2 を「enabled for SSL and non-SSL web sites」と文書化し、既定は 1 です。

cmd

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

再起動は必須です。同キーの注記に、値を変更したら Web Client の再起動か PC の再起動が必要と明記されています。また非 SSL 接続での Basic 認証はドキュメントが「strongly discouraged」と呼ぶもので、それは正しい——資格情報は平文で流れます。ループバックなら通信は機械の外に出ませんが、経路に乗るなら HTTPS にして値は 1 のままにしてください。

3. 上限を、ぶつかる前に知る

以下の値はすべてマイクロソフトの WebDAV リダイレクター文書に載っている同じレジストリキーのもので、どれも伝聞ではなく実在の数字です。

WebClient のレジストリ設定と文書化された既定値
何を制御するか既定
FileSizeLimitInBytesファイル転送で許可する最大サイズ50,000,000(10 進、50 MB)
FileAttributesLimitInBytes一つのコレクションの全プロパティの最大サイズ1,000,000(10 進、1 MB)
SendReceiveTimeoutInSecGET /file.ext などを発行した後のタイムアウト60
InternetServerTimeoutInSec非ローカルサーバーへの接続タイムアウト30
LocalServerTimeoutInSecローカルサーバーへの接続タイムアウト15
ServerNotFoundCacheLifeTimeInSec非 WebDAV としてホストをキャッシュする時間60
SupportLockingLOCK をサポートするか1
BasicAuthLevelBasic 認証:無効 / SSL のみ / 両方1

二つは特に重要です。FileSizeLimitInBytes が有名な 50 MB の壁で、DWORD なので上限は 4,294,967,295 バイト。だから Windows の WebDAV 割り当てでは、どう設定しても 5 GB のファイルは運べません(詳細はWindows の WebDAV 50 MB 制限)。そして ServerNotFoundCacheLifeTimeInSec が「直したのに効かない」の正体で、60 秒間はサーバーに接触せずキャッシュされた失敗を返します。

4. 切り分け中はコマンドラインで割り当てる

ウィザードは文を返し、net use は番号を返します。番号は検索できます。マイクロソフトの解説は素の URL 形式を使い、UNC 形式は \\server[@SSL][@port][\path]@SSL が HTTPS、@port は 80/443 以外で必須)として文書化されています。

cmd

net use Z: https://dav.example.com/files /user:alice *
net use Y: \\dav.example.com@SSL@8443\DavWWWRoot\files /user:alice *

末尾の * は Windows にパスワードを尋ねさせる指定で、履歴に平文を残さないためのものです。答えが System error 67 ならnet use のエラー 67、エクスプローラー版の表記は0x80070043、ウィザード自身の拒否は入力したフォルダーが有効でないにそれぞれ専用の記事があります。

5. ログオフで消える割り当て

これは Windows 11 の劣化ではなく文書化された挙動です。Windows 7 以降、Basic 認証の資格情報は資格情報マネージャーに保存できないので、Basic 認証の WebDAV 割り当ては復元ではなく再作成になります。マイクロソフト自身のトラブルシューティングも、コマンドを再実行するログオンスクリプトを案として挙げています。

powershell

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

「非推奨」が意味すること

非推奨は削除ではありません。マイクロソフトの定義では、積極的な開発が行われておらず、将来の更新で削除される可能性がある、というだけです。WebClient の項目は 2023 年 11 月以降そのままで、削除予定日は示されていません。実務的な意味は三つ:新機能なし、性能改善なし、次のメジャーリリースでの保証なし。

そして、大量のファイル作業を Windows のリダイレクターだけに頼らない方が良い、という意味でもあります。ストレージ API を直接話すクライアントには、起動すべきサービスも BasicAuthLevel も 4 GB の天井もありません。AnyStorage(v0.2.24;macOS 11 以降 / Windows 10 以降 / Ubuntu 20.04 以降)は中間の道を取ります。ファイル転送はストレージのプロトコル自身(パススタイルとカスタムリージョンに対応した S3 互換エンドポイント、鍵認証の SFTP、WebDAV)で行い、ドライブレターが欲しいときだけ内蔵のローカル WebDAV サーバー(http://127.0.0.1:3211)から一つ差し出します。FUSE も WinFsp も macFUSE も不要、アプリで開いている接続がそのルート配下のフォルダーとして並び、無料プランの接続数は 2 つ。ただしその割り当てにも上のルールは全部適用されます。Windows はループバックの WebDAV サーバーも他と同じに扱うので、WebClient が動いていて BasicAuthLevel2 であることが前提です。

Windows 11 24H2 で WebDAV は削除されましたか?

されていません。非推奨であって削除ではなく、サービスは今も同梱されています。変わったのは自動で起動しないことなので、機械ごとに一度だけ有効化が必要です。

ブラウザでは見える NAS が、ドライブとしては繋がりません

リダイレクターは別の質問をしているからです。OPTIONS を投げて DAV 応答ヘッダーを期待し、続けて PROPFIND を出します。ページは問題なく返せても、指定したパスで WebDAV を名乗らないサーバーは存在します。

50 MB の制限は安全に上げられますか?

ある程度は可能です。FileSizeLimitInBytes は DWORD なので最大 4294967295、変更後は WebClient の再起動か再起動が必要です。転送が速くなるわけではなく、許可されるだけです。

HTTPS にすればタイムアウトは直りますか?

直りません。タイムアウトは SendReceiveTimeoutInSec(60 秒)、InternetServerTimeoutInSec(30)、LocalServerTimeoutInSec(15)で、スキームに関係なく効きます。数千件のディレクトリに対する遅い PROPFIND は、どちらでも引っかかります。

次に読む