Memeriksa kapasitas disk di windows server jarak jauh

18

Saya bekerja di windows dan saya ingin mencari tahu melalui kapasitas disk baris perintah server remote windows.

Sebagai contoh: Saya @ localhost, sekarang saya ingin tahu apakah D: drive server 172.68.68.68 lebih besar 10 GB atau tidak. Bagaimana saya bisa memeriksanya?

Semua server menjalankan OS windows

rocko
sumber

Jawaban:

16

Menggunakan Powershell, Anda dapat menggunakan perintah berikut:

Get-WmiObject -Class win32_logicalDisk -ComputerName server1, server2, server3, etc | Select-Object pscomputername, deviceid, freespace, size

Ganti server1, server2, dll dengan nama server jarak jauh atau IP.

Outputnya terlihat seperti ini:

masukkan deskripsi gambar di sini

Jika Anda mau, Anda bisa menambahkan | Export-Csv -Path .\drives.csvdi akhir skrip untuk menampilkan file ke file CSA (comma separated value) untuk digunakan dengan Excel. Jika ya, saat Anda membuka Excel, Anda perlu memformat kolom ukuran drive di Excel sebagai angka.

Hanya untuk cekikikan, saya menulis skrip PowerShell ini yang akan melakukan tugas di semua server di 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"
    }

}
Keltari
sumber
8

Gunakan perintah fsutil:

fsutil volume diskfree C:
fsutil volume diskfree \\server\share

Output akan seperti:

Total # of free bytes        : 851127304192
Total # of bytes             : 2147480485888
Total # of avail free bytes  : 851127304192

Untuk mendapatkan hanya baris dengan byte gratis yang dapat Anda gunakan:

fsutil volume diskfree C: | find /i "avail free"
Joachim Marder
sumber
3

Jika Anda berada dalam domain, Anda mungkin dapat melakukan sesuatu dengan WMI ( contoh WMI ). Jika Anda tidak berada dalam domain, Anda dapat melakukan dua cara untuk pemantauan jarak jauh:

  • Siapkan SNMP ( dokumen luar biasa dengan panduan ) dan tulis skrip untuk polling daemon SNMP.
  • Gunakan produk pemantauan. Saya telah menggunakan Opsview dan Ninja di masa lalu. Microsoft SCOM juga merupakan alternatif yang baik (jika Anda mampu membayar biaya lisensi).
mtak
sumber
1

Jika Anda memiliki akses ke jaringan berbagi dan Anda telah menginstal Cygwin, Anda dapat melakukan perintah ini:

# df -h //myserver/shareddrive Filesystem Size Used Avail Use% Mounted on - 25G 13G 12G 52% //myserver/shareddrive

LatinSuD
sumber
0

kawan saya juga datang dengan solusi menggunakan ide fsutil dan telnet:

<package>

  <job id="vbs">

  <script language="VBScript">

     set WshShell = WScript.CreateObject("WScript.Shell")
     WshShell.Run "telnet 182.56.32.23 -l work"
     WScript.Sleep 500
     WshShell.AppActivate "Telnet"
     WScript.Sleep 500
     WshShell.SendKeys "y"
     WshShell.SendKeys "~"      
     WScript.Sleep 500
     WshShell.SendKeys "helloworld"
     WScript.Sleep 500
     WshShell.SendKeys "~"  
     WScript.Sleep 500
     WshShell.SendKeys "C:\Users\work2\Desktop\diskcheck.bat"   
     WScript.Sleep 200
     WshShell.SendKeys "~"

  </script>

 </job>

</package>

diskcheck.bat:

fsutil volume diskfree C:
Keluaran:
Total # byte gratis: 17084395520
Total # byte: 249145847808
Total # dari byte gratis yang tersedia: 17084395520
rocko
sumber
ada perbaikan?
rocko
0
Function GetRemoteDiskSpace (
[String]$TargetComputer,
[String]$Drive
)
{
$Drive = New-PSDrive -Name K -PSProvider FileSystem -Root "\\$TargetComputer\$Drive$" -Persist
$Info = Get-PSDrive $Drive 
$Free = $Info.Free /1GB
Remove-PSDrive -Name $drive -PSProvider FileSystem

return $Free
}
Ryan
sumber
1
Selamat Datang di Pengguna Super! Kontribusi Anda disambut baik, tetapi dapatkah Anda memberikan penjelasan tentang fungsi di atas? :)
bertieb