Mapear unidad de red script powershell

Cómo mapear una unidad de red mediante script de PowerShell

Compartir

Acompáñanos en este pequeño artículo en el que hablaremos acerca de cómo mapear una unidad de red mediante script de PowerShell, siendo esta en realidad una unidad personal.

 

¿Cómo mapear una unidad de red mediante script de PowerShell?

El script que vamos a construir, en realidad es un script muy sencillito para todo lo que podríamos hacer, pero como siempre, el propósito es daros unas pinceladas a partir de las cuales podáis desarrollar vosotros scripts adaptados a vuestras necesidades.

En este caso vamos a trabajar con un pequeño script que toma como punto de partida el comando “New-PSDrive”, que usará para mapear una nueva unidad que previamente se haya compartido. Como en este caso estamos cargando una unidad personal para cada usuario, pasaremos el usuario como una variable de entorno.

Al pasar el usuario como una variable de entorno, el sistema lanzará una consulta de quién es el usuario que está en la sesión, cargando de manera automática el recurso para cualquier usuario que esté validado y tenga recurso creado, o sea, que tenga una unidad asignada, pueda recibir el acceso.

NOTA: Tal como acabamos de decir, nosotros crearemos un recurso y en ese recurso crearemos distintas carpetas con los nombres de los usuarios a los que se les va a permitir tener su propia unidad personal. Aquellos que no tengan creada esa carpeta, si intentan ejecutar el script, recibirán un mensaje de error de ejecución por no tener recurso disponible; o sea, que no se puede ejecutar porque no tienen carpeta asignada.

El comando para ejecutar podría ser algo similar a esto:

New-PSDrive -Name «<Nombre_Unidad>» -PSProvider FileSystem -Root «<Ruta_Unidad_Compartida>» -Persist

 

Donde:

  • Name «<Nombre_Unidad>»: Indica el nombre de la unidad con el que se va a mapear el recurso. En este caso usamos “X” pero una buena práctica sería usar “P” para hacer referencia a “Personal”.
  • -PSProvider FileSystem: Indica que estamos cargando un recurso de tipo sistema de ficheros.
  • -Root «<Ruta_Unidad_Compartida>«: Es básicamente el recurso mapeado y que debe terminar con el nombre del usuario para que de esta manera se cambie automáticamente en función del usuario que cargue el script.
  • -Persist: Indica que el recurso es remanente a reinicios, o sea, que cuando el equipo se apague y vuelva a encender se seguirá teniendo acceso a la unidad.

Un ejemplo de este recurso «<Ruta_Unidad_Compartida>» podría ser:

\\SRV-OLIN02-031\SMB2022Nacho\administrador\

Un ejemplo de esto, entonces, podría ser:

New-PSDrive -Name «x» -PSProvider FileSystem -Root \\SRV-OLIN02-031\SMB2022Nacho\administrador\ -Persist

 

Mejorando el script de PowerShell para el mapeo de unidades personales:

El problema de hacerlo de esta manera es que sólo será válido para el usuario “administrador” o tendremos que cambiar el final de \\SRV-OLIN02-031\SMB2022Nacho\ para cada ejecución.

Para solventar esto, se podrían usar variables de entorno de la siguiente manera:

$VARNAME=$env:UserName

New-PSDrive -Name «x» -PSProvider FileSystem -Root «\\SRV-OLIN02-031\SMB2022Nacho\$VARNAME» -Persist

 

Donde, como podemos ver, hay dos cambios:

  • Primer cambio, se añade la variable $VARNAME que pregunta al sistema cual es el usuario.
  • Segundo cambio, la ruta mapeada, ahora añade esa nueva variable («\\SRV-OLIN02-031\SMB2022Nacho\$VARNAME») con lo que tenemos que tocar menos dentro del código.

Personalmente, le daría una vuelta más, y es el incluir esta nueva forma:

$UNITNAME=»\\SRV-OLIN02-031\SMB2022Nacho\$VARNAME»

$VARNAME=$env:UserName

New-PSDrive -Name «x» -PSProvider FileSystem -Root «$UNITNAME» -Persist

 

Donde añadimos un tercer cambio, que es una nueva variable que tiene la ruta más el nombre de usuario.

