ZetCode

VBScript Win32_LogicalDisk 类

最后修改于 2025 年 4 月 9 日

VBScript 中的 Win32_LogicalDisk 类是 Windows Management Instrumentation (WMI) 的一部分。它代表 Windows 可见的数据存储设备。此类提供有关系统中逻辑磁盘的详细信息。它通常用于磁盘管理和监视任务。

Win32_LogicalDisk 公开了大小、可用空间和文件系统类型等属性。它适用于所有类型的存储设备,包括 HDD、SSD 和网络驱动器。本教程将通过实际示例介绍 Win32_LogicalDisk 的用法。

Win32_LogicalDisk 类概述

Win32_LogicalDisk 类是一个 WMI 提供程序类,代表逻辑磁盘分区。它继承自 CIM_LogicalDisk 并提供特定于 Windows 的扩展。可以通过 VBScript 中的 WMI 查询访问该类。

关键属性包括 DeviceIDSizeFreeSpaceFileSystem。还可以使用 ChkdskDefrag 等方法。了解此类有助于创建强大的磁盘管理脚本。

列出所有逻辑磁盘

此示例演示了如何检索系统中所有逻辑磁盘的基本信息。它显示了每个磁盘的设备 ID、大小和可用空间。该脚本使用 WMI 查询 Win32_LogicalDisk 类。

list_disks.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colDisks = objWMIService.ExecQuery("Select * From Win32_LogicalDisk")

For Each objDisk in colDisks
    WScript.Echo "Device ID: " & objDisk.DeviceID
    WScript.Echo "Size: " & FormatNumber(objDisk.Size/1073741824, 2) & " GB"
    WScript.Echo "Free Space: " & FormatNumber(objDisk.FreeSpace/1073741824, 2) & " GB"
    WScript.Echo "---------------------"
Next

该脚本连接到 WMI 并查询所有逻辑磁盘。它遍历每个磁盘并显示关键属性。大小值从字节转换为 GB 以便于阅读。这提供了磁盘资源的快速概览。

检查磁盘可用空间

此示例侧重于检查特定驱动器的可用空间。它演示了如何过滤 WMI 查询以定位特定磁盘。该脚本计算可用空间百分比并在空间不足时发出警告。

check_space.vbs
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery("Select * From Win32_LogicalDisk Where DeviceID = 'C:'")

For Each objDisk in colDisks
    freePercent = (objDisk.FreeSpace / objDisk.Size) * 100
    WScript.Echo "C: Drive Free Space: " & Round(freePercent, 2) & "%"
    
    If freePercent < 10 Then
        WScript.Echo "WARNING: Low disk space on C: drive!"
    End If
Next

该脚本仅使用 WMI 过滤器查询 C: 驱动器。它计算可用空间的百分比并显示它。如果可用空间低于 10%,则会显示警告消息。这对于磁盘监视脚本很有用。

获取磁盘文件系统信息

此示例检索所有磁盘的详细文件系统信息。它显示文件系统类型、卷名和序列号。这些属性有助于在脚本中识别和管理磁盘。

filesystem_info.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colDisks = objWMIService.ExecQuery("Select * From Win32_LogicalDisk")

For Each objDisk in colDisks
    WScript.Echo "Drive: " & objDisk.DeviceID
    WScript.Echo "File System: " & objDisk.FileSystem
    WScript.Echo "Volume Name: " & objDisk.VolumeName
    WScript.Echo "Volume Serial: " & objDisk.VolumeSerialNumber
    WScript.Echo "---------------------"
Next

该脚本查询所有逻辑磁盘并显示文件系统详细信息。每个磁盘的属性都以格式化输出显示。卷序列号可用于脚本中的磁盘识别。这些信息有助于磁盘管理任务。

监视可移动驱动器

此示例演示了如何识别可移动驱动器。它使用 DriveType 属性按驱动器类型过滤磁盘。可移动驱动器的 DriveType 值为 2。

removable_drives.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colDisks = objWMIService.ExecQuery("Select * From Win32_LogicalDisk Where DriveType = 2")

WScript.Echo "Removable Drives Detected: " & colDisks.Count

For Each objDisk in colDisks
    WScript.Echo "Drive: " & objDisk.DeviceID
    WScript.Echo "Size: " & FormatNumber(objDisk.Size/1048576, 2) & " MB"
    WScript.Echo "---------------------"
Next

该脚本计算并列出系统中所有可移动驱动器。显示每个驱动器的字母和大小。大小转换为 MB 以便于阅读。这对于需要处理 USB 驱动器或其他可移动媒体的脚本很有用。

检查磁盘运行状况状态

此示例使用 Status 属性检查磁盘的运行状况状态。它识别可能存在问题的磁盘。该脚本提供了一个简单的磁盘运行状况监视解决方案。

disk_health.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colDisks = objWMIService.ExecQuery("Select * From Win32_LogicalDisk")

For Each objDisk in colDisks
    WScript.Echo "Drive: " & objDisk.DeviceID
    WScript.Echo "Status: " & objDisk.Status
    
    If objDisk.Status <> "OK" Then
        WScript.Echo "WARNING: Potential disk problem detected!"
    End If
    WScript.Echo "---------------------"
Next

该脚本检查每个逻辑磁盘的状态。对于状态不报告“OK”的磁盘,将显示警告消息。虽然基本,但这有助于识别故障磁盘。更全面的运行状况检查需要额外的 WMI 类。

来源

Win32_LogicalDisk 文档

在本文中,我们探讨了 VBScript 中的 Win32_LogicalDisk 类,涵盖了其用法和实际应用。从基本的磁盘信息到运行状况监视,这些示例展示了强大的磁盘管理功能。有了这些知识,您就可以创建强大的脚本来进行磁盘监视和管理。

作者

我叫 Jan Bodnar,是一名充满热情的程序员,拥有多年的编程经验。我从 2007 年开始撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在教学编程方面拥有八年以上的经验。

列出所有 VBScript 教程