Comprobación de la capacidad del disco en ventanas de servidores remotos

18

Estoy trabajando en Windows y quiero averiguar a través de la capacidad de disco de la línea de comandos de los servidores remotos de Windows.

Por ejemplo: soy @localhost, ahora quiero saber si D: la unidad del servidor 172.68.68.68 es mayor a 10 GB o no. ¿Cómo puedo verificar?

Todos los servidores ejecutan el sistema operativo Windows

rocko
fuente

Respuestas:

18

Con Powershell, puede usar el siguiente comando:

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

Reemplace server1, server2, etc. con los nombres de servidores remotos o IP.

El resultado se ve así:

ingrese la descripción de la imagen aquí

Si lo desea, puede agregar | Export-Csv -Path .\drives.csval final de la secuencia de comandos para enviar el archivo a un archivo de valores separados por comas (CSV) para usar con Excel. Si lo hace, cuando abra Excel deberá formatear las columnas del tamaño de la unidad en Excel como números.

Solo por risas, escribí este script de PowerShell que realizará la tarea en todos los servidores de 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"
    }

}
Keltari
fuente
9

Usa el comando fsutil:

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

La salida será como:

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

Para obtener solo la línea con los bytes libres, puede usar:

fsutil volume diskfree C: | find /i "avail free"
Joachim Marder
fuente
Para su información, esto requerirá credenciales administrativas.
Bink
3

Si está en un dominio, probablemente podría hacer algo con WMI ( ejemplo de WMI ). Si no está en un dominio, puede seguir dos formas de monitoreo remoto:

  • Configure SNMP ( excelente documento con guía ) y escriba scripts para sondear el demonio SNMP.
  • Use un producto de monitoreo. He usado Opsview y Ninja en el pasado. Microsoft SCOM también es una buena alternativa (si puede pagar las tarifas de licencia).
mtak
fuente
1

Si tiene acceso al recurso compartido de red y tiene instalado Cygwin, puede hacer este comando:

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

LatinSuD
fuente
0

chicos, también vine con una solución usando la idea de fsutil y 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:
Salida:
Número total de bytes libres: 17084395520
Número total de bytes: 249145847808
Número total de bytes libres disponibles: 17084395520
rocko
fuente
alguna mejora?
rocko
He Nunca visto a nadie instalar un servidor telnet en Windows, incluso la orden interna. Especialmente, ya que Telnet ha sido considerado inseguro desde hace mucho tiempo.
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
}
Ryan
fuente
1
¡Bienvenido a Super User! Su contribución es bienvenida, pero ¿puede proporcionar una explicación de la función anterior? :)
bertieb