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