Inicio Redes / CMD Comandos Remotos

Obtener espacio en disco de computadora o servidor remotamente



Ultima Actualización del Artículo: Oct 24, 2016

Hace unos días nos consultarón como obtener el espacio en disco de un equipo o de ser posible de varios equipos remotamente, el cual si tenemos muchas opciones a elegir, desde comandos, scripts hasta aplicaciones que analizan los equipos de red.

Para hacer uso de estos, es requerido tener privilegios de administrador de la red y también iniciar las aplicaciones como administrador, por ejemplo PowerShell realizamos la búsqueda de este  damos clic derecho Run As Administrator.

Ejecutar como Administrador

Comando CMD

Lo mas sencillo para consultar el espacio en disco es por medio del siguiente comando, solo que el resultado esta en Byte:

  • Debemos cambiar NombreDeEquipo por la IP o el Nombre del Equipo
  • Tambien LetraDeUnidad por la letra asignada al disco en el equipo (Comúnmente es C:, si no sabemos la letra podemos utilizar primero Caption en lugar de FreeSpace).

 

 

wmic /node:NombreDeEquipo logicaldisk where “DeviceID='LetraDeUnidad:'” get FreeSpace

wmic get FreeSpace

  • Si deseamos conocer la capacidad utilizamos Size en lugar de FreeSpace Ej:
wmic /node:NombreDeEquipo logicaldisk where “DeviceID='LetraDeUnidad:'” get Size
fsutil volume diskfree c:

fsutil volume diskfree

Utilizando PsTools

Podemos utilizar el comando psinfo el cual primero requerimos tener la aplicación PsTools de Sysinternals (es completamente segura descargada desde el sitio de microsoft), esta no se instala cuando vayamos a utilizar algun comando solo debemos estar dentro de la carpeta desde la linea de comando o agregar la ruta a la variable de entorno de sistema y poder ejecutarlo sin necesidad de entrar a la carpeta [Ver Como Agregar Variable de Entorno].

  • Abrimos la consola CMD y escribimos el siguiente comando:
    psinfo -d \\IPDelEquipoONombre
  • Si requieren especificar usuario y clave.

 

psinfo -d \\IPDelEquipoNombre -u “usuario” -p “contraseña”
  • Nos dará los datos del equipo mostrando al final los datos del o los discos duros.psinfo espacio en disco

Código PowerShell

Primero debemos ejecutar el siguiente comando donde pondremos los datos del usuario con privilegios de administrador.

$cred = Get-Credential

El cual mostrara lo siguiente:powershell-credential

Ahora en el siguiente código en la ultima linea en NombreDeEquipo ponemos el nombre del equipo del cual deseamos obtener la información.

$Size = @{name="Size(GB)";expression={ "{0:N2}" -f ([double]$_.Size/1GB) }}
$FreeSpace = @{name="FreeSpace(GB)";expression={ "{0:N2}" -f ([double]$_.FreeSpace/1GB) }}
$Used=@{name="Used(GB)";expression={ "{0:N2}" -f (([double]$_.Size-[double]$_.FreeSpace)/1GB) }}
$PercentFree=@{name="PercentFree";expression={ "{0:N2}" -f ([double]$_.FreeSpace/[double]$_.Size) }}
$PercentUsed=@{name="PercentUsed";expression={ "{0:N2}" -f (([double]$_.Size-[double]$_.FreeSpace)/[double]$_.Size) }}

Get-WmiObject Win32_LogicalDisk -filter "DriveType=3" -computerName NombreDeEquipo  | Select-Object SystemName,DeviceID,VolumeName,$Size,$FreeSpace,$used,$PercentFree,$PercentUsed

Nos dará el resultado como se muestra en la siguiente imagen.

Resultado PowerShel - Espacio en DiscoEste código fue escrito por Shay Levi’s

Si desean exportarlo a Excel deben poner al finalizar la última linea lo siguiente:

| Export-Csv c:\infodisco.csv

o si desean exportarlo a TXT

| Out-File c:\infodisco.txt

Nota: Si marca error al exportar verifica que tengas privilegios para guardar en la ruta escrita, si continua el error intenta en otro folder.

