如何使用 VBScript 列出所有 WMI 事件类?

问题描述 投票:0回答:2

使用 VBScript,如何列出表示事件的所有 WMI 类?

提前致谢。

vbscript wmi
2个回答
3
投票

您可以对从 __EVENT 继承的类使用 WMI 架构查询。一个例子是:

Function GetWmiEventClasses(computerName)
    Dim wmiRoot
    Dim eventClasses

    Set wmiRoot = GetObject("winmgmts:\\" & computerName & "\root\cimv2")
    Set eventClasses = wmiRoot.ExecQuery("select * from meta_class where __this isa '__event'") 

    Set GetWmiEventClasses = eventClasses
End Function

用途:

Set eventClasses = GetWmiEventClasses("." )

If Not eventClasses Is Nothing Then
    Dim eventClass 

    For Each eventClass In eventClasses
        WScript.Echo eventClass.Path_.Class
    Next 
End If 

0
投票

如果远程系统是访问证明的,这将导致凭证错误。使用

str计算机 = 计算机名称

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer(strComputer, "root\CIMV2", strUser, strPassword, "MS_409", "NTLMDomain:" + strDomain)

Set eventClasses = objWMIService.ExecQuery("select * from meta_class where __this isa '__event'")

Set GetWmiEventClasses = eventClasses

以字符串形式提供凭据并添加到您的代码中。

然后查询事件类...

将事件类调暗为对象 将事件类变暗为对象 将服务器名称调暗为字符串 将类名变暗为字符串

服务器名称 = ""

设置事件类 = GetWmiEventClasses(服务器名称)

If Not eventClasses Is Nothing Then

' 昏暗事件类

    For Each EventClass In eventClasses
        className = CStr(EventClass.Path_.Class)
        Call WriteToRTB_eventClass(className)
        WriteTextFile (className)
        
    Next
End If
© www.soinside.com 2019 - 2024. All rights reserved.