Kiểm tra dung lượng đĩa trong cửa sổ của máy chủ từ xa


18

Tôi đang làm việc trong các cửa sổ và tôi muốn tìm hiểu thông qua dung lượng đĩa dòng lệnh của các máy chủ windows từ xa.

Ví dụ: Tôi là @localhost, bây giờ tôi muốn biết liệu ổ đĩa D: của máy chủ 172,68,68,68,68 có lớn hơn 10 GB hay không. Làm thế nào tôi có thể kiểm tra?

Tất cả các máy chủ đang chạy hệ điều hành Windows

Câu trả lời:


18

Sử dụng Powershell, bạn có thể sử dụng lệnh sau:

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

Thay thế server1, server2, v.v. bằng tên máy chủ hoặc IP từ xa.

Đầu ra trông như thế này:

nhập mô tả hình ảnh ở đây

Nếu bạn muốn, bạn có thể thêm | Export-Csv -Path .\drives.csvvào cuối tập lệnh để xuất tệp thành tệp giá trị (CSV) được phân tách bằng dấu phẩy để sử dụng với Excel. Nếu bạn làm như vậy, khi bạn mở Excel, bạn sẽ cần định dạng các cột kích thước ổ đĩa trong Excel dưới dạng số.

Chỉ để cười khúc khích, tôi đã viết tập lệnh PowerShell này sẽ thực hiện tác vụ trên tất cả các máy chủ trong 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

Sử dụng lệnh fsutil:

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

Đầu ra sẽ như sau:

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

Để chỉ nhận dòng có byte miễn phí, bạn có thể sử dụng:

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

FYI, điều này sẽ yêu cầu thông tin quản trị.
Bink

3

Nếu bạn ở trong một miền, có lẽ bạn sẽ có thể làm điều gì đó với WMI ( ví dụ WMI ). Nếu bạn không ở trong một miền, bạn có thể đi theo hai cách để theo dõi từ xa:

  • Thiết lập SNMP ( tài liệu tuyệt vời với hướng dẫn ) và viết tập lệnh để thăm dò daemon SNMP.
  • Sử dụng một sản phẩm giám sát. Tôi đã sử dụng OpsviewNinja trong quá khứ. Microsoft SCOM cũng là một lựa chọn tốt (nếu bạn có thể trả phí bản quyền).

1

Nếu bạn có quyền truy cập vào chia sẻ mạng và bạn đã cài đặt Cygwin, bạn có thể thực hiện lệnh này:

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


0

Các bạn tôi cũng đã đưa ra một giải pháp sử dụng ý tưởng về fsutil và 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>

đĩacheck.bat:

ổ đĩa âm lượng fsutil C:
Đầu ra:
Tổng số byte miễn phí: 17084395520
Tổng số byte: 249145847808
Tổng số byte miễn phí có sẵn: 17084395520

có cải tiến gì không?
rocko

Tôi chưa bao giờ thấy ai cài đặt máy chủ telnet trên Windows, ngay cả máy chủ tích hợp. Đặc biệt, vì telnet từ lâu đã được coi là không an toàn.
Keltari

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
Chào mừng bạn đến với Siêu người dùng! Đóng góp của bạn được hoan nghênh, nhưng bạn có thể cung cấp một lời giải thích về chức năng trên không? :)
bertieb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.