2010-11-23 14 views
5

の代わりに、このようなコード:VBScriptでWMIオブジェクトのNAME BYのプロパティにアクセスできますか?

On Error Resume Next 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set colItems = objWMIService.ExecQuery("Select * from Win32_IP4RouteTable",,48) 
For Each objItem in colItems 
    Wscript.Echo "Age: " & objItem.Age 
    Wscript.Echo "Caption: " & objItem.Caption 
    Wscript.Echo "Description: " & objItem.Description 
Next 

名前で各プロパティにアクセスすることが可能であり、これらの構文のいずれかのような何か:

Wscript.Echo "Age: " & objItem("Age") 
Wscript.Echo "Age: " & objItem.Properties("Age") 
Wscript.Echo "Age: " & objItem.Item("Age") 

さらに良い、あなたが行うことができますどのような方法があります以下のようなもの:

Dim colItems 
Dim objItem 
Dim aProperty 
Set colItems = objWMIService.ExecQuery("Select * from Win32_IP4RouteTable",,48) 
For Each objItem in colItems 
    For Each aProperty in objItem.Properties 
     Wscript.Echo aProperty.Name & ": " & objItem(aProperty.Name) 
    Next 
Next 

答えて

7

あなたはProperties_プロパティを使用してWMIオブジェクトの名前付きプロパティにアクセスすることができます。

objItem.Properties_("Age") 
objItem.Properties_.Item("Age") 

そしてもちろん、あなたもProperties_コレクションを列挙することができます

For Each objItem in colItems 
    For Each prop in objItem.Properties_ 
    If IsArray(prop) Then 
     WScript.Echo prop.Name & ": " & Join(prop, ", ") 
    Else 
     Wscript.Echo prop.Name & ": " & prop 
     ''# -- or -- 
     ''# Wscript.Echo prop.Name & ": " & prop.Value 
    End If 
    Next 
Next 
関連する問題