WMI入门

2020-03-01  本文已影响0人  flashine

WMI

Windows Management Instrumentation(WMI)

简介

WMI是Windows 2K/XP管理系统的核心,对于其他的Win32操作系统,WMI是一个有用的插件。WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common Information Model Object Manager),是一个描述操作系统构成单元的对象数据库,为MMC和脚本程序提供了一个访问操作系统构成单元的公共接口。WMI可以当作一组API来与Windows系统进行交互,整个运行过程都在内存中进行,不会留下任何痕迹。

使用方式

  1. cmd下直接使用wmic
  2. powershell:调用Get-WmiObject模块
  3. WMI Query Language - WQL:
    通过powershell执行WQL:
Get-WmiObject -Query 'Select ...'

WMIC 动作

常用用法:

  1. 查看别名:
wmic alias list brief
  1. 查看系统一些内容:

由于list列出的内容较多,此处可使用brief输出少部分,如果想要查看某一个值可以使用wmic some_class where 'name="xxx"' get xxx,如果不知道具体名称,可以使用like,如wmic some_class where 'like name="ls%" get xxx'

# 列出系统安装的软件
wmic product list brief
# 列出系统运行的服务
wmic service list brief
# 列出系统运行的程序
wmic process list brief
# 查找域控
wmic ntdomain list brief
# 查找系统登录的用户
wmic logon list brief
# 查看已安装的补丁
wmic qfe list brief
# 查看进程启动时执行的命令
wmic process where 'name="xx.exe"' get commandline
wmic process where ProcessId=144 get commandline
  1. 查看某个类所有可调用的函数:

以下以win32_process举例:
powershell2.0 以上:

 Get-WmiObject -Query 'Select * From Meta_Class WHERE __Class = "win32_process"' | Where-Object { $_.PSBase.Methods } | Select-Object Name, Methods

powershell3.0 以上:

 Get-CimClass -ClassName win32_product | where CimClassMethods -ne $null  | select CimClassName,CimClassMethods
  1. 调用类的函数
    举例:
# 查看porcess可调用的函数:
Get-WmiObject -Query 'Select * From Meta_Class WHERE __Class = "win32_process"' | Where-Object { $_.PSBase.Methods } | Select-Object Name, Methods

Name          Methods
----          -------
Win32_Process {Create, Terminate, GetOwner, GetOwnerSid...}

通过查看可调用的方法可以知道我们可以使用call来调用方法:

# 创建一个计算器进程
wmic process call create calc
# 关闭计算器进程(实际是挂起)
# 此处使用name关闭有时不太好用,可以使用like或者是processid来关闭
wmic process where processid=18084 call terminate 
  1. powershell 使用wmi
    Get-WmiObject在powershell3.0之后已经过时,使用Get-CIMInstance代替,但是仍然可以使用。
# 查询进程:
# 相对使用wmi命令输出的结果能更直观地查看(2列横向表格输出)
Get-WmiObject -class win32_process -filter "name='lsass.exe'"
  1. wmi连接远程主机
    前提是远程主机开放了135端口且WMI服务开启
# 在远程主机上创建进程执行命令
wmic /node:1.1.1.1/user:administrator /password:123456 process call create "cmd.exe /c xxx"
  1. 列举本地主机中已安装的杀软:
wmic /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List

目前wmi了解较浅,还需要后续深入了解

附:

上一篇 下一篇

猜你喜欢

热点阅读