我在VBScript中运行WQL查询以从我们的SCCM数据库中提取数据。我可以做其他所有按预期工作的查询。它们通常返回一个对象集合,我可以使用标准方法遍历并访问:
For Each objGroup in colGroups
wscript.echo objgroup.name
Next
当使用objgroup.GetObjectText_
方法在工作查询中的一个集合对象中显示数据时,我通常会看到如下内容:
instance of SMS_R_UserGroup
{
Name = "whatevername";
UsergroupName = "whatever";
WindowsNTDomain = "whatever";
};
在每个具有我可以轻松访问的属性的对象中,基本上只有一个实例(如果我的术语错误,请纠正我)。
有问题的查询,我在每个对象中看到多个实例:
instance of __GENERIC
{
SMS_G_System_NETWORK_ADAPTER_CONFIGURATION =
instance of SMS_G_System_NETWORK_ADAPTER_CONFIGURATION
{
DefaultIPGateway = "xxxx";
DHCPEnabled = 1;
DHCPServer = "xxxx";
DNSDomain = "xxxx";
DNSHostName = "xxxx";
GroupID = 4;
Index = 9;
IPAddress = "xxxxxx";
IPEnabled = 1;
IPSubnet = "xxxx";
MACAddress = "xxxx";
ResourceID = 74762;
RevisionID = 11;
ServiceName = "xxxxxx";
TimeStamp = "xxxxx";
};
SMS_R_System =
instance of SMS_R_System
{
Active = 1;
ADSiteName = "xxxxxx";
AgentName = {"xxxxxx"};
AgentSite = {"xxxxx"};
AgentTime = {"xxxxxx"};
AlwaysInternet = 0;
Client = 1;
ClientType = 1;
ClientVersion = "xxxx";
};
如何访问具有多个实例的对象中的属性?为什么它会返回多个实例?
顺便说一句,这是我正在运行的查询:
SELECT *
FROM SMS_R_System
JOIN SMS_G_System_NETWORK_ADAPTER_CONFIGURATION ON
SMS_G_System_NETWORK_ADAPTER_CONFIGURATION.ResourceID = SMS_R_System.ResourceID
WHERE SMS_R_System.Name = 'xxxxxx' AND
SMS_G_System_NETWORK_ADAPTER_CONFIGURATION.IPAddress IS NOT NULL
答案 0 :(得分:0)
您正在加入SMS_R_System和SMS_G_System_NETWORK_ADAPTER_CONFIGURATION。这将为每个NIC配置生成一条记录。如果设备具有多个具有非空IP地址(可能包括专用网络)的NIC(包括虚拟网卡),则每个网络都会获得一个JOIN&#ed ed记录。您应该能够看到每个"重复"的NIC数据的差异。记录。