Запрос WQL возвращает несколько экземпляров в коллекции

Я запускаю запрос WQL в VBScript для извлечения данных из нашей базы данных 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

person SandiegoJoe    schedule 18.12.2014    source источник


Ответы (1)


Вы ПРИСОЕДИНЯЕТЕСЬ к SMS_R_System и SMS_G_System_NETWORK_ADAPTER_CONFIGURATION. Это даст одну запись для каждой конфигурации NIC. Если на устройстве есть несколько сетевых адаптеров (включая виртуальные) с ненулевыми IP-адресами (которые могут включать частные сети), вы получите одну JOIN-запись для каждого. Вы должны увидеть различия в данных NIC для каждой «дублирующейся» записи.

person mojo    schedule 19.12.2014