Código VBScript

El usuario desde el cual se ejecuta debe tener privilegios de administrador de red, los equipos deben estar prendidos.

  • El siguiente código lo copiamos y pegamos en un archivo el cual guardaremos como .vbs
  • Creamos 2 archivos txt los nombramos como deseemos, uno va a estar en blanco y el otro contendrá el listado de Nombres o IPs de los equipos.
  • En el código cambiamos la ruta de estos archivos en las lineas 3 y 4 (En este se muestra como c:\Resultado.txt y c:\ListadoDeEquipos.txt). Nota: Si tienen problemas de escritura en el C:\ cambien de ruta por ejemplo al escritorio.
  • Ahora ejecutamos, tardara unos segundos o minutos dependiendo que tan grande sea el listado de equipos
Option Explicit

const strReport = "c:\Resultado.txt"
const sFile = "C:\ListadoDeEquipos.txt"

Dim objWMIService, objItem, colItems
Dim strDriveType, strDiskSize, txt

Dim oFSO, oFile, sText,strComputer
Set oFSO = CreateObject("Scripting.FileSystemObject")

Dim objFSO,objTextFile
Set objFSO = createobject("Scripting.FileSystemObject")
Set objTextFile = objFSO.CreateTextFile(strReport)


If oFSO.FileExists(sFile) Then
Set oFile = oFSO.OpenTextFile(sFile, 1)
 Do While Not oFile.AtEndOfStream
  sText = oFile.ReadLine
   If Trim(sText) <> "" Then
          strComputer=sText
              Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
              Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk WHERE DriveType=3")
             txt = sText & vbtab & "Drive" & vbtab & "Size" & vbtab & "Used" & vbtab & "Free" & vbtab & "Free(%)" & vbcrlf
        For Each objItem in colItems
 
             DIM pctFreeSpace,strFreeSpace,strusedSpace
 
             pctFreeSpace = INT((objItem.FreeSpace / objItem.Size) * 1000)/10
       strDiskSize = Int(objItem.Size /1073741824) & "Gb"
       strFreeSpace = Int(objItem.FreeSpace /1073741824) & "Gb"
       strUsedSpace = Int((objItem.Size-objItem.FreeSpace)/1073741824) & "Gb"
       txt = txt & vbtab & vbtab & objItem.Name & vbtab & strDiskSize & vbtab & strUsedSpace & vbTab & strFreeSpace & vbtab & pctFreeSpace & vbcrlf

        Next
     
     
     objTextFile.Write(txt)
     
     
     
  
 End If
 Loop
 objTextFile.Close
oFile.Close
Else
WScript.Echo "No se encuentra el archivo."
End If

 

Artículos que te pueden interesar:
 
COMPARTIR
Mi nombre es Fernando, soy analista de sistemas actualmente trabajo en una empresa con mas de 200 empleados que utilizan equipo de computo al cual se les da soporte en el departamento. Uno de mis pasatiempos fuera de la empresa es escribir artículos para PortalMasTips donde documento los problemas, inquietudes y detalles interesantes que se presentan.

2 Comentarios

  1. Hola Eranndo Buenos días soy cali Colombia tengo un problema alguien vino a la empresa monto una vpn para conectarse de un pueblo a las bases de datos del hospital, este señor ya no quiere trabajar con nosotros pero no hemos podido conectar un equipo del pueblo al servidor ya que se borra la clave y el señor no la quiere dar que se hace

    • Buen dia Matias

      Se ocupa conocer que proveedor utilizo para la VPN, o si les monto un servidor para VPN y que software utilizo.
      Si no les quiere proporcionar la clave, dependiendo el tipo de seguridad que haya utilizado para cifrar podria ser imposible obtener la contraseña, se tendria que realizar la configuración nuevamente.
      Tendriamos que conocer un poco mas a detalle su infraestructura para darles una respuesta mas acertada.

      Si tienes conocimiento acerca de lo anterior nos podrías detallar esto para ver si les podemos apoyar en re configurarlo nuevamente remotamente.

      Saludos.

Deja un comentario...