Con Powershell, puede usar el siguiente comando:
Get-WmiObject -Class win32_logicalDisk -ComputerName server1, server2, server3, etc | Select-Object pscomputername, deviceid, freespace, size
Reemplace server1, server2, etc. con los nombres de servidores remotos o IP.
El resultado se ve así:
Si lo desea, puede agregar | Export-Csv -Path .\drives.csv
al final de la secuencia de comandos para enviar el archivo a un archivo de valores separados por comas (CSV) para usar con Excel. Si lo hace, cuando abra Excel deberá formatear las columnas del tamaño de la unidad en Excel como números.
Solo por risas, escribí este script de PowerShell que realizará la tarea en todos los servidores de Active Directory:
$ErrorActionPreference= 'silentlycontinue'
Get-ADComputer -Filter 'OperatingSystem -like "*Server*"' -Properties * | Select-Object Name |
ForEach-Object {
If (Test-Connection $_.Name -Count 1){
Get-WmiObject -Class win32_logicalDisk -ComputerName $_.Name |
Select-Object pscomputername, deviceid, freespace, size
}
else {
Write-host $_.Name " Connection Error"
}
}
Si está en un dominio, probablemente podría hacer algo con WMI ( ejemplo de WMI ). Si no está en un dominio, puede seguir dos formas de monitoreo remoto:
fuente
Si tiene acceso al recurso compartido de red y tiene instalado Cygwin, puede hacer este comando:
# df -h //myserver/shareddrive Filesystem Size Used Avail Use% Mounted on - 25G 13G 12G 52% //myserver/shareddrive
fuente
chicos, también vine con una solución usando la idea de fsutil y telnet:
diskcheck.bat:
fuente
fuente