1

Тема: JS:WMI не могу получить значения свойств экземпляра класса

Хотел посмотреть значения свойств экземпляров wmi-класса, передавая их (имена свойств) как элементы массива,
чтобы не городить по отдельности. не работает почему-то...

var strComp = ".";                                    
var strClass = "Win32_NetworkAdapter";                            
var ClassProp = new Array();                                
                        
ClassProp[0] = "Name";                                         // записал в массив имена свойств
ClassProp[1] = "DeviceID";
ClassProp[2] =  "Availability";
ClassProp[3] = "Caption";

var SwbemService = GetObject("winmgmts://" + strComp + "/root/cimv2");            
var SWbemObjectSet = SwbemService.ExecQuery("select * from " + strClass);         
var i = new Enumerator(SWbemObjectSet);                            
for(m=0; m<ClassProp.length; m++)
    {
    str = "";
    for(i.moveFirst(), k=1; !i.atEnd(); i.moveNext(), k++)
        {
        str += k + ") " + i.item().ClassProp[m] + "\n";    // выдаёт ошибку, что  i.item().ClassProp[m] есть null 
                                                                                        // или не явл.  объектом.
        } 
    WScript.Echo("Св-во:  " + ClassProp[m] + "  экземпляров класса" + strClass + 
            "\n==========================\n" + str);
    }

2

Re: JS:WMI не могу получить значения свойств экземпляра класса

Вот так работает:


i.item()[ClassProp[m]]

3

Re: JS:WMI не могу получить значения свойств экземпляра класса

Эх, а на PowerShell как это всё коротко и красиво:

'Name','DeviceID','Availability','Caption'|%{$_;'=====';$i=1;(gwmi Win32_NetworkAdapter).$_|%{(($i++).ToString()+') '+$_)};"`n";Pause}

!


А если не нумеровать строки, то и ещё короче:

'Name','DeviceID','Availability','Caption'|%{gwmi Win32_NetworkAdapter|ft $_ -a}

!

4

Re: JS:WMI не могу получить значения свойств экземпляра класса

YMP пишет:

Вот так работает:


i.item()[ClassProp[m]]

спасибо!