Verifica della capacità del disco nelle finestre dei server remoti


18

Sto lavorando in Windows e voglio scoprire attraverso la capacità del disco della riga di comando dei server Windows remoti.

Ad esempio: sono @localhost, ora voglio sapere se D: l'unità del server 172.68.68.68 è 10 GB o meno. Come posso controllare?

Tutti i server eseguono il sistema operativo Windows

Risposte:


18

Utilizzando Powershell, è possibile utilizzare il seguente comando:

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

Sostituire server1, server2, ecc. Con i nomi o gli IP del server remoto.

L'output è simile al seguente:

inserisci qui la descrizione dell'immagine

Se lo desideri, puoi aggiungere | Export-Csv -Path .\drives.csvalla fine dello script per generare il file in un file con valori separati da virgola (CSV) da utilizzare con Excel. In tal caso, quando apri Excel dovrai formattare le colonne delle dimensioni dell'unità in Excel come numeri.

Solo per risatine, ho scritto questo script PowerShell che eseguirà l'attività su tutti i server in 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

Usa il comando fsutil:

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

L'output sarà come:

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

Per ottenere solo la linea con i byte liberi puoi usare:

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

Cordiali saluti, questo richiederà credenziali amministrative.
Bink,

3

Se ti trovi in ​​un dominio, probabilmente saresti in grado di fare qualcosa con WMI ( esempio WMI ). Se non ti trovi in ​​un dominio, puoi seguire due modi per il monitoraggio remoto:

  • Configurare SNMP ( documento eccellente con guida ) e scrivere script per eseguire il polling del demone SNMP.
  • Utilizzare un prodotto di monitoraggio. Ho usato Opsview e Ninja in passato. Microsoft SCOM è anche una buona alternativa (se puoi permetterti i costi di licenza).

1

Se hai accesso alla condivisione di rete e hai installato Cygwin puoi eseguire questo comando:

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


0

ragazzi ho anche fornito una soluzione usando l'idea di fsutil e 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:
Produzione:
Numero totale di byte liberi: 17084395520
Numero totale di byte: 249145847808
Numero totale di byte gratuiti disponibili: 17084395520

qualche miglioramento?
rocko,

Non ho mai visto nessuno installare un server Telnet su Windows, nemmeno quello incorporato. Soprattutto perché Telnet è da tempo considerato insicuro.
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
Benvenuto in Super User! Il tuo contributo è il benvenuto, ma puoi fornire una spiegazione della funzione di cui sopra? :)
bertieb
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.