Существует ли встроенная утилита Windows, которая отображает информацию, как Disk Management MMC?

Существует ли встроенная утилита Windows, которая отображает информацию, как Disk Management MMC?

Я ищу встроенную утилиту Windows XP/Server 2003, которая может извлекать информацию о диске, похожую на ту, что отображает Disk Management mmc, включая емкость и свободное место. Есть идеи?

Diskpart, похоже, не сообщает о свободном пространстве, а в Disk Management, похоже, нет функции "экспорт в текст". Есть идеи?

Обратите внимание, что я не ищу рекомендаций по сторонним инструментам. Если это не встроенный инструмент Windows, мне, скорее всего, придется написать скрипт.

решение1

Для Windows XP и Server 2003 используйте команду 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

решение2

DISKPART покажет вам эту информацию на уровне тома (только для 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

решение3

Вся необходимая информация о ваших логических дисках:

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

решение4

Вот очень грубый скрипт на VB, который я набросал некоторое время назад.

На самом деле это часть HTA, которая выдает информацию о диске в HTML. Я вырезал весь HTML для вас и добавил несколько вкладок, чтобы все немного выровнять.

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

Очевидно, вам нужно будет заполнить значение для strComputer. Вы также можете настроить константу, если вам нравятся GiB вместо GB.

Надеюсь это поможет.

Связанный контент