¿Existe una utilidad integrada de Windows que muestra información como Disk Management MMC?

¿Existe una utilidad integrada de Windows que muestra información como Disk Management MMC?

Estoy buscando una utilidad integrada de Windows XP/Server 2003 que pueda extraer información de la unidad, similar a lo que muestra el mmc de Administración de discos, incluida la capacidad y el espacio libre. ¿Algunas ideas?

Diskpart no parece informar sobre espacio libre y Administración de discos no parece tener una función de "exportar a texto". ¿Algunas ideas?

Tenga en cuenta que no busco recomendaciones de herramientas de terceros. Si no es un sistema integrado de Windows, probablemente tendré que crear un script en su lugar.

Respuesta1

Para Windows XP y Server 2003, utilice el comando fsutil

C:\Documents and Settings\administrator>fsutil volume diskfree C:
Total # of free bytes        : 14056869888
Total # of bytes             : 21459722240
Total # of avail free bytes  : 14056869888

Respuesta2

DISKPART le mostrará esta información a nivel de volumen (solo para Windows Vista)

DISKPART> detail volume

  Disk ###  Status      Size     Free     Dyn  Gpt
  --------  ----------  -------  -------  ---  ---
* Disk 0    Online        75 GB      0 B

Read-only              : No
Hidden                 : No
No Default Drive Letter: No
Shadow Copy            : No
Dismounted             : No
BitLocker Encrypted    : No

Volume Capacity        :   74 GB
Volume Free Space      :    8 GB

Respuesta3

Toda la información que pueda desear sobre sus discos lógicos:

On Error Resume Next
Dim strComputer
Dim objWMIService
Dim propValue
Dim objItem
Dim SWBemlocator
Dim UserName
Dim Password
Dim colItems

strComputer = "."
UserName = ""
Password = ""
Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(strComputer,"root\CIMV2",UserName,Password)
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk",,48)
For Each objItem in colItems
    WScript.Echo "Access: " & objItem.Access
    WScript.Echo "Availability: " & objItem.Availability
    WScript.Echo "BlockSize: " & objItem.BlockSize
    WScript.Echo "Caption: " & objItem.Caption
    WScript.Echo "Compressed: " & objItem.Compressed
    WScript.Echo "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode
    WScript.Echo "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig
    WScript.Echo "CreationClassName: " & objItem.CreationClassName
    WScript.Echo "Description: " & objItem.Description
    WScript.Echo "DeviceID: " & objItem.DeviceID
    WScript.Echo "DriveType: " & objItem.DriveType
    WScript.Echo "ErrorCleared: " & objItem.ErrorCleared
    WScript.Echo "ErrorDescription: " & objItem.ErrorDescription
    WScript.Echo "ErrorMethodology: " & objItem.ErrorMethodology
    WScript.Echo "FileSystem: " & objItem.FileSystem
    WScript.Echo "FreeSpace: " & objItem.FreeSpace
    WScript.Echo "InstallDate: " & objItem.InstallDate
    WScript.Echo "LastErrorCode: " & objItem.LastErrorCode
    WScript.Echo "MaximumComponentLength: " & objItem.MaximumComponentLength
    WScript.Echo "MediaType: " & objItem.MediaType
    WScript.Echo "Name: " & objItem.Name
    WScript.Echo "NumberOfBlocks: " & objItem.NumberOfBlocks
    WScript.Echo "PNPDeviceID: " & objItem.PNPDeviceID
    for each propValue in objItem.PowerManagementCapabilities
        WScript.Echo "PowerManagementCapabilities: " & propValue
    next
    WScript.Echo "PowerManagementSupported: " & objItem.PowerManagementSupported
    WScript.Echo "ProviderName: " & objItem.ProviderName
    WScript.Echo "Purpose: " & objItem.Purpose
    WScript.Echo "QuotasDisabled: " & objItem.QuotasDisabled
    WScript.Echo "QuotasIncomplete: " & objItem.QuotasIncomplete
    WScript.Echo "QuotasRebuilding: " & objItem.QuotasRebuilding
    WScript.Echo "Size: " & objItem.Size
    WScript.Echo "Status: " & objItem.Status
    WScript.Echo "StatusInfo: " & objItem.StatusInfo
    WScript.Echo "SupportsDiskQuotas: " & objItem.SupportsDiskQuotas
    WScript.Echo "SupportsFileBasedCompression: " & objItem.SupportsFileBasedCompression
    WScript.Echo "SystemCreationClassName: " & objItem.SystemCreationClassName
    WScript.Echo "SystemName: " & objItem.SystemName
    WScript.Echo "VolumeDirty: " & objItem.VolumeDirty
    WScript.Echo "VolumeName: " & objItem.VolumeName
    WScript.Echo "VolumeSerialNumber: " & objItem.VolumeSerialNumber
Next

Respuesta4

Aquí hay un vbscript muy aproximado que hackeé hace un tiempo.

En realidad, esto es parte de una HTA que proporciona información del disco en HTML. Eliminé todo el HTML para ti y puse algunas pestañas para que todo se alinee un poco.

Const BYTES_TO_GB = 1073741824

strComputer  = "computer"
Wscript.Echo "Disk Usage - " & strComputer & vbCrLf
Wscript.Echo "Volume" & vbTab & vbTab & "Size" & vbTab & _
   "Free" & vbTab & "% Free" & vbCrLf

Set objWMIService = GetObject("winmgmts://" & strComputer)
Set colLogicalDisk = objWMIService.ExecQuery( _
    "SELECT DeviceID,VolumeName,Size,FreeSpace FROM Win32_LogicalDisk WHERE DriveType=3")

For Each objLogicalDisk In colLogicalDisk
  intTotalSize = objLogicalDisk.Size / BYTES_TO_GB
  intFreeSpace = objLogicalDisk.FreeSpace / BYTES_TO_GB
  Wscript.Echo objLogicalDisk.VolumeName & " (" & objLogicalDisk.DeviceID & ")" & _
    vbTab & FormatNumber(intTotalSize,0) & " GB" & _
    vbTab & FormatNumber(intFreeSpace,0) & " GB" & _
    vbTab & FormatNumber(intFreeSpace/intTotalSize*100,0) & " %"
Next

Obviamente, necesitarás ingresar un valor para strComputer. También puedes ajustar la constante si prefieres GiB en lugar de GB.

Espero que esto ayude.

información relacionada