|
在VB编辑器中先导入“Microsoft WMI Scripting V1.2 Library”
Dim WMILocator As New SWbemLocator '定义一个指向WMI的指针
Dim WMIServices As SWbemServices
Dim WMIObjectSet As SWbemObjectSet
Dim WMIObject As SWbemObject
sub test()
Dim i As Long
Sheet1.Cells.Clear
Sheet1.Range("a1:e1") = Array("名称", "状态", "启动类型", "登录身份", "描述")
Set WMIServices = WMILocator.ConnectServer()
Set WMIObjectSet = WMIServices.InstancesOf("Win32_Service")
i = 2
With Sheet1
For Each WMIObject In WMIObjectSet '在WMIObjectSet(Win32_Service类集合)中遍历每个实例
.Range("a" & i).Value = WMIObject.DisplayName
If WMIObject.State = "Stopped" Then
.Range("b" & i).Value = "停止"
Else
.Range("b" & i).Value = "启动"
End If
If WMIObject.StartMode = "Disabled" Then '判断对象StartMode属性的值并转换为中文添加到C列
.Range("c" & i).Value = "禁用"
ElseIf WMIObject.StartMode = "Manual" Then
.Range("c" & i).Value = "手动"
Else
.Range("c" & i).Value = "自动"
End If
.Range("d" & i).Value = WMIObject.StartName '将服务的登录身份添加到D列
.Range("e" & i).Value = WMIObject.Description '将服务的描述添加到E列
i = i + 1
Next
End With
Set WMIObject = Nothing
Set WMIObjectSet = Nothing
end sub |
|