业务场景:添加WMI事件实现对Winrm service的监控,当Winrm 异常停止时,重新启动.
BG: 在Powershell 出生之前, WMI是无可替代的远程(本地)系统管理工具。当下Powershell 已经慢慢取代了ActiveScript+WMI, 然而不可否认WMI依旧是WINDOWS系统管理的利器。
大家知道DCOM是最初WMI通讯协议,RPC也是饱受黑客眷顾的服务。而随着Winrm的普及已经对SSL/TLS的支持,管理人员更加青睐于基于Winrm通讯协议的远程管理方式。当WINRM成为了最主要的管理方式,甚至取代了RDP。为了防止因为IIS的宕机,相关服务crash而导致WINRM 服务不可用带来的管理工作的不便. 便有了此业务场景
查找Win32_service的元事件
考虑目标事件应该属于系统事件,并且是由确定实例发出的,可以先用下面的命令查询相应的CimClass
Get-CimClass -ClassName "__*Event" -PropertyName 'TargetInstance'
NameSpace: ROOT/cimv2
CimClassName CimClassMethods CimClassProperties
------------ --------------- ------------------
__InstanceOperationEvent