ตรวจสอบความจุของดิสก์ใน windows ของเซิร์ฟเวอร์ระยะไกล


18

ฉันทำงานใน windows และฉันต้องการค้นหาความจุดิสก์บรรทัดคำสั่งของเซิร์ฟเวอร์ windows ระยะไกล

ตัวอย่างเช่นฉันเป็น @localhost ตอนนี้ฉันอยากรู้ว่าไดรฟ์ของเซิร์ฟเวอร์ 172.68.68.68 นั้นใหญ่กว่า 10 GB หรือไม่ ฉันจะตรวจสอบได้อย่างไร

เซิร์ฟเวอร์ทั้งหมดกำลังเรียกใช้ windows OS

คำตอบ:


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 เป็นตัวเลข

สำหรับ giggles ฉันเขียนสคริปต์ 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"

ในปีนี้จะต้องมีข้อมูลประจำตัวของผู้ดูแลระบบ
Bink

3

หากคุณอยู่ในโดเมนคุณอาจจะสามารถทำอะไรกับ WMI ( ตัวอย่าง WMI ) หากคุณไม่ได้อยู่ในโดเมนคุณสามารถตรวจสอบจากระยะไกลได้สองวิธี:

  • ตั้งค่า SNMP ( doc ยอดเยี่ยมพร้อมคู่มือ ) และเขียนสคริปต์เพื่อสำรวจ SNMP daemon
  • ใช้ผลิตภัณฑ์ตรวจสอบ ฉันเคยใช้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 ไดรฟ์ข้อมูล diskfree C:
เอาท์พุท:
จำนวนไบต์รวมทั้งหมด: 17084395520
จำนวน # รวม: 249145847808
จำนวนไบต์ว่างทั้งหมดที่ให้บริการฟรี: 17084395520

การปรับปรุงใด ๆ
rocko

ฉันไม่เคยเห็นใครติดตั้งเซิร์ฟเวอร์ telnet บน Windows แม้แต่ในตัว โดยเฉพาะอย่างยิ่งนับตั้งแต่ telnet ได้รับการพิจารณาว่าไม่ปลอดภัย
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
ยินดีต้อนรับสู่ Super User! การบริจาคของคุณยินดีต้อนรับ แต่คุณสามารถให้คำอธิบายเกี่ยวกับฟังก์ชั่นด้านบนได้หรือไม่? :)
bertieb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.