Перевірка ємності диска у вікнах віддалених серверів


18

Я працюю у Windows, і я хочу дізнатися через диск командної лінії ємність віддалених серверів Windows.

Наприклад: Я @localhost, тепер я хочу знати, чи D: диск сервера 172.68.68.68 більший 10 ГБ чи ні. Як я можу перевірити?

На всіх серверах працює ОС Windows

Відповіді:


18

Використовуючи Powershell, ви можете використовувати таку команду:

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

Замініть server1, server2 тощо тощо на імена віддалених серверів або IP-адреси.

Вихід виглядає приблизно так:

введіть тут опис зображення

Якщо ви хочете, ви можете додати | Export-Csv -Path .\drives.csvдо кінця скрипту, щоб вивести файл у файл зі значенням, розділеним комами (CSV), для використання з Excel. Якщо ви це робите, відкриваючи Excel, вам потрібно буде відформатувати стовпці розміру накопичувача в Excel як числа.

Тільки для хихикань я написав цей скрипт PowerShell, який виконуватиме завдання на всіх серверах в 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"
    }

}

9

Використовуйте команду fsutil:

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

Вихід буде таким:

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

Щоб отримати лише рядок із вільними байтами, якими ви можете скористатися:

fsutil volume diskfree C: | find /i "avail free"

БЮР, для цього знадобляться адміністративні дані.
Бінк

3

Якщо ви перебуваєте в домені, ви, ймовірно, зможете зробити щось із WMI ( приклад WMI ). Якщо ви не в домені, ви можете скористатися двома способами віддаленого моніторингу:

  • Створіть SNMP ( відмінний документ із посібником ) та напишіть сценарії для опитування демона SNMP.
  • Використовуйте продукт моніторингу. Я використовував Opsview і Ninja . Microsoft SCOM також є хорошою альтернативою (якщо ви можете дозволити собі ліцензійні платежі).

1

Якщо у вас є доступ до спільної мережі і у вас встановлений Cygwin, ви можете виконати цю команду:

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


0

хлопці, я також прийшов із рішенням, використовуючи ідею fsutil і 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 об'єм диску без С:
Вихід:
Всього вільних байтів: 17084395520
Загальна кількість байтів: 249145847808
Всього вільних байтів: 17084395520

якісь поліпшення?
rocko

Я ніколи не бачив, щоб хтось встановлював сервер telnet у Windows, навіть вбудований. Тим більше, що телнет давно вважається незахищеним.
Келтарі

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
}

1
Ласкаво просимо до Супер Користувача! Ваш внесок вітається, але чи можете ви надати пояснення вищезазначеної функції? :)
bertieb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.