Cómo comprobar el espacio en disco con PowerShell



A veces, controlar el espacio en disco es un fastidio, sobre todo al administrar varios sistemas o simplemente buscar una forma rápida de comprobar el espacio disponible sin tener que abrir el Explorador de archivos repetidamente. PowerShell es sorprendentemente práctico para esto, y no necesitas ser un experto en scripting para obtener información útil. En esencia, te permite ver no solo tus unidades locales, sino también las máquinas remotas, lo cual es muy útil si estás solucionando problemas o supervisando servidores. Pero, por supuesto, para obtener datos significativos, necesitas ejecutar estos comandos correctamente y, a veces, ajustar algunas configuraciones para asegurarte de que todo funcione correctamente.

Cómo comprobar el espacio en disco con PowerShell: el método básico

Obtener información sobre todas sus unidades

Lo primero es comprender la función Get-PSDrive. Enumera todas las unidades que PowerShell reconoce, incluyendo unidades de red y proveedores que no solo pertenecen al sistema de archivos. Para centrarse solo en las unidades de almacenamiento, debe filtrarlas. Normalmente, querrá ver las unidades que utilizan espacio de almacenamiento, como C:, D: o recursos compartidos de red con almacenamiento. Un comando común es:

Get-PSDrive | Where-Object { $_. Free -gt 0 }

Esto recupera todas las unidades con algo de espacio libre y filtra todo lo que informe cero o ningún espacio libre, que pueden ser unidades del sistema o especiales.

Sin embargo, para aclarar las cosas, especialmente si solo desea discos locales basados ​​en el sistema de archivos, es posible que desee especificar:

Get-PSDrive -PSProvider FileSystem | Select-Object Name, Free, Used, Provider

De esta manera, solo se muestran los discos locales, lo que hace que esté menos desordenado y sea más útil si estás mirando el almacenamiento para novatos o para verificaciones rápidas.

Monitoreo de sistemas remotos: ¿por qué no?

Si administra una red de servidores o PC remotas, PowerShell también puede hacerlo. Solo necesita permiso y habilitar la comunicación remota. El comando es básicamente:

Invoke-Command -ComputerName <ComputerName> -ScriptBlock {Get-PSDrive -PSProvider FileSystem | Select-Object Name, Free, Used}

Reemplace <ComputerName> con el nombre o la IP de la máquina de destino. Por ejemplo, si desea verificar un servidor llamado «Server01», se vería así:

Invoke-Command -ComputerName Server01 -ScriptBlock {Get-PSDrive -PSProvider FileSystem | Select-Object Name, Free, Used}

Esto mostrará el espacio libre y usado en cada partición del sistema de archivos. La parte complicada es asegurarse de tener habilitada la comunicación remota y de que su cuenta de usuario tenga los permisos correctos. A veces, en servidores bloqueados, la comunicación remota no funciona de fábrica y requiere habilitarla mediante Enable-PSRemoting en el sistema remoto, lo cual es otro problema.

En una configuración, este comando funcionó de inmediato, pero en otra falló hasta que se configuraron los permisos correctos o se activó la comunicación remota. No sé por qué varía, pero es un problema común.

Automatizar y recibir alertas: un poco de magia de scripting

Para quienes disfrutan de la informática, pueden integrar esto en un script que se ejecuta según un programa (como el Programador de Tareas), comprobando automáticamente el espacio en disco e incluso enviando alertas por correo electrónico si el espacio libre baja, por ejemplo, del 10 %.Es perfecto para administradores que desean una supervisión constante sin supervisión.

Por ejemplo, un script simple podría verse así:

if ((Get-PSDrive -PSProvider FileSystem | Where-Object { $_. Free -lt 10GB })) { Send-MailMessage -To "[email protected]" -From "[email protected]" -Subject "Low Disk Space Alert" -Body "One of your drives is running low on space." } 

Esta configuración requiere un poco más de ajustes en la configuración SMTP, pero el concepto es sencillo: verificar los discos y, si el espacio es problemático, notificar a alguien automáticamente.

Por supuesto, probar estos scripts y comandos en su propia configuración es fundamental, ya que cada entorno tiene sus propias peculiaridades. A veces, PowerShell simplemente se niega a conectarse sin permisos adicionales o reglas de firewall. Además, en algunas versiones de Windows, la comunicación remota debe estar activada explícitamente.

Claro que Windows lo hace más difícil de lo que debería. Pero una vez configurado, es bastante potente para realizar comprobaciones rápidas o monitorización continua.

Resumen

  • Utilice Get-PSDrive para enumerar las unidades y verificar el espacio libre.
  • Filtrar con Where-Object para ver solo las unidades con almacenamiento disponible.
  • Utilice Invoke-Command para realizar comprobaciones remotas, asegurándose de que la comunicación remota esté habilitada y que los permisos estén en orden.
  • Cree scripts para automatizar alertas o controles regulares, ya que los controles manuales se vuelven obsoletos rápidamente.

Resumen

En resumen, PowerShell es una herramienta sorprendentemente útil para monitorizar el espacio en disco, tanto en sistemas locales como remotos. No siempre es completamente sencillo, pero con algunos ajustes, puede evitar muchos dolores de cabeza y fallos inesperados. Solo recuerda probar primero en una máquina no crítica. Ojalá esto ayude a alguien a mantener su almacenamiento bajo control sin tener que abrir el explorador constantemente.



¿Te resultó útil este artículo?