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.