コマンドプロンプト

cdコマンドでファイルサーバなど共有フォルダへネットワークドライブへ移動したい場合、ローカルドライブへネットワークドライブを割り当てる必要があります。

例えば cd \\192.168.0.5\Users を実行したときに「CMD では UNC パスは現在のディレクトリとしてサポートされません。」と表示され、移動することができません。
UNC [Universal Naming Convention] パスとは、\\192.168.0.5\UsersのようにWindowsネットワーク上で共有されているファイルやフォルダなどの位置を指し示すパスを意味します。

cdコマンドについては、こちらの記事で紹介していますので、詳しく知りたい方は、ご覧ください。

構文

  • use net [ デバイス名 | * ] [ \\コンピュータ名\共有名 [ \ボリューム ] [ パスワード | * ] ][ /USER : [ ドメイン名\ ] ユーザー名 ][ [ /DELETE ] | [/PERSISTENT : {YES | NO} ] ]
  • use net [ デバイス名 | * ] [ パスワード | * ] [ /HOME ]
  • use net [ /PERSISTENT : {YES | NO} ]

オプション

オプション説明
(なし)現在設定しているネットワークドライブの一覧を表示します。
/user接続するためのユーザ名を指定します。[]は任意で以下のように設定します。
・/user:[ドメイン名\]ユーザ名
・/user:[完全修飾ドメイン名\]ユーザ名
・/user:ユーザ名@完全修飾ドメイン名
/homeユーザーのホーム ディレクトリに接続する。
/smartcardスマートカードの情報を利用して接続する。
/savecred入力したユーザとパスワードを保存する。
/requireintegrity共有への署名付き接続を要求する。
/requireprivacy共有へ暗号化された接続を要求する。
/presistent次回以降自動的に接続するか、設定します。
yes : 接続を保存し、次回ログオン時に再接続する。
no : 次回ログオン時に再接続しない。

使用例

いくつか使用例をご紹介します。

ネットワークドライブの一覧を表示

net useコマンドで現在設定しているネットワークドライブの一覧を表示させます。

c:\Users> net use

ステータス  ローカル名 リモート名                ネットワーク名
-------------------------------------------------------------------------------
OK                    \\192.168.0.5\IPC$   Microsoft Windows Network
コマンドは正常に終了しました。

ネットワークドライブに割り当てる

net use [ドライブ | *] [パス] [パスワード] /user:[ユーザー] ネットワークドライブに指定したパスを割り当てます。
・[password] : パスワード
・[user-name] : ユーザ名

zドライブに「\\192.168.0.5\Users」のフォルダを割り当てた後、net useコマンドでzドライブへ設定されていることが確認できます。

C:\Users>net use z: \\192.168.0.5\Users [password] /user:[user-name]
コマンドは正常に終了しました。

C:\Users>net use
新しい接続は記憶されます。

ステータス  ローカル名 リモート名                ネットワーク名
-------------------------------------------------------------------------------
OK           Z:        \\192.168.0.5\Users       Microsoft Windows Network
OK                     \\192.168.0.5\IPC$        Microsoft Windows Network
コマンドは正常に終了しました。

ドメイン名を指定する

ドメイン名を指定する場合はこのように指定します。
・[password] : パスワード
・[domain] : ドメイン名
・[user-name] : ユーザ名

C:\Users>net use z: \\192.168.0.5\Users [password] /user:[domain]\[user-name]

パスワード入力を促す

バッチに記述する場合など、パスワードを指定したくない場合はこのように指定すると、実行時にユーザに問い合わせることもできます。
・[user-name] : ユーザ名

C:\Users>net use * \\192.168.0.5\Users * /user:[user-name]
\\192.168.0.5\Users のパスワードを入力してください:
ドライブ Z: は現在 \\192.168.0.5\Users に接続されています。

コマンドは正常に終了しました。

今回はドライブ名も*で記述して、空いているドライブに自動的に割り当てています。

ネットワークドライブの設定を削除する

net use [ドライブ | *] /delete コマンドで、ネットワークドライブの設定を削除します。

先ほど設定したzドライブを削除し、net useコマンドで一覧から削除されていることが確認できます。
net use * /delete とすると、全てのネットワークドライブの接続を解除してしまうので、注意が必要です。
※ コマンド実行後、操作を続行しますか?と確認メッセージが出力されます。

C:\Users>net use z: /delete
z: が削除されました。

C:\Users>net use
新しい接続は記憶されます。

ステータス  ローカル名 リモート名                ネットワーク名
-------------------------------------------------------------------------------
OK                     \\192.168.0.5\IPC$        Microsoft Windows Network
コマンドは正常に終了しました。

ネットワーク上のバッチを起動する場合の注意【カレントディレクトリ】

ファイルサーバ上にあるバッチファイルをダブルクリックすると、「あれ?ちゃんと起動できてる。」と思われるかもしれません。

確かに起動することは可能ですが、通常バッチを起動する場合、起動した位置をカレントディレクトリとして扱われます。

しかし、コマンドラインではUNCパスをサポートしていないので、自動的に「C:\Windows」をカレントディレクトリとして扱ってしまうのです。

そのため、バッチ内で相対パスを記述している場合、想定と異なった動きをしてしまう恐れがあるため、注意が必要となります。

実際にネットワーク上のパスからバッチを起動したときのメッセージです。
バッチ内には、「dir」コマンドを記述しています。

'\\192.168.0.5\Users'
上記の現在のディレクトリで CMD.EXE を開始しました。
UNC パスはサポートされません。Windows ディレクトリを既定で使用します。
 ドライブ C のボリューム ラベルは Windows です
 ボリューム シリアル番号は ????-???? です

 C:\Windows のディレクトリ

2020/04/22  17:33    <DIR>          .
2020/04/22  17:33    <DIR>          ..
2019/03/19  13:52    <DIR>          addins
...

このように本来ならば「\\192.168.0.5\Users」のディレクトリを表示させたいところですが、カレントディレクトリを「C:\Windows」とみなしているため、「C:\Windows のディレクトリ」一覧を表示しています。

まとめ

今回はnet useコマンドを紹介しました。
バッチ内でドライブを介して処理したい場合は特に注意したいところですね!