ネットワークドライブの永続割り当て

にメンテナンス済み

コマンドラインからネットワークドライブの割り当ては、通常 net use を使います。

ですが、これだけでは PC 再起動の度に割り当て情報が消えてしまいます。

/persistent:yes オプションを付ければドライブの割り当て自体は再起動後も残りますが、今度は資格情報が保持されず、再接続時にエラーになることがあります。

エクスプローラでは、次の操作で割り当てと資格情報の保存を同時に行えます。

  • エクスプローラを開き、ネットワークドライブの割り当てを行う。
  • ネットワークパスを指定し、ドライブを割り当てる。
  • 資格情報を入力し、資格情報の保存をクリックする。

このページでは、上記の操作と同等の処理を、バッチファイルで表現する方法を分かりやすくご紹介いたします。

ソースコード

まず結論から。以下のコードで実現できます。

cmdkey /add:%server% /user:%user% /pass:%password%
net use O: %directory% /persistent:yes
変数名内容
%server%接続するサーバ名または IP アドレス(\〇〇… の〇〇の部分)
%user%資格情報(ユーザ名)
%password%資格情報(パスワード)
%directory%割り当てるネットワークパス(例: \server\share)

上記を当てはめて実行することで、ネットワークドライブの割り当てと資格情報の両方が、再起動後も保持されます。

チェック

バッチファイルにパスワードを平文で記述すると、ファイルを閲覧できる人に漏れてしまいます。 共有フォルダや誰でも閲覧できる場所には置かず、アクセス権の管理を徹底してください。

cmdkey、 net use の使い方

前述したサンプルでは、再起動しても消えないネットワークドライブの割り当て方として、cmdkeyコマンドとnet useコマンドを使用しました。

それぞれのコマンドの役割について説明します。

cmdkey

cmdkeyコマンドは、Windows 資格情報マネージャーに保存された資格情報を、追加・一覧表示・削除するためのコマンドです。

ファイルエクスプローラーからサーバーに初めてアクセスした際、資格情報の入力を求められることがあります。

この入力と同じ役割を持つのがcmdkeyコマンドです。

cmdkey のオプション

cmdkey /add:%server% /user:%user% /pass:%password%
オプション内容
/addIP アドレス、またはコンピュータ名
/user接続先のアカウント名
/pass接続先のパスワード

保存済みの資格情報はcmdkey /listで確認でき、cmdkey /delete:サーバ名で削除できます。

net useコマンド

net useコマンドは、ネットワークドライブの割り当て・切断・一覧表示を行うためのコマンドです。

net use のオプション

net use %drive_letter% %directory% %password% /user:%user% /savecred /persistent:yes
変数名内容
最初の引数割り当てるドライブレター(システムドライブの C: にあたる部分)
2 つ目の引数ネットワークドライブとして割り当てたいパス(\\server\shareの形式)
3 つ目の引数接続先のパスワード
/user接続先のアカウント名
/savecred資格情報を保存する。cmdkeyを使う場合は不要。
/persistent:yes割り当てを次回ログオン以降も自動的に復元する(noを指定すると復元しない)。

ネットワークドライブを割り当てる具体例

ここからは、実際に想定されるケースを例に、ネットワークドライブを割り当てる方法をご紹介します。

ユーザー名とパスワードをユーザーに入力させる

バッチファイルに直接ユーザー名とパスワードを記述するのは、セキュリティ上好ましくありません。

バッチファイル実行時に、ユーザー名とパスワードを入力させたい場合は、以下のように実装します。

@echo off
setlocal

rem ユーザーからユーザー名とパスワードを入力してもらう
set /p user=ユーザー名を入力してください:
set /p password=パスワードを入力してください:

rem ユーザー名とパスワードを使って資格情報を追加
cmdkey /add:server_name /user:%user% /pass:%password%
net use O: \\server_name\directory /persistent:yes

endlocal

なお、set /pで入力したパスワードは画面にそのまま表示されます。周囲の目が気になる場合は、net useのパスワードに*を指定してプロンプトで入力する方法もあります。

ユーザーからの入力を受け取るsetコマンドについては、以下のページで詳しく説明しています。

複数の IP アドレスに対して、ネットワークドライブを割り当てる

自宅や社内に複数のサーバーや NAS がある場合、同時に複数のネットワークドライブを割り当てたいケースがあると思います。

そのような場合、バッチファイルを 2 つ用意し、1 つ目に今回ご紹介したコード、2 つ目に実際に起動するコードを記述することで、シンプルに実現することができます。

ここでは 1 つ目のバッチファイルをnetwork.cmd、2 つ目のバッチファイルをstart.cmdとして実装します。

@echo off
setlocal

cmdkey /add:%1 /user:%2 /pass:%3

echo %1の資格情報を追加しました

net use %4: %5 /persistent:yes

echo %4ドライブへ%5を割り当てました

endlocal
@echo off
setlocal

call network.cmd server_name1 username1 password1 O: \\server_name1\directory1
call network.cmd server_name2 username2 password2 P: \\server_name2\directory2
call network.cmd server_name3 username3 password3 Q: \\server_name3\directory3
call network.cmd server_name4 username4 password4 R: \\server_name4\directory4

endlocal

callコマンドについて詳細を知りたい方は、以下の記事をご覧ください。

上記のコードを実行することで、4 つのネットワークドライブへ一括で割り当てることができます。

実行すると、以下のように表示されます。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>start.cmd
server_name1の資格情報を追加しました
Oドライブへdirectory1を割り当てました
server_name2の資格情報を追加しました
Pドライブへdirectory2を割り当てました
server_name3の資格情報を追加しました
Qドライブへdirectory3を割り当てました
server_name4の資格情報を追加しました
Rドライブへdirectory4を割り当てました
C:\users\user>

うまくいかないときは

システム エラー 1219 が表示される

同じサーバーに別のユーザー名で既に接続している場合、net useは「システム エラー 1219」で失敗します。

次のコマンドで既存の接続を切断してから、再度実行してください。

- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>net use * /delete /y
C:\users\user>
おすすめ書籍※ 広告を含む場合があります
中小企業経営者のためのRPA入門 RPA導入を成功させる方法

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超入門

60分でわかる! AIエージェント 超入門

コマンドラインの黒い画面が怖いんです。

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

資格情報を変更したい

cmdkey /addを同じサーバー名で再度実行すると、保存済みの資格情報が上書きされます。

#コマンドプロンプト #バッチファイル #ネットワークドライブ #net use #cmdkey