Get-WMIObject Win32_LogicalDisk -ComputerName (Get-Content all.txt) | Where-Object {$_.DriveType -match "3"} | Where-Object {$_.FreeSpace -lt 1000GB} | Format-Table PsComputerName,deviceID,Size,FreeSpace | tee -filePath estado.txt
¿como funciona?
El cmdletGet-WMIObject realiza la captura de datos de Win32_LogicalDisk (todas la unidades del equipo, discos duros, unidades de DVD, Blue-ray, etc..) del listado especificado por -ComputerName en el archivo de texto all.txt (Get-Content all.txt).
En el archivo all.txt se coloca el listado de hostname de equipos a consultar uno debajo del otro (o listado de IP's).
Luego se limita la busqueda con Where-Object {$_.DriveType -match "3"} a las unidades de tipo Hard Disk y se limita con Where-Object {$_.FreeSpace -lt 1000GB} a que solo muestre los resultados de espacio libre menor al que indiquemos, en este caso esta menos a una Tera mas o menos -lt 1000GB, yo lo dejo en 10GB el cual es un umbral de espacio para empezar a tener cuidado en los servidores que se estan administrando, pero cada quien pone el valor de su conveniencia, y si quitan esta ultima linea mostrara el listado sin importar espacio libre.
Ahora con Format-Table PsComputerName,deviceID,Size,FreeSpace damos el formato de salida de los datos que queremos y por ultimo con tee -filePath estado.txt exportamos nuestro datos encontrados al archivo estado.txt,
Ahora recordarles que powershell en equipos de escritorio viene con una politica de restriccion restringida por lo cual lo primero que hacemos es abrir powershell en Run As administrator y ejecutamos la siguiente linea:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Ahora podemos descargar los siguientes archivos en donde se encontraran los siguientes Archivos:
- all.txt Archivo donde se debe colocar el listado de equipos a revisar
- discos.ps1 Archivo de PowerShell listo para ejecutar modificar tamaño a buscar
- discos.xlsx Archivo de excel el cual importa los datos de estado.txt
- estado.txt Archivo que genera el Script de powershell con los resultados
Se deben ubicar los archivos en la misma carpeta (se puede crear una carpeta llamada discos en C:\)
Se abre PowerShell y nos ubicamos dentro de la carpeta con
cd c:\discos
y ejecutamos nuestro script con
.\discos.ps1
Luego abrimos el archivo de Excel y desde alli actualizamos los datos desde la pestaña Datos y la opcion Actualizar todo
Luego seleccionamos nuestro archivo generado estado.txt e importamos
Despues de realizar la importacion arrastramos la formula de la celda E4 hasta el final de nuestra lista de datos.
Nos arrojara el resultado en porcentaje de espacio libre con escala de color de acuerdo a los parametros establecido en los cuales apareceran en rojo los valores de menor valor.
Espero a alguno le sea util
¡Hasta la proxima!
"Si te fue útil la información HAZ CLICK EN LA PUBLICIDAD DE GOOGLE" visitando nuestros anunciantes, agradeces nuestro trabajo...