Esto hará que podamos hacer cambios de manera más rápida, sin toquetear el código, cambiando únicamente las variables. Esto quizá no sea importante en este script ahora mismo ya que es muy pequeño, pero tomará importancia vital conforme vaya creciendo.

Imagen. Ejecución del script PowerShell para el mapeo de unidades personales en ISE
Imagen. Ejecución del script PowerShell para el mapeo de unidades personales en ISE

A partir de aquí tendríamos un script básico con el que podríamos operar perfectamente, o podríamos seguir desarrollando, aumentando la complejidad y las prestaciones.

 

Conclusiones

Como puedes ver, a lo largo de este artículo, cómo mapear una unidad de red mediante script de PowerShell, hemos descrito como podemos crear un pequeño pedazo de código, realmente simple, pero tremendamente potente con el que conectar a una unidad compartida, y que, en este caso, se mapea en función del nombre de usuario con el que hayamos conectado, o sea, que no conectará al mismo sitio si conectamos con el usuario “jioller” que si conectamos con el usuario “nacho”.

Cómo viene siendo habitual, este artículo sienta las bases del script y da algunas pautas, pero las posibilidades, que se dejan al lector, son infinitas.

La ejecución es sencilla y debería estar soportada por todos los sistemas Microsoft Windows actuales ya que son cmdlets básicos de PowerShell, pero si encontraras algún problema en su ejecución puedes contactar con nosotros para que intentemos echarte una mano.

Si quieres aprender otros scripts y trucos de PowerShell puedes echar un ojo a nuestro blog.

¡Gracias por leernos!

Categorías:Recursos Sysadmin

Otros posts que te pueden interesar

13 de noviembre de 2024
¡Tenemos nuevas distros en Servidores! En respuesta a las múltiples solicitudes de varios de nuestros partners, se ha habilitado
13 de noviembre de 2024
¡Ya es posible desplegar plantillas de diferentes softwares desde el asistente de despliegue de servidores! Estrenamos esta funcionalidad del
13 de noviembre de 2024
¡Integración con QNAP! Ya es posible crear copias sincronizadas entre dispositivos de almacenamiento local QNAP y nuestro servicio de

Rellena el formulario y nuestro equipo de Sales contactará contigo lo antes posible.

growth@jotelulu.com  |  +34 911 333 712  |  jotelulu.com 

Puedes darte de baja de estas comunicaciones en cualquier momento.  Consulta nuestra Política de privacidad.

Precios competitivos para la pyme y mucho más margen para el partner

Disaster Recovery ha sido diseñado, implementado y puesto en producción teniendo en cuenta dos premisas: Debe tener un precio atractivo para la pyme a la vez que deja un buen margen de beneficio a la empresa de IT que lo comercializa y gestiona.

DR_buen_precio_y_mas_margen

De esta manera, Disaster Recovery pretende ser un producto diferencial que permita incrementar la seguridad de todo tipo de empresas de manera asequible e implicando, además, rentabilidad para el distribuidor que lo comercializa.

Protege la infraestructura de tus clientes

Disaster Recovery permite replicar cualquier suscripción de infraestructura (Escritorio Remoto y Servidores) en otra zona de disponibilidad creando un entorno de alta disponibilidad y blindando así el servicio.

Replica en pocos pasos no sólo los discos sino todos los elementos que forman parte de cada suscripción:

  • Servidores: Instancias, discos, reglas de firewall, redes, IPs…
  • Escritorio Remoto: Usuarios, Aplicaciones, Licencias, Personalización…
DR_blinda_la_infraestructura

Tratamos de hacer fácil lo difícil

Las herramientas de Disaster Recovery existentes necesitan de conocimientos avanzados para poder ser gestionadas, implicando, muchas veces, un expertise difícil de alcanzar.

 

Disaster Recovery de Jotelulu busca hacer fácil lo difícil y plantea un despliegue muy sencillo basado en una configuración de tres pasos:

Origin (Primary Site)
Determina la ubicación de origen de la suscripción sobre la que se va a establecer el servicio de Disaster Recovery.

Destino (Recovery Site)
Establece la ubicación de destino (zona de disponibilidad) en la que quieres que se despliegue el Recovery Site.

Características de la réplica
Establece los datos asociados al número de copias que se quieren guardar y la frecuencia con la que se va a llevar a cabo la réplica.