Usando o Powershell, você pode usar o seguinte comando:
Get-WmiObject -Class win32_logicalDisk -ComputerName server1, server2, server3, etc | Select-Object pscomputername, deviceid, freespace, size
Substitua server1, server2, etc. pelos nomes ou IPs remotos do servidor.
A saída é assim:
Se desejar, você pode adicionar | Export-Csv -Path .\drives.csv
ao final do script a saída do arquivo para um arquivo de valor separado por vírgula (CSV) para uso com o Excel. Se você fizer isso, quando abrir o Excel, precisará formatar as colunas de tamanho da unidade no Excel como números.
Apenas para rir, escrevi este script do PowerShell que executará a tarefa em todos os servidores no 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"
}
}
Se você estiver em um domínio, provavelmente poderá fazer algo com o WMI ( exemplo do WMI ). Se você não estiver em um domínio, poderá seguir duas maneiras de monitoramento remoto:
fonte
Se você tiver acesso ao compartilhamento de rede e o Cygwin instalado, poderá executar este comando:
# df -h //myserver/shareddrive Filesystem Size Used Avail Use% Mounted on - 25G 13G 12G 52% //myserver/shareddrive
fonte
galera eu também vim com uma solução usando a ideia de fsutil e telnet:
diskcheck.bat:
fonte
fonte