Asignación de unidad de red 2

Mantenido el

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%
VariableDescripció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%
addDirección IP o nombre del equipo
userNombre de la cuenta de destino
passContraseñ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 argumentoLa letra de la unidad a asignar (la parte correspondiente a la unidad del sistema C:)
Segundo argumentoLa ruta del directorio que desea asignar como unidad de red
Tercer argumentoLa contraseña para la ruta de conexión
/userEl nombre de la cuenta para la conexión
/savecredSi se necesitan credenciales, guarda el nombre de la cuenta y la contraseña ingresados.
/persistentRestaura 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.

network.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
start.cmd
@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:

×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>start.cmd
Se han añadido las credenciales de server_name1
Se ha asignado directory1 a la unidad O
Se han añadido las credenciales de server_name2
Se ha asignado directory2 a la unidad P
Se han añadido las credenciales de server_name3
Se ha asignado directory3 a la unidad Q
Se han añadido las credenciales de server_name4
Se ha asignado directory4 a la unidad R
C:\users\user>
#PowerShell