Windowsのネットワークドライブ「ローカル デバイス名は既に使用されています」の直し方

スポンサーリンク

WindowsでNASやSamba共有をネットワークドライブに割り当てていると、「Microsoft Windows Network: ローカル デバイス名は既に使用されています」と出て、ドライブに入れなくなることがあります。

原因は、古いSMB接続、ドライブ文字の競合、保存済み資格情報の不整合であることが多いです。PC再起動の前に、まずは問題のドライブ文字だけを切り直します。

スポンサーリンク

まずこれを試す:対象ドライブだけ切って再接続

コピペ用です。実行前に、先頭3行の DRIVESHAREUSER だけ自分の環境に合わせて書き換えてください。パスワードは画面に出る入力プロンプトで入れます。

CMD版です。コマンドプロンプトを開いて実行します。失敗する場合は管理者として開き直してください。

set DRIVE=Z:
set SHARE=\\NAS\share
set USER=NASユーザー名

net use %DRIVE% /delete /y
net use %DRIVE% "%SHARE%" /user:%USER% * /persistent:yes

PowerShell版です。資格情報ダイアログにNASのパスワードを入力します。

$drive = "Z:"
$share = "\\NAS\share"
$user = "NASユーザー名"
$cred = Get-Credential -UserName $user -Message "NASの資格情報"
Remove-SmbMapping -LocalPath $drive -UpdateProfile -Force -ErrorAction SilentlyContinue
New-SmbMapping -LocalPath $drive -RemotePath $share -Credential $cred -Persistent $true

最初から net use * /delete を打たないのがポイントです。* /delete は全ネットワーク接続を切断します。別NASや開いているファイルも巻き込むので、まずは問題のドライブだけを狙います。

エラーの正体

Microsoftの資料では、このエラーはシステムエラー85、つまり「ローカルデバイス名がすでに使われている」状態です。ここでいうローカルデバイス名は、たいてい Z:X: などのドライブ文字です。

見た目どおりに「別のドライブが見えている」とは限りません。エクスプローラー上では切断済みに見えても、SMBクライアント側には古い接続が残ることがあります。逆に、USBメモリ、カードリーダー、仮想ドライブなどが同じ文字を使っていることもあります。

「NASが壊れた」というより、Windowsがそのドライブ文字を再利用できない状態、と考えると切り分けしやすくなります。

まだ直らないときの順番

現在の接続を確認します。

net use

PowerShellなら次のように確認できます。

Get-SmbMapping

それでも「使用中」と言われる場合は、エクスプローラーやアプリがそのドライブを開いていないか確認してください。Microsoftの net use 資料でも、現在のドライブとして使っていたり、プロセスが使用中だったりする共有は切断できないと説明されています。Excel、バックアップソフト、同期ツール、ターミナルのカレントディレクトリが原因になることがあります。

Workstationサービスを再起動する場面

対象ドライブを削除しても残り続ける、net use では見えないのに同じ文字で再接続できない、ログオフや再起動なら直る、という場合は、Workstation サービス、つまり LanmanWorkstation を再起動します。

net stop workstation /y
net start workstation

注意点があります。この操作はSMBクライアント機能を一時停止するので、接続中のネットワークドライブや共有フォルダは切れます。共有上のファイルを閉じ、ほかの共有ドライブを使っていないタイミングで実行してください。

資格情報をリセットする場面

同じNASに入れるPCと入れないPCがある、パスワード変更後からおかしい、サーバー名とIPで挙動が違う、という場合は、古い資格情報を疑います。

GUIなら「資格情報マネージャー」から「Windows資格情報」を開き、対象のサーバー名やIPアドレスの資格情報を削除します。その後、正しいユーザー名とパスワードで再接続します。

コマンドで確認するなら、次のように保存済み資格情報を一覧できます。

cmdkey /list

削除は対象名を確認してから行います。別サービスの認証情報を消さないように注意してください。

cmdkey /delete:NAS名またはIPアドレス

ドライブ文字の競合を確認する

net useGet-SmbMapping に出てこないのに Z: が使えない場合は、diskmgmt.msc で「ディスクの管理」を開き、USBドライブ、カードリーダー、仮想ディスクなどに同じ文字がないか確認します。

競合しているローカルディスクがある場合は、そのローカルデバイス側のドライブ文字を変更するのが基本です。ネットワークドライブには、普段ローカル機器に使われにくい X:Y:Z: などを使うと衝突しにくくなります。

Samba/NAS側も見るべきケース

Windows側を直しても再接続できないなら、NASやSamba側を確認します。特に見るべきなのは次の点です。

  • 共有パス \\NAS\share が正しいか
  • NASがスリープしていないか
  • Sambaサービスが起動しているか
  • サーバーのディスク空き容量が不足していないか
  • そのユーザーに共有とフォルダの権限があるか
  • Windowsから名前解決できているか

名前解決が怪しいときは、サーバー名ではなくIPアドレスで \\192.168.1.10\share のように試すと切り分けできます。ただし、同じサーバーへ別名・別ユーザーで同時接続すると別の認証エラーを招くことがあるので、先に既存接続を削除しておきます。

最終手段に近い操作

net use * /delete /y は、全ネットワーク接続をまとめて切る強い操作です。どうしても対象ドライブだけでは解消しない場合に限り、開いている共有ファイルを閉じてから実行します。

net use * /delete /y

レジストリ変更はさらに慎重に扱うべきです。Microsoftのシステムエラー85の記事には ProtectionMode というレジストリ値に触れた回避策がありますが、古いWindows/Terminal Server文脈を含む限定的な説明です。Windows 10/11の一般的な復旧手順として最初に触る場所ではありません。

レジストリを変更する場合は、必ずバックアップを取り、変更対象と理由を記録してから行ってください。原因が単なる残留接続や資格情報なら、レジストリ編集まで進む必要はありません。

サービスやタスクから使うならドライブ文字を避ける

バックアップソフトやWindowsサービスからNASにアクセスする場合は、Z:\backup のような割り当て済みドライブではなく、\\NAS\share\backup のUNCパスを使うのが基本です。

Microsoftは、サービスが実行時に net use でドライブ文字を割り当てる方法を推奨していません。ドライブマッピングはログオンセッションごとに管理されるため、ユーザーが見ている Z: とサービスが見ている Z: が一致しないことがあります。

まとめ

このエラーは、まず「問題のドライブ文字だけを消して、同じパスへ作り直す」のが最短です。それで直らない場合は、Workstationサービス、資格情報、ディスク管理のドライブ文字、NAS/Samba側の順に切り分けます。

再起動は確かに効くことがありますが、原因を残したままだとまた起きます。net use * /delete やレジストリ編集のような広い操作は最後に回し、対象を絞って直すのが安全です。

参考資料

コメント

タイトルとURLをコピーしました