Inicio Redes / CMD Comandos Locales Script Batch – Conectar a unidad de red automáticamente con un archivo...

Script Batch – Conectar a unidad de red automáticamente con un archivo bat (Map Network Drive)

10717
11
COMPARTIR


Si tenemos que conectar varias unidades de red en varios equipos e incluso si fuera solo un equipo podemos simplificar el proceso y lo mas importante podremos optimizar tiempo, por ejemplo para conectar (hacer mapeo) de 10 unidades que se encuentren en diferentes servidores de archivos nos puede tomar un aproximado de 5~8 minutos tomando como base un solo equipo, si estos son mas equipos el tiempo que nos tomara sera bastante.

Para optimizar el tiempo y realizarlo semi automáticamente debemos crear un archivo batch que tendremos que ejecutar en cada equipo donde queramos realizar el mapeo de las unidades.

Sintaxis del Comando NET USE

Podemos encontrar mas información si abrimos el Command prompt (CMD) y escribimos:

 

CMD - Net Help Use

 Donde podremos encontrar la serie de instrucciones que podemos utilizar.

CMD - Net Help Use 2

Como utilizar el comando NET USE

En este ejemplo se va a realizar el mapeo de 9 Unidades de Red el cual se localizan en distintos servidores donde los nombres de estos son: vsop01, vsdoc07, vssql y por ultimo un servidor NAS que tiene la IP 10.0.0.64 el cual tiene una clave de administrador asignada.

Conectar unidades de red

REM – REM es para comentar las instrucciones
/PERSISTENT:YES se utiliza para mantener la conexión cada inicio de sesión, si este no se utiliza el próximo inicio de sesión de Windows ya no se conectaran las unidades.

Siguiendo la sintaxis (debe sin los [ ] por ejemplo en [Letra por asignar] debe ser si queremos asignar la letra Z escribiremos Z: )

net use [Letra por asignar]: “[Ruta del folder]” /PERSISTENT:YES

Eliminar / Desconectar unidades de red

Se puede presentar el caso que tengamos que conectar una unidad de red y asignar una letra que anteriormente ya se tenia asignada, en el mismo archivo podemos anteponer las lineas para desconectar las unidades.

Para desconectar la unidad solo debemos conocer la Letra asignada y escribir el siguiente comando.

Ambas funcionan igual

Ejemplo:

Si tenemos asignada la letra I: a un folder y queremos cambiarlo lo hacemos de la siguiente forma

Guardarlo en archivo bat

Simplemente vamos a crear nuestro archivo en un editor de texto como Notepad (yo utilizo Notepad++) y guardarlo con la extensión .bat

Guardar bat

Pueden descargar el ejemplo del archivo .bat que realizamos.

11 Comentarios

  1. Hola, Buenos Días,

    Tengo una consulta, estoy manejando un archivo en excel en el que tengo un listado de servidores y el espacio en Disco Duro libre de cada uno, hay alguna forma de hacer un .bat que me permita hacer la conexión desde mi equipo a uno de esos servidores por individual o a todos, no se, y me traiga el espacio libre en cada disco.

    Gracias de antemano…

    • Buen dia
      Puedes utilizar por medio de consola el comando fsutil volume diskfree c: (solo que el valor te lo da en bytes) fsutil esto urilizando el comando psexec

      o tambien utilizando wmic desde CMD el comando seria wmic /node:NOMBREDEEQUIPO logicaldisk where “DeviceID=’C:'” get FreeSpace

      Mas adelante redactaremos un articulo con mas opciones para esto, incluyendo para obtener un listado con esta información de varios equipos o servidores.

      Saludos.

  2. Buen día,
    Gracias por el articulo me parece que esta muy completo. Te comento el codigo que estaba utilizando para realizar la toma de información de los discos de los servidores es el siguiente:

    @echo off

    WMIC /Output:lista.xls LOGICALDISK where drivetype=3 get DeviceID, VolumeName, Size, FreeSpace, FileSystem, Description

    type “lista.xls” >> “\IPC$UsersUsuarioDesktopPrueba.xls”

    pause

    Como no he podido realizar el otro script para realizar la ejecución remota desde mi equipo opte por crear una tarea automatica de Windows que me ejecute este script a una hora indicada y me alimente un archivo de excel que tengo en mi equipo, esto lo estoy realizando sin ningun problema pero entonces aca me surge otra cosa, la información que me genera el txt en el servidor trae todo el texto por linea, me explico:

    DeviceID FreeSpace ——-> Linea 1
    C: 163886571520 ——-> Linea 2
    D: 271946092544 ——-> Linea 3
    E: 1047630970880 ——-> Linea 4

    Aunque se observa como si estuviera en columnas cuando lo paso a excel lo copia en las celdas mas no lo separa por columnas, como podria realizar esto, es decir necesito que a partir de la columna 2 quede el espacio libre del disco C, en la columna 3 quede el espacio libre del disco D, en la columna 4 quede el espacio libre del disco E y asi sucesivamente.

    • Buen dia

      Disculpa la tardanza, no hemos tenido mucha oportunidad de responder y analizar todos los comentarios, permitenos revisar y probar tu codigo que adjuntas para ver que es lo que se esta realizando en este.

  3. Hola Buenos Días,

    Amigo te cuento que he logrado adelantar bastante lo que necesitaba, les comparto el script que tengo.

    @echo off

    WMIC /Output:lista2.CSV /NODE:@PCs.txt /user:usuario /password:contraseña LOGICALDISK where drivetype=3 get DeviceID, FreeSpace /format:CSV.xsl

    pause

    Para que este funcione se debe tener otro txt con las IPs a las que queramos conectarnos, en el codigo el archivo es llamado donde dice /NODE:@PCs.txt

    Queria preguntarte, depronto sabes como puedo traer el freespace pero en Mb, Gb o Tb, dependiendo el tamaño en el que se encuentre, en el momento lo que el trae son los tamaños en bytes o si no de que forma puedo convertirlo.

    • Buen dia

      Directamente desde la linea de comando CMD con WMIC no he tenido exito para realizar las conversiones, al ser mas sencillo obtenerlo con un script visual basic comentado en el Articulo, paro también me interesa si se puede obtener asi directamente el valor en MB o GB, últimamente no he tenido tiempo libre para ponerme a leer que podria aplicar para realizar la conversión, pero si llego a encontrar la forma te lo hago saber.

      Estamos en contacto Amigo.!

  4. Buena noches amigo quisiera pedirte una ayuda con este problema que tengo en la oficina haber esta es la situación tengo 4 equipos uno es el servidor y los otros 3 son los clientes , el servidor ejecutan un programa el cual los demás equipos se conectan por medio de una unidad de red funciona bien el proceso hasta que los equipos clientes se reinician y se desconecta la unidad de red, el servidor tiene instalado win 10, ojala me heches una mano en este caso gracias

    • Buen dia Luis

      En el comando tenemos /PERSISTENT:YES el cual indica que debe continuar el mapeo aun cuando se reinicie el equipo, cierre sesión, etc.
      Si no te funciona te recomiendo que al ser pocos equipos lo hagas manualmente. sobre la carpeta compartida del servidor das Clic derecho > Conectar a unidad de Red > En la ventana seleccionas la letra que desees asignar y te aseguras de tener palomeada la opción Conectar de nuevo al iniciar sesión, con esto debe continuar la unidad conectada al iniciar nuevamente la sesión.

      Nos comentas los resultados y si cuentas con mas consultas no dudes en escribirnos.

      Saludos.

Deja un comentario...