Asignación de unidad de red 2
La asignación de una unidad de red desde la línea de comandos se realiza normalmente con el comando net use. Sin embargo, esto no es suficiente, ya que la información de asignación desaparece cada vez que se reinicia la PC. Esto se puede solucionar utilizando el comando persistent, pero esto no mantiene la información de credenciales.
- Abra el Explorador y asigne una unidad de red.
- Especifique la ruta de red y asigne la unidad.
- Ingrese las credenciales y haga clic en Guardar credenciales.
En esta página, le mostraremos cómo hacer lo mismo con un archivo por lotes de manera fácil de entender.
Código fuente
Primero, la conclusión. Puede lograr esto con el siguiente código.
cmdkey /add:%server1% /user:%username% /pass:%password%
net use O: %directory%
Variable | Descripción |
---|---|
%server1% | Nombre del servidor al que se conectará (parte de \〇〇… de la que se encuentra el 〇〇) |
%username% | Credenciales (nombre de usuario) |
%password% | Credenciales (contraseña) |
%directory% | Ruta de red que se asignará |
Al aplicar lo anterior y ejecutarlo, se mantendrán tanto la unidad de red como las credenciales.
Cómo usar cmdkey
y net use
En el ejemplo anterior, se utilizó el comando cmdkey
y net use
para asignar una unidad de red que no desaparecerá después de reiniciar.
A continuación, se explica la función de cada comando.
cmdkey
El comando cmdkey
es una función que se utiliza para manipular las credenciales de Windows.
Cuando se accede por primera vez a un servidor desde el Explorador de archivos, es posible que se le solicite que ingrese sus credenciales.
El comando cmdkey
tiene la misma función que esta entrada.
Opciones de cmdkey
cmdkey /add:%server% /user:%username% /pass:%password%
add | IP アドレス、またはコンピュータ名 |
user | 接続先のアカウント名 |
pass | 接続先のパスワード |
net use
コマンド
net use
コマンドは、ネットワークドライブの操作を行うための関数です。
今回使用する割り当ての他、切断や、割り当て済みのドライブの一覧表示などが可能です。
net use のオプション
net use %drive_letter% %directory% %password% /user:%username% /savecred
最初の引数 | 割り当てるドライブレター(システムドライブの C: にあたる部分) |
2 つ目の引数 | ネットワークドライブとして割り当てたいディレクトリパス |
3 つ目の引数 | 接続先のパスワード |
/user | 接続先のアカウント名 |
/savecred | 資格情報が必要な場合、入力されたアカウント名とパスワードを保存する。 |
/persistent | この net use コマンドで設定したドライブ情報を、次回ログオン以降も自動的に復元する。 |
ネットワークドライブを割り当てる具体例
ここからは、実際に想定されるケースを例に、ネットワークドライブを割り当てる方法をご紹介します。
ユーザー名とパスワードをユーザーに入力させる
バッチファイルに直接ユーザー名とパスワードを記述するのは、セキュリティ上好ましくありません。
バッチファイル実行時に、ユーザー名とパスワードを入力させたい場合は、以下のように実装します。
@echo off
setlocal
set /p username=ユーザー名を入力してください:
set /p password=パスワードを入力してください:
cmdkey /add:server_name /user:%username% /pass:%password%
net use O: directory
endlocal
ユーザーからの入力を受け取る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
echo %4ドライブへ%5を割り当てました
endlocal
@echo off
setlocal
call network.cmd server_name1 username1 password1 O: directory1
call network.cmd server_name2 username2 password2 P: directory2
call network.cmd server_name3 username3 password3 Q: directory3
call network.cmd server_name4 username4 password4 R: directory4
endlocal
call
コマンドについて詳細を知りたい方は、以下の記事をご覧ください。
上記のコードを実行することで、4 つのネットワークドライブへ一括で割り当てることができます。
実行すると、以下のように表示されます。
