我觉得我在这里真的很愚蠢。
我使用的是vbscript。我已连接到SCCM服务器
Set locator = CreateObject("WbemScripting.SWbemLocator")
Set connection = locator.ConnectServer("SERVERNAME", "Root\SMS\SITENAME")然后我有一个WMI WQL查询:
Set Collections = connection.ExecQuery("SELECT LastStatusTime,AdvertisementID,
LastStateName,AdvertisementName
FROM SMS_ClientAdvertisementStatus
INNER JOIN SMS_Advertisement
ON SMS_Advertisement.AdvertisementID = SMS_ClientAdvertisementStatus.AdvertisementID
WHERE LastStateName = 'Succeeded'
AND LastStatusTime > '2012-09-25'")
FOR each Collection in Collections
Collection.LastStatusTime
Collection.AdvertisementID
Next我认为我对WQL的理解有一个差距。我似乎能够在这个查询中连接这两个WQL“表”,但我只能从SMS_ClientAdvertisementStatus返回值。
如果我试图从我加入的表SMS_Advertisement返回任何东西,我只会得到一个错误。
你能在WQL中加入“表”吗--如果它们是表的话?或者我必须有一个嵌套的查询?或者,是否有其他方法可以从两个表中返回数据?
发布于 2012-09-26 02:12:54
WQL不支持连接,但是您可以使用MOF来定义包含来自多个类的数据的WMI类。请看这里:
Creating a New Instance from Old Properties
发布于 2012-09-25 22:19:11
SQL语言只是WQL的一个子集,不支持JOIN语句,在某些情况下可以使用ASSOCIATORS OF。
发布于 2014-11-24 14:58:02
WQL确实支持joins。下面是一个示例工作查询,它列出了与集合名称匹配的设备名称。适用于SCCM 2012。
select SMS_R_SYSTEM.Name from SMS_R_System inner join SMS_Collection as Systems on Systems.Name = SMS_R_System.Namehttps://stackoverflow.com/questions/12583601
复制相似问题