Ich suche nach einem integrierten Dienstprogramm für Windows XP/Server 2003, das Laufwerksinformationen abrufen kann, ähnlich denen, die die Datenträgerverwaltung MMC anzeigt, einschließlich Kapazität und freiem Speicherplatz. Irgendwelche Ideen?
Diskpart scheint keinen freien Speicherplatz zu melden und die Datenträgerverwaltung scheint keine Funktion zum „Exportieren als Text“ zu haben. Irgendwelche Ideen?
Bitte beachten Sie, dass ich keine Empfehlungen für Tools von Drittanbietern suche. Wenn es kein integriertes Windows-Tool ist, muss ich es wahrscheinlich stattdessen per Skript erstellen.
Antwort1
Für Windows XP und Server 2003 verwenden Sie den Befehl 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
Antwort2
DISKPART zeigt Ihnen diese Informationen auf Datenträgerebene an (nur für 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
Antwort3
Alle gewünschten Informationen zu Ihren logischen Datenträgern:
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
Antwort4
Hier ist ein sehr grobes VB-Skript, das ich vor einiger Zeit zusammengehackt habe.
Dies ist eigentlich Teil eines HTA, das Festplatteninformationen in HTML bereitstellt. Ich habe das gesamte HTML für Sie entfernt und einige Registerkarten eingefügt, um die Übersichtlichkeit zu verbessern.
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
Natürlich müssen Sie einen Wert für strComputer eingeben. Sie können die Konstante auch anpassen, wenn Sie GiB statt GB möchten.
Hoffe das hilft.