WMI是Windows操作系统上的一个强大特性,而Powershell提供的Cmdlet与Wmi的协作性也非常强大。这篇博文将会介绍如何使用Powershell获取系统中已安装的软件的信息。
基本命令
这里主要使用两个Powershell自带的Cmdlet:Get-WmiObject和Get-CimInstance
这两个Cmdlet分别可以简写为gwmi和gcim,Powershell提供的简写功能给广大开发者和系统管理员带来了一定的便捷性,但随着Powershell在攻击端的不断滥用,这种便捷性同时也给安全行业研发人员和SOC管理人员对Powershell执行的命令进行识别造成了很大的困扰,使得rule的编写变得更加枯燥和冗长。
对于WMI和CIM的区别和联系可以看我的另一篇博文 WMI与CIM的区别
实用用法
可以看到两种命令输出的格式不同,这只是两个命令output的format方式不同,只需要将结果传递到Format-Table, Format-Wide, Format-List这些格式化的Cmdlet即可把结果按照你想要的格式进行