本文作者:贝多芬不忧伤(Ms08067内网安全小组成员)
贝多芬不忧伤微信(欢迎骚扰交流):
众所周知,在windows10以及Windows Server2016的平台当中,PowerShell5.x已经能够去获取到系 统当中大部分的信息,但有时候仍有一些信息需要借助于调用WMI的类来完成。通过本文,你可以 了解到WMI的基本架构和组件,包括WMI的数据库,WMI的provider,以及在PowerShell调用WMI的 时候提供的module和相关的命令。接下来我们就能通过powershell的命令去完成WMI的查询操作, 去获取到系统当中WMI的实例。然后我们还可通过实例的属性查看到系统当中不同的信息,同时的 话去调用实例当中为我们提供的不同的方法,去修改系统信息的配置。
1. WMI简介
在这一节当中,将为大家介绍WindowsPowerShell与WMI的集成,通过这一节的介绍,首先我们就 能够了解到在windows的运行平台当中什么是WMI,WMI的基本定义以及WMI与PowerShell的基本关 系。接下来即可在演示的环境当中去完成一些基本的演示。通过这些演示,我们就可以了解到在一 些特定的场景当中,powershell必须依赖WMI才能去完成自己的任务。
1.1 What is WMI
在了解WMI的基本定义之前,我们需要了解四个不同的名词,分别为
DMTF\CIM\WBEM(WSMAN)\WMI(WinRM)。
DMTF
DMTF是一个标准化组织的缩写(Distribusted Management Task Force)
该组织所制定的标准最主要的作用是方便IT人员或者是软件开发人员能够更加方便的去管理任 何的IT运行环境(Sets standards to enable effective management of any IT enviroment)
比如说,假设当前我们有一台服务器,而这台服务器当中安装了操作系统和应用程序。通过 DMTF制定的标准,软件开发人员或者IT运维人员就可以使用同样的方法去获取到这一台服务 器它的品牌和型号,以及操作系统的类型和应用程序的信息。这样我们就屏蔽底层系统或者硬 件的差异 ,而通过同一种方式去获取到这些目标的基本信息。
那么要去实现这一目标的时候,DMTF这个标准化的组织就为我们去制定了两个非常关键的标 准。首先第一个标准就是CIM。
CIM(Common Information Model)
这个标准就定义了系统当中软件硬件所有的信息发布的时候的基本元素,那么所有软件或者硬 件的厂商在发布新产品的时候都会来兼容CIM这个