ZetCode

VBScript Win32_OperatingSystem 类

最后修改于 2025 年 4 月 9 日

VBScript 中的 Win32_OperatingSystem 类是 Windows Management Instrumentation (WMI) 的一部分。它提供有关已安装操作系统的详细信息。此类包含版本、安装日期和系统目录等属性。对于系统管理脚本至关重要。

Win32_OperatingSystem 支持查询操作系统配置和状态。它可以检索静态信息和动态系统指标。本教程通过实际示例涵盖该类,以展示其功能。您将学习通过 VBScript 访问有价值的系统信息。

Win32_OperatingSystem 类概述

Win32_OperatingSystem 类代表安装在计算机上的操作系统。它继承自 CIM_OperatingSystem 并提供 Windows 特定的属性。该类通过 VBScript 中的 WMI 查询进行访问。

关键属性包括 CaptionVersionBuildNumberRebootShutdown 等方法允许系统控制。理解该类有助于创建强大的系统管理脚本。它在所有现代 Windows 版本上都可用。

检索基本操作系统信息

此示例演示如何检索基本操作系统信息。它显示操作系统名称、版本和构建号。脚本连接到 WMI 并查询 Win32_OperatingSystem 类。

basic_os_info.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

For Each objOS in colOS
    WScript.Echo "OS Name: " & objOS.Caption
    WScript.Echo "Version: " & objOS.Version
    WScript.Echo "Build Number: " & objOS.BuildNumber
Next

脚本使用 GetObject 连接到 WMI。它查询 Win32_OperatingSystem 的所有实例。循环输出三个关键属性:CaptionVersionBuildNumber。这些提供了操作系统的基本标识。

检查系统运行时间

此示例使用 LastBootUpTime 属性计算系统运行时间。它将 WMI 的日期时间格式转换为可读值。脚本显示系统自上次启动以来运行了多长时间。

system_uptime.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

For Each objOS in colOS
    dtmBootup = objOS.LastBootUpTime
    dtmLastBootupTime = WMIDateStringToDate(dtmBootup)
    dtmSystemUptime = DateDiff("h", dtmLastBootupTime, Now)
    WScript.Echo "System Uptime: " & dtmSystemUptime & " hours"
Next

Function WMIDateStringToDate(dtmDate)
    WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _
        Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _
        & " " & Mid(dtmDate, 9, 2) & ":" & _
        Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate, 13, 2))
End Function

脚本检索 LastBootUpTime 并使用帮助函数进行转换。DateDiff 计算启动时间和当前时间之间的小时数。WMIDateStringToDate 函数处理 WMI 的独特日期时间格式。这提供了准确的运行时间测量。

检查可用物理内存

此示例展示了如何使用 FreePhysicalMemory 属性检查可用物理内存。它将值从 KB 转换为 GB 以便更好地阅读。脚本演示了监控系统资源。

free_memory.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

For Each objOS in colOS
    freeKB = objOS.FreePhysicalMemory
    freeGB = Round(freeKB / 1048576, 2)
    WScript.Echo "Free Physical Memory: " & freeGB & " GB"
Next

脚本查询 FreePhysicalMemory,它返回千字节。通过除以 1048576 (1024*1024) 将其转换为千兆字节。Round 函数将输出格式化为两位小数。这有助于监控系统内存使用情况。

确定操作系统架构

此示例使用 OSArchitecture 属性确定操作系统是 32 位还是 64 位。它提供了关于系统类型的清晰输出。脚本展示了如何检查处理器架构兼容性。

os_architecture.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

For Each objOS in colOS
    WScript.Echo "OS Architecture: " & objOS.OSArchitecture
Next

脚本直接输出 OSArchitecture 属性值。这会直接返回“32 位”或“64 位”等字符串。了解操作系统架构对于软件兼容性至关重要。该属性在 Windows Vista 及更高版本上可用。

获取系统目录路径

此示例使用 SystemDirectory 属性检索 Windows 系统目录路径。它显示了关键系统文件的位置。脚本演示了访问重要的系统路径。

system_directory.vbs
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

For Each objOS in colOS
    WScript.Echo "System Directory: " & objOS.SystemDirectory
Next

脚本输出系统目录的完整路径(通常是 C:\Windows\System32)。此信息对于涉及系统文件的文件操作很有用。无论 Windows 版本或安装位置如何,该属性都能可靠地返回正确的路径。

来源

Win32_OperatingSystem 文档

在本文中,我们探讨了 VBScript 中的 Win32_OperatingSystem 类,涵盖了它的用法和实际应用。从基本操作系统识别到资源监控,这些示例展示了强大的系统信息检索能力。有了这些知识,您就可以创建复杂的系统管理脚本。

作者

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

列出所有 VBScript 教程