是否有一个内置的Windows实用程序显示信息,如磁盘pipe理MMC?

我正在寻找一个内置的Windows XP / Server 2003实用程序,它可以获取驱动器信息,类似于磁盘pipe理mmc显示的内容,包括容量和可用空间。 有任何想法吗?

Diskpart似乎没有报告可用空间,磁盘pipe理似乎没有“导出到文本”function。 有任何想法吗?

请注意,我没有寻找任何第三方工具的build议。 如果它不是Windows内置的,我可能不得不使用脚本。

对于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 

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 

您可能需要关于逻辑磁盘的每一点信息:

 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 

我不知道任何内置选项,我只是从WMI使用VBScript或PowerShell获取所有信息。

这是一个非常粗糙的vbscript,我一起回来了。

这实际上是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,你也可以调整常数。

希望这可以帮助。

您正在寻找的技术是WMI。 有关如何为其编写脚本的概述,请参阅: WMI脚本引导 。

WMI是处理远程系统pipe理的最佳方式。 WMI也可以和Powershell一起使用,但是你可以在vbscript中看到(现在)的大多数例子。 一旦你理解了这些概念,你可以使用scriptomatic( vbscript )( powershell )来构build你的脚本