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 | Dirección IP o nombre del equipo |
user | Nombre de la cuenta de destino |
pass | Contraseña de la cuenta de destino |
Comando net use
El comando net use
es una función para operar unidades de red.
Además de la asignación que se utilizará esta vez, es posible desconectar y mostrar una lista de unidades asignadas.
Opciones de net use
net use %drive_letter% %directory% %password% /user:%username% /savecred
Primer argumento | La letra de la unidad a asignar (la parte correspondiente a la unidad del sistema C:) |
Segundo argumento | La ruta del directorio que desea asignar como unidad de red |
Tercer argumento | La contraseña para la ruta de conexión |
/user | El nombre de la cuenta para la conexión |
/savecred | Si se necesitan credenciales, guarda el nombre de la cuenta y la contraseña ingresados. |
/persistent | Restaura automáticamente la información de la unidad configurada con este comando net use en los inicios de sesión posteriores. |
Ejemplo concreto de asignación de una unidad de red
A continuación, se muestra cómo asignar una unidad de red en casos prácticos.
Permitir al usuario ingresar el nombre de usuario y la contraseña
No es recomendable escribir directamente el nombre de usuario y la contraseña en el archivo por lotes por razones de seguridad.
Si desea que el usuario ingrese el nombre de usuario y la contraseña al ejecutar el archivo por lotes, impleméntelo de la siguiente manera.
@echo off
setlocal
set /p username=Por favor, introduzca su nombre de usuario:
set /p password=Por favor, introduzca su contraseña:
cmdkey /add:server_name /user:%username% /pass:%password%
net use O: directory
endlocal
Se explica en detalle el comando set
que recibe la entrada del usuario en la siguiente página.
Asignar unidades de red a múltiples direcciones IP
Si tienes varios servidores o NAS en casa o en la oficina, es posible que desees asignar varias unidades de red al mismo tiempo.
En ese caso, puedes preparar dos archivos por lotes: uno con el código que presentamos aquí y otro con el código que realmente se ejecutará, para lograrlo de manera simple.
Aquí, implementaremos el primer archivo por lotes como network.cmd
y el segundo archivo por lotes como start.cmd
.
@echo off
setlocal
cmdkey /add:%1 /user:%2 /pass:%3
echo Se han agregado las credenciales para %1
net use %4: %5
echo Se ha asignado %5 a la unidad %4
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
Si desea obtener más información sobre el comando call
, consulte el siguiente artículo.
Al ejecutar el código anterior, puede asignar en bloque a 4 unidades de red.
Cuando se ejecuta, se muestra lo siguiente: