Mostrar Información unidades de almacenamiento en PowerShell

 Buenas tardes queridos lectores, seguiremos publicando post acerca de PowerShell, este cmd con esteroides de Microsoft. Pues bien, comencemos


Mostrar información de unidades de almacenamiento en Powershell

Para mostrar información de las unidades de almacenamiento primero debemos comprender que una unidad de almacenamiento es todo aquel dispositivo que permita almacenar datos, llamese Disco Duro (HD), Disco de Estado Sólido (SSD), memoria USB (USB) o alguna memoria SD, Windows nos lo da de manera muy sencilla, accediendo a Este equipo y explorando los dispositivos y unidades como se muestra en la siguiente imagen:


Como vemos en Windows es muy sencillo, pero si quisieramos programar acciones que se detonen dependiendo el espacio en disco, pues entonces toma mucha relevancia PowerShell, en este post, no vamos a ver ningún script para programar en PowerShell, tampoco ningún if de momento, pero servirá para abrir ideas a lo que se puede realizar, pues bien, empecemos a realizar eso en PowerShell abriendo nuestra consola

Al abrir la consola, teclearemos el siguiente comando:

Get-CimInstance -ClassName Win32_LogicalDisk


Al presionar ENTER, nos aparecerá algo similar a la siguiente pantalla:


Como podemos observar, Powershell nos arroja información de nuestras unidades de almacenamiento, no es difícil darnos cuenta de los siguientes campos:

  • DevideID: Corresponde a la letra de la unidad
  • DriveType: Nos indica el tipo de unidad (3=Discos Fijos, 2=Unidades extraibles)
  • VolumenName: Es el nombre que tiene nuestro disco
  • Size: El tamaño total de la unidad
  • FreeSpace: El espacio disponible en la unidad.
Hasta aquí PowerShell esta mostrando lo mismo que Windows, sin embargo, PowerShell es muchísimo mas que eso, probemos el siguiente script:

cls

$discos = Get-CimInstance -ClassName Win32_LogicalDisk |Where-Object {$_.DeviceID -eq 'C:'}

echo $discos 


En el siguiente script, la primer línea cls, nos limpia la pantalla.

La segunda línea guarda el resultado que nos devuelve la información de los discos en la variable $discos, pero vemos aquí algo nuevo: la existencia del parámetro Where, en efecto, PowerShell maneja los objetos como una base de datos, por lo que la condicionante WHERE funciona de manera similar, podemos deducir que se filtrará por el campo DEVICE_ID, cuyo nombre sea igual a C:, sin embargo no hablaremos ahora de los operadores, solo dar una idea de la potencia de este lenguaje de scripting

La tercera línea muestra el resultado de la variable


Ahora como mencione, PowerShell funciona como una base de Datos, anteriormente utilizamos el parámetro Where para poder filtrar información, tal cual lo hace SQL, por lo cual, también podremos utilizar de igual manera la sentencia Select para darle un mejor formato o realizar alguna operación en la salida de la información.

Consideremos el siguiente script:

cls

$discos = Get-CimInstance -ClassName Win32_LogicalDisk |

select deviceID, DriveType, VolumeName, @{name="Space"; e={$_.Size/1GB}}, @{n="FreeSpace"; e={$_.FreeSpace/1GB}}|

Format-Table 

echo $discos 


Como podemos apreciar, la clave esta en el select, así como en los campos Space y FreeSpace, ahora se expresaran en GB para que sea más fácil su legibilidad.


El comando Format, muestra el resultado en forma de tabla, o en forma de lista, según el parámetro expresado.

Actualización:

Un comando más fácil y practico para obtener la misma información el el comando Get-Volume:

Get-Volume



 


Espero este post haya sido de su agrado, cualquier duda que tengan no duden en preguntar. Si les sirvió el post, den clic a algún anuncio, eso me ayudaría mucho.

Saludos

No hay comentarios.:

Publicar un comentario

Featured Post

Permitir ping en firewall de Windows

 Buenos días queridos lectores, ya mucho tiempo sin escribir nada, el día de hoy les mostraré como habilitar el ping en el firewall de Windo...