为什么SWbemServices.ExecQuery会返回比请求更多的属性?
问题描述:
我从下面的JScript代码中获得了意想不到的结果。 索引属性即使我只请求MACAddress也会返回。为什么SWbemServices.ExecQuery会返回比请求更多的属性?
这是怎么回事?
的JScript:
var wmi, col, itr, obj;
wmi = GetObject('winmgmts:');
col = wmi.ExecQuery('SELECT MACAddress FROM Win32_NetworkAdapterConfiguration');
itr = new Enumerator(col);
for (; !itr.atEnd(); itr.moveNext()) {
obj = itr.item();
itr = new Enumerator(obj.Properties_)
for (; !itr.atEnd(); itr.moveNext()) {
obj = itr.item();
WSH.echo(obj.name)
}
}
输出:
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
Index
MACAddress
答
此行为是正常的,WMI总是返回(如果存在的话)的关键属性(用于唯一地标识一个属性类的实例)以及WQL语句中指定的其他人。
谢谢你的回答。你知道一个* IsKeyProperty *方法来确定我们得到的物品是否是一个关键属性? – user710307
您必须检查该属性限定符http://msdn.microsoft.com/en-us/library/windows/hardware/ff566365%28v=vs.85%29.aspx – RRUZ