Script PowerShell para gestionar discos montados y expulsarlos en Windows

¿Alguna vez te has topado con que al montar discos como carpetas en Windows, la lista de expulsión solo muestra identificadores genéricos como «Disco extraíble»? Es un problema común cuando evitas asignar letras a las unidades. Afortunadamente, hay varias formas de solucionar esto y gestionar tus dispositivos de manera más clara.

Montaje de escritorio mostrando Windows Explorer y PowerShell con un script personalizado para gestión de unidades
Vista del entorno de trabajo con los discos montados y el script ejecutándose.

Soluciones para identificar los discos

El primer paso es entender que, aunque el sistema no muestra los nombres de las carpetas en la lista nativa de expulsión, puedes usar herramientas como renombrar el volumen del disco o asignarle una letra temporal solo para identificación. Sin embargo, si buscas una solución más robusta y personalizada, construir un script con interfaz gráfica es la opción ideal.

Creando tu propia GUI en PowerShell

Puedes utilizar PowerShell junto con las librerías System.Windows.Forms para crear una ventana que liste todos tus discos montados. El script muestra claramente su etiqueta, sistema de archivos y rutas de montaje.

Cómo funciona el código

El núcleo del script utiliza funciones como Get-Volume para obtener la información de cada unidad y System.Windows.Forms.ListView para renderizar los datos en una interfaz visual. Es importante resolver errores comunes, como asegurar que las letras de unidad se conviertan correctamente a cadenas antes de agregarlas a la lista.

Agregando la función de expulsión

Una vez que tienes la ventana funcionando, el siguiente paso lógico es añadir un botón para expulsar las unidades. El script detecta automáticamente si una unidad tiene letra o no, y ejecuta comandos específicos como Shell.Application para dispositivos extraíbles.

Expulsando discos sin letra de unidad

Una mejora clave es implementar la capacidad de expulsar unidades montadas directamente como carpetas. Esto se logra identificando el dispositivo físico asociado a través de Get-PnpDevice y deshabilitándolo temporalmente con Disable-PnpDevice.

Empaquetando el script en un archivo .ps1

Para usarlo fácilmente, puedes guardar todo el código en un solo archivo llamado ExpulsarUnidades.ps1. El proceso es sencillo: abre el Bloc de notas, pega el contenido del script y guárdalo asegurándote de que la extensión sea .ps1.

Instrucciones para ejecutarlo

Luego, haz clic derecho en el archivo y selecciona «Ejecutar con PowerShell (como administrador)». Esto es crucial porque ciertos comandos como Disable-PnpDevice requieren permisos elevados.

Conclusión

Crear tu propio script te da un control total sobre cómo ves y gestionas tus unidades de almacenamiento, evitando la confusión de las listas genéricas del sistema operativo.