Korzystając z PowerShell, możesz użyć następującego polecenia:
Get-WmiObject -Class win32_logicalDisk -ComputerName server1, server2, server3, etc | Select-Object pscomputername, deviceid, freespace, size
Zastąp server1, server2 itp. Zdalnymi nazwami serwerów lub adresami IP.
Dane wyjściowe wyglądają następująco:
Jeśli chcesz, możesz dodać | Export-Csv -Path .\drives.csv
na końcu skryptu, aby wyprowadzić plik do pliku wartości rozdzielanej przecinkami (CSV) do użycia z programem Excel. Jeśli tak, po otwarciu programu Excel należy sformatować kolumny rozmiaru dysku w programie Excel jako liczby.
Tylko na chichoty napisałem ten skrypt PowerShell, który wykona zadanie na wszystkich serwerach w 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"
}
}
Jeśli jesteś w domenie, prawdopodobnie mógłbyś coś zrobić z WMI ( przykład WMI ). Jeśli nie jesteś w domenie, możesz przejść na dwa sposoby zdalnego monitorowania:
źródło
Jeśli masz dostęp do udziału sieciowego i masz zainstalowany Cygwin, możesz wykonać następujące polecenie:
# df -h //myserver/shareddrive Filesystem Size Used Avail Use% Mounted on - 25G 13G 12G 52% //myserver/shareddrive
źródło
chłopaki, przyszedłem również z rozwiązaniem wykorzystującym pomysł fsutil i telnet:
diskcheck.bat:
źródło
źródło