使用 VBScript,如何列出表示事件的所有 WMI 类?
提前致谢。
您可以对从 __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
如果远程系统是访问证明的,这将导致凭证错误。使用
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