Inicio Soporte Técnico Obtener Información de Disco Duro CMD

Obtener Información de Disco Duro CMD

60
0

Realizar tareas mediante instrucciones de comando (CMD) siempre ha sido una opción mas completa por la cantidad de datos que se pueden obtener; Ahora te muestro como obtener Marca, Modelo, Serie, Tipo de disco, Espacio libre en Disco, Tamaño del disco, Chequear errores del Disco, mediante Command Prompt.

Te mostrare el funcionamiento de varios comandos a utilizar para obtener esta información del disco duro de tu computadora o una computadora remota que se encuentre en la red local sin la necesidad de abrirla.

Comando CMD para saber la marca, modelo y número de serie del Disco Duro

Con la siguiente instrucción obtendremos fácil y rápidamente marca, modelo y serie del disco duro o discos de nuestra computadora.

wmic diskdrive get caption,serialnumber

comando CMD pasa obtener marca modelo serie

Comandos CMD para saber el tamaño de un Disco Duro

Cuando debo revisar el espacio en disco de los servidores con Windows Server en versión Core utilizo alguna de las siguientes instrucciones; cabe aclarar que estos comandos funcionan en cualquier versión de Windows.

Obtener espacio libre en disco duro mediante el comando “DIR”

Dir es utilizado para mostrar una lista de archivos y subcarpetas; pero si lo complementamos podemos obtener el espacio libre, con la siguiente instrucción:

dir|find "bytes free"

Esta instrucción la podemos ejecutar remotamente por medio de psexec.

Ejemplo de resultado utilizando dir:

comando dir para obtener espacio libre en disco

Si cuentas con varias unidades de disco, debes navegar al directorio de dicha unidad por ejemplo otra unidad de disco que tengo es la D, así que cambiare de unidad tecleando D:

comando dir para obtener espacio libre en otro disco

Comando CMD utilizando wmic

WMIC (Windows Management Instrumentation Command), Lea una amplia gama de información de computadoras locales o remotas. También proporciona una forma de realizar cambios de configuración en varias máquinas remotas.

Esta instrucción es un poco más avanzada el cual nos permite obtener mayor información, pero en este caso para obtener el espacio en disco indicando la unidad:

wmic LogicalDisk Where DriveType="3" Get DeviceID,FreeSpace|find /I "LETRA_UNIDAD"

Esta instrucción se puede ejecutar remotamente de la siguiente manera

wmic /node:"%NOMBRE_EQUIPO_O_IP%" LogicalDisk Where DriveType="3" Get DeviceID,FreeSpace|find /I "LETRA_UNIDAD"

Ejemplo de resultado utilizando wmic: comando WMIC para obtener espacio libre en disco

Preguntas frecuentes

¿Puedo obtener el espacio libre en disco en GB?

Con las instrucciones anteriores no es posible (Al menos que yo conozca), pero más adelante te mostrare con PowerShell como obtener esta información en Gb.

También se puede convertir los bytes a gigabytes por ejemplo en Google buscan bytes to gigabytes y les va mostrar el convertidor de unidades.

Obtener Espacio Libre En Disco Convertir Bytes A Gigabytes

Obtener espacio libre en disco en Gigabytes con PowerShell

Otra opción para obtener el espacio libre en disco pero en Gigabytes es por medio de PowerShell, a diferencia de utilizar los comandos anteriores que lo muestra en bytes; la instrucción a ejecutar en PowerShell para obtener el tamaño de disco y el espacio libre es:

Con la siguiente instrucción se obtiene el tamaño total y el espacio libre de la unidad específica del equipo local (donde se ejecuta la instrucción), debemos especificar la unidad en DeviceID el cual modificamos LETRA_UNIDAD en la instrucción, ejemplo C:

Get-WmiObject Win32_LogicalDisk -Filter "DeviceID='LETRA_UNIDAD'" | select-object Size,Freespace | % {$_.FreeSpace=($_.FreeSpace/1GB);$_.Size=($_.Size/1GB);$_}

Instruccion powershell para obtener espacio en disco en Gigabytes

Comando PowerShell para obtener espacio en disco en Gigabytes de un equipo remoto

Con la siguiente instrucción se obtiene el tamaño total y el espacio libre de la unidad específica del equipo remoto, debemos especificar el nombre del equipo modificando NOMBRE_EQUIPO y la unidad en LETRA_UNIDAD en la instrucción, ejemplo C:

Get-WmiObject Win32_LogicalDisk -ComputerName NOMBRE_EQUIPO -Filter "DeviceID='LETRA_UNIDAD'" | select-object Size,Freespace | % {$_.FreeSpace=($_.FreeSpace/1GB);$_.Size=($_.Size/1GB);$_}

Comando PowerShell para obtener un listado de las unidades

La siguiente instrucción proporciona la información de todas las unidades conectadas al equipo.

get-psdrive –psprovider filesystem

Obtener un listado de discos unidades con powershell

Comandos para obtener información de Disco de computadoras remotas

Ahora nos enfocaremos a realizar el mismo proceso, pero para computadoras remotas

Código VBScript para obtener información de disco de un listado de computadoras remotas

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 & "rootcimv2")
              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

Comando CMD WMIC

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 obtener espacio libre computadora remota

  • 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

Comando psinfo de PSTools para obtener toda la información técnica de la computadora

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 para obtener informacion de Disco en computadora remota

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) }}

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

[email protected]{name="PercentFree";expression={ "{0:N2}" -f ([double]$_.FreeSpace/[double]$_.Size) }}

[email protected]{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 Disco Este 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.

Checar Errores en Disco Duro CMD – Forzar el CheckDisk en Windows 10

Los usuarios de Windows 10 y 8 pueden haber notado que la comprobación de errores de disco tiene un proceso diferente a las versiones anteriores de Windows. Realizar ocasionalmente los errores de disco es una buena practica, asi podemos darnos cuenta del estado de nuestro disco duro.

A partir de Windows 8 Microsoft ha re diseñado la utilidad chkdsk (Comprobación de errores de disco), En Windows 10 y 8 introdujeron un sistema de archivos llamado ReFS que no requiere realizar la comprobación de errores sin conexión (Sin estar corriendo Windows) para reparar archivos corruptos; el cual este se ejecuta automáticamente cada cierto tiempo.

Pero ¿Que sucede si deseamos ejecutar el chkdsk tradicional de Windows? veamos los siguientes pasos.

Forzar la comprobación de errores de disco con CMD

Como ya hemos visto en Windows 10 y 8 si ejecutamos un análisis de disco no se ejecuta el proceso tradicional el cual me he topado que si encuentra errores en sectores al momento de ejecutar.

1.- Damos clic derecho sobre el menú Inicio y abrimos Símbolo de sistema (Administrador) [Command Prompt (Admin)].

abrir CMD para checar disco duro

2.- Damos Si (Yes) en la notificación del UAC.

Forzar la comprobacion de errores de disco uac

3.- Ejecutamos la instrucción chkdsk.

Sintaxis: chkdsk [Drive:] [parameters]

Ejemplo:

chkdsk C: /f /r /x

Donde la “/f” indica corregir cualquier error encontrado; “/r” indica localizar sectores dañados de disco y recuperar información legible; “/x” es para forzar a la unidad a desmontarse antes del proceso.

Si la unidad que vamos a analizar es donde tenemos el sistema operativo nos pedirá programar la comprobación en la siguiente reiniciada de equipo donde ponemos Y + Enter.

Forzar la comprobacion de errores de disco reiniciar

4.- Reiniciamos el equipo y debe comenzar el análisis.

Forzar la comprobacion de errores de disco comprobando

5.- Esperamos a que finalice, si no alcanzamos a observar el resultado podemos ver: Windows – ¿Como visualizar el resultado del CHKDSK (Comprobación de errores de disco)?

Nota: en algunos casos cuando la unidad no es utilizada por nuestro sistema operativo o algún programa el proceso se ejecutará en la misma ventana de símbolo de sistema, ejemplo imagen siguiente:

Forzar la comprobacion de errores de disco ejecuta sin reiniciar