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

WebDAV エラーコード

net use のエラー 67:ネットワーク名が見つかりません

WebDAV の URL に net use を打ってシステム エラー 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.」です。エクスプローラーは同じ失敗を 16 進数で、エラー 0x80070043 として表示します。10 進の 67 は 0x430x8007 は Win32 エラーを HRESULT に包むときの接頭辞です。失敗は一つ、表記が二つあるだけです。

切り分けはコマンドラインの方が楽です。変数を一つずつ変えて、結果をその場で読めます。

マイクロソフトが挙げている原因

WebDAV リダイレクターのドキュメントは、ドライブ割り当てでシステム エラー 67 が出る条件を六つ挙げています。IIS 以外のサーバーでは、最初の三つでほぼ説明がつきます。

文書化されている六つの原因と対処
文書化されている原因実際にやること
サーバーで IIS が入っていない、動いていないIIS 以外なら該当しない。まず素の GET が返るか確認する
クライアントに WebDAV リダイレクターが入っていないWindows Server では「デスクトップ エクスペリエンス」を追加。デスクトップ版には同梱
クライアントの WebClient サービスが動いていない起動し、スタートアップを自動にする
Web サイトで WebDAV が有効になっていない応答に DAV: ヘッダーがあるか確認する
HTTPS ではなく HTTP 上で Basic 認証を使っているBasicAuthLevel を上げる、またはエンドポイントを HTTPS にする
Windows 認証の FQDN サイトでプロキシのバイパス設定がないクライアント側のバイパス一覧にサイトを追加する

手順 1:リダイレクターが生きているか

割り当てた 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 はサーバーに接続せずキャッシュされた失敗を返します。

手順 2:コマンドの書式を正す

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 のようなサブパスで公開しているのにサイトのルートを割り当てる、です。

手順 3:HTTP 上の Basic 認証を許可する

エンドポイントが http:// で Basic 認証なら、Windows はパスワードを聞く前に拒否します。切り替えるのは WebClient の Parameters キーにある BasicAuthLevel という DWORD で、文書化されている値は三つです。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 なら妥当、自分の LAN なら許容範囲、インターネット越しには不適切です。

エラー番号が 67 でないとき

同じドキュメントには、WebDAV に対して net use が返す他の番号も載っています。こちらは 67 よりずっと情報量があります。見分けがつけば、権限の問題に WebClient の対処を当ててしまう無駄が避けられます。

WebDAV に対する net use のその他の失敗
エラー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 の文言は誤字も含めてマイクロソフトのものです。

再起動すると消えてしまう割り当て

割り当ては成功するのにサインアウト後に消える場合、それは仕様です。マイクロソフトは 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 は目の前の PC の中で 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_NAME で、0x80070043 はシェルが表示するために HRESULT に包んだ同じ値です。

net use は成功するのにエクスプローラーにドライブが出ません。

実行しているセキュリティ コンテキストが違います。管理者権限のプロンプトで作った割り当ては、管理者でないエクスプローラーからは見えません。エクスプローラーで見たいなら通常のプロンプトから実行してください。

URL の末尾にスラッシュは必要ですか。

付けて損はありません。リダイレクターは最初に指定したパスへ OPTIONS を投げるので、サーバーによっては挙動が変わります。スラッシュなしで失敗したら、資格情報を疑う前に付けて試してください。

ここまでの手順を省略できますか。

閲覧用途ならドライブ文字は素直に便利です。大量転送なら、ストレージ API と直接やり取りするクライアントの中で動かすのが速いです。サービスもレジストリ値も 4GB の上限も関係なくなります。

次に読む