it-swarm.com.de

Überprüfen der Festplattenkapazität in Fenstern von Remoteservern

Ich arbeite in Windows und möchte über die Befehlszeile die Festplattenkapazität von Windows-Remoteservern ermitteln.

Zum Beispiel: Ich bin @localhost, jetzt möchte ich wissen, ob D: Laufwerk des Servers 172.68.68.68 größer als 10 GB ist oder nicht. Wie kann ich überprüfen?

Auf allen Servern wird Windows ausgeführt

18
rocko

Mit Powershell können Sie den folgenden Befehl verwenden:

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

Ersetzen Sie server1, server2 usw. durch die Namen oder IP-Adressen des Remoteservers.

Die Ausgabe sieht folgendermaßen aus:

enter image description here

Wenn Sie möchten, können Sie | Export-Csv -Path .\drives.csv am Ende des Skripts hinzufügen, um die Datei in eine CSV-Datei (Comma Separated Value) zur Verwendung mit Excel auszugeben. Wenn Sie dies tun, müssen Sie beim Öffnen von Excel die Spalten mit der Laufwerksgröße in Excel als Zahlen formatieren.

Nur zum Kichern habe ich dieses PowerShell-Skript geschrieben, das die Aufgabe auf allen Servern in Active Directory ausführt:

$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"
    }

}
16
Keltari

Verwenden Sie den Befehl fsutil :

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

Die Ausgabe wird wie folgt aussehen:

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

Um nur die Zeile mit den freien Bytes zu erhalten, können Sie Folgendes verwenden:

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

Wenn Sie sich in einer Domäne befinden, können Sie wahrscheinlich etwas mit WMI tun ( WMI-Beispiel ). Wenn Sie sich nicht in einer Domäne befinden, haben Sie zwei Möglichkeiten zur Fernüberwachung:

  • Richten Sie SNMP ( excellent doc with guide ) ein und schreiben Sie Skripte, um den SNMP-Dämon abzufragen.
  • Verwenden Sie ein Überwachungsprodukt. Ich habe in der Vergangenheit Opsview und Ninja verwendet. Microsoft SCOM ist auch eine gute Alternative (wenn Sie sich die Lizenzgebühren leisten können).
3
mtak

Wenn Sie Zugriff auf die Netzwerkfreigabe haben und Cygwin installiert haben, können Sie diesen Befehl ausführen:

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

1
LatinSuD
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
}
0
Ryan

jungs, ich kam auch mit einer Lösung mit Idee von fsutil und 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: 
 Ausgabe: 
 Gesamtzahl der freien Bytes: 17084395520 
 Gesamtzahl der Bytes: 249145847808 
 Gesamtzahl der verfügbaren freien Bytes Bytes: 17084395520 
0
rocko