编辑
2025-09-20
C#
00

目录

WMI 和 CIM 简介
如何列出CIM明细
使用PowerShell
系统和硬件
操作系统和服务
应用程序和进程
网络和协议
安全和用户
系统事件和日志
CIM应用场景
结论

Windows Management Instrumentation (WMI) 是Windows操作系统中用于管理数据和操作的强大工具。它基于Common Information Model (CIM) 标准,CIM是一个跨平台的信息模型,用于定义如何表示计算机系统、应用程序、网络设备等管理信息。通过WMI,管理员和开发人员可以查询和设置系统信息,监听系统事件,执行操作等。本文将概述如何使用WMI列出CIM明细,以及这些信息如何帮助进行系统管理和自动化。

WMI 和 CIM 简介

  • WMI:是Windows的管理技术,允许从本地和远程访问系统信息、配置设置等。
  • CIM:是一种标准化的模型,用于描述所有管理信息,WMI使用CIM标准来表示Windows系统中的管理信息。

如何列出CIM明细

要列出CIM明细,可以使用不同的工具和脚本语言,包括PowerShell、VBScript、C#等。在此,我们将重点介绍如何使用PowerShell来列出CIM明细。

使用PowerShell

PowerShell是一种命令行脚本语言,内置了对WMI的支持。使用PowerShell可以轻松地列出和查询CIM类。

以下是一些基本的PowerShell命令,用于列出和查询CIM明细:

  1. 列出所有CIM类
PowerShell
Get-CimClass

image.png

这个命令将列出所有可用的CIM类。

  1. 查询特定CIM类的实例
PowerShell
Get-CimInstance -ClassName Win32_Process

image.png

这个命令将列出系统中所有进程的信息,Win32_Process是一个CIM类,代表系统中的进程。

  1. 过滤查询结果
PowerShell
Get-CimInstance -ClassName Win32_Service | Where-Object {$_.State -eq "Running"}

image.png

这个命令将列出所有当前状态为运行中的服务。

C# 示例

C#
static void Main() { // 创建一个用于WMI查询的Select语句 string query = "SELECT * FROM Win32_OperatingSystem"; // 使用ManagementObjectSearcher类执行WMI查询 ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); // 遍历查询结果 foreach (ManagementObject os in searcher.Get()) { Console.WriteLine($"名称: {os["Caption"]}"); Console.WriteLine($"版本: {os["Version"]}"); Console.WriteLine($"制造商: {os["Manufacturer"]}"); Console.WriteLine($"配置路径: {os["WindowsDirectory"]}"); Console.WriteLine($"系统目录: {os["SystemDirectory"]}"); Console.WriteLine($"启动设备: {os["BootDevice"]}"); Console.WriteLine($"总物理内存: {os["TotalVisibleMemorySize"]}"); Console.WriteLine($"自由物理内存: {os["FreePhysicalMemory"]}"); Console.WriteLine($"总虚拟内存: {os["TotalVirtualMemorySize"]}"); Console.WriteLine($"自由虚拟内存: {os["FreeVirtualMemory"]}"); Console.WriteLine(); } }

image.png

这个程序首先定义了一个WMI查询,用于选择所有Win32_OperatingSystem实例。然后,它使用ManagementObjectSearcher类执行这个查询,并遍历查询结果。对于每个操作系统实例,程序打印出了一些关键信息,如操作系统的名称、版本、制造商、配置路径、系统目录、启动设备和内存信息等。

系统和硬件

  • Win32_ComputerSystem: 提供计算机系统的属性,如制造商、模型、系统类型等。
  • Win32_Processor: 描述处理器的属性,包括架构、速度、核心数等。
  • Win32_PhysicalMemory: 提供物理内存条的信息,如容量、速度、类型等。
  • Win32_DiskDrive: 描述磁盘驱动器的属性,包括模型、接口类型、容量等。
  • Win32_NetworkAdapter: 提供网络适配器的详细信息,如MAC地址、速度、状态等。

操作系统和服务

  • Win32_OperatingSystem: 描述操作系统的属性,包括版本、启动设备、系统目录等。
  • Win32_Service: 提供系统服务的信息,如名称、状态、启动类型等。
  • Win32_StartupCommand: 列出系统启动时执行的命令。
  • Win32_SystemDriver: 描述系统驱动程序的属性,包括名称、路径、状态等。

应用程序和进程

  • Win32_Process: 描述系统中的进程信息,包括进程ID、名称、执行路径等。
  • Win32_Product: 提供已安装软件产品的信息,如名称、版本、安装日期等。

网络和协议

  • Win32_NetworkConnection: 描述网络连接的状态和属性。
  • Win32_TCPIPPrinterPort: 提供TCP/IP打印端口的信息。
  • Win32_NetworkProtocol: 列出在系统上安装的网络协议。

安全和用户

  • Win32_UserAccount: 描述用户账户的信息,包括名称、域、禁用状态等。
  • Win32_Group: 提供用户组的信息,如名称、描述、域等。
  • Win32_Share: 描述共享资源的属性,包括名称、路径、类型等。

系统事件和日志

  • Win32_NTLogEvent: 提供Windows事件日志条目的信息。
  • Win32_NTEventlogFile: 描述事件日志文件的属性,包括名称、大小、记录数等。

CIM应用场景

通过列出和查询CIM明细,管理员和开发人员可以执行多种任务,包括:

  • 系统监控:监控系统性能、资源使用情况等。
  • 配置管理:查询和更改系统配置,如网络设置、服务状态等。
  • 故障排除:检测和诊断系统问题。
  • 自动化任务:自动执行重复性任务,如备份、更新等。

结论

WMI和CIM提供了一种强大的机制,用于管理和自动化Windows系统。通过使用PowerShell等工具,可以轻松地列出和查询CIM明细,从而执行各种系统管理任务。无论是系统管理员还是开发人员,都可以从WMI和CIM的深入了解中受益,以提高工作效率和系统稳定性。

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!