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 查询进行访问。
关键属性包括 Caption、Version 和 BuildNumber。Reboot 和 Shutdown 等方法允许系统控制。理解该类有助于创建强大的系统管理脚本。它在所有现代 Windows 版本上都可用。
检索基本操作系统信息
此示例演示如何检索基本操作系统信息。它显示操作系统名称、版本和构建号。脚本连接到 WMI 并查询 Win32_OperatingSystem 类。
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 的所有实例。循环输出三个关键属性:Caption、Version 和 BuildNumber。这些提供了操作系统的基本标识。
检查系统运行时间
此示例使用 LastBootUpTime 属性计算系统运行时间。它将 WMI 的日期时间格式转换为可读值。脚本显示系统自上次启动以来运行了多长时间。
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 以便更好地阅读。脚本演示了监控系统资源。
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 位。它提供了关于系统类型的清晰输出。脚本展示了如何检查处理器架构兼容性。
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 系统目录路径。它显示了关键系统文件的位置。脚本演示了访问重要的系统路径。
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 版本或安装位置如何,该属性都能可靠地返回正确的路径。
来源
在本文中,我们探讨了 VBScript 中的 Win32_OperatingSystem 类,涵盖了它的用法和实际应用。从基本操作系统识别到资源监控,这些示例展示了强大的系统信息检索能力。有了这些知识,您就可以创建复杂的系统管理脚本。