2014-12-18 3 views
0

Я запускаю WQL-запрос в VBScript для извлечения данных из нашей базы данных SCCM. Я могу делать другие запросы, которые работают как ожидалось. Они обычно возвращают коллекцию объектов, которые я могу перебрать и доступ с использованием стандартного метода:Запрос WQL возвращает несколько экземпляров в коллекции

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

Вы JOIN'ing SMS_R_System и SMS_G_System_NETWORK_ADAPTER_CONFIGURATION. Это даст одну запись для каждой конфигурации NIC. Если устройство имеет несколько сетевых адаптеров (включая виртуальные) с ненулевыми IP-адресами (которые могут включать частные сети), вы получите одну запись JOIN для каждой. Вы должны уметь видеть различия в данных NIC для каждой «дублирующей» записи.

 Смежные вопросы

  • Нет связанных вопросов^_^