Windows Management Instrumentation (WMI) 的使用---一些系统接口的替代者

参考:

1,https://learn.microsoft.com/zh-cn/windows/win32/wmisdk/about-wmi

2,wmi编程示例

3,wmi对象类别

wmi介绍及原理请参考上面链接内容。之前在一些样本里面看到了类似于sql的字符串,一直不太清楚那些是做什么的。哪些语句是wql(大概就是windows系统自己的查询语句),通过执行这些特定的查询语句,可以获取或修改许多系统相关的信息。比如说查询系统中当前运行的进程,系统中服务信息等;之前这些操作一般通过系统底层的api(CreateService,OpenProcess等)来获取。在一些情况下,可以考虑替换使用wmi来实现;用来做一些运行环境检查(虚拟机,杀毒软件等)。

下面通过powershell中演示wmi的一些基本操作:

命令:Get-WmiObject Win32_Process ;获取当前运行的进程数据,部分如下图:

命令:Get-WmiObject Win32_Service; 来获取系统服务列表,详细信息包括服务名称等,部分如下图:

通过上面的截图可以看到,查询一个类(class)的信息,会有多个字段返回,就像sql里面的表(table)。

通过c++调wmi相关接口获取系统服务相关信息,部分如下图:

通过wmi禁用/启用网卡,部分如下图(详细见参考2):

相关推荐
请为小H留灯33 分钟前
Windows 系统启用 Telnet 客户端:图文详细教程
网络·windows·测试·telnet
信鸽爱好者3 小时前
Windows +VM虚拟机安装github服务器
服务器·windows·ubuntu·机器人·github
分号5 小时前
你在运行该虚拟机时启用了侧通道缓解
windows
鹿角片ljp6 小时前
深入理解Java集合框架:核心接口与实现解析
java·开发语言·windows
葱段7 小时前
Windows 安装 Chocolatey 包管理器
windows
张火火isgudi8 小时前
VMware Debian 挂载 Windows 文件夹至 Debian 目录
linux·运维·windows·debian
小尧嵌入式8 小时前
C++选择排序插入排序希尔排序快排归并排及大小根堆实现优先级队列
数据结构·c++·windows·算法·排序算法
浪扼飞舟9 小时前
常见WPF用户控件操作(集合、动态生成、位运算、依赖属性)
windows
Lupino18 小时前
实战记录:使用 Haskell.nix 交叉编译 Haskell 项目至 Windows
windows·haskell
zzcufo20 小时前
使用multimonitortool工具实现多屏显示器的映射
windows·计算机外设