查询 SCCM 服务器以获取特定计算机的添加/删除程序列表

查询 SCCM 服务器以获取特定计算机的添加/删除程序列表

首先,抱歉我的英语不好。我是 vbs 脚本和 wmi 查询方面的新手,需要您的帮助。

我的目标是获取特定计算机的添加/删除程序列表。我看到许多脚本查询目标计算机上的卸载注册表项,但我想即使计算机处于离线状态也能执行此操作。这就是我查询 SCCM 服务器的原因。

我的查询似乎不错,因为当我将其放入报表生成器时,它返回一个很好的结果。

查询如下:

Select sys.Name0,adv.DisplayName0 FROM v_R_System sys , v_Add_Remove_Programs adv where sys.ResourceID=adv.ResourceID and sys.Name0 like '%XXXXXXXX%'

我的问题是使用 vbscript 获取查询结果。我在“For Each”行上收到错误

这是我的脚本:

'Central SCCM Site Server name
strComputer = "SCCM_SERVER"

'Central SCCM Site Code
strSiteCode = "DC1"

'Set up the connection String
Set objWMIService = GetObject("winmgmts://" & strComputer & "\root\sms\site_" & strSiteCode)




'Get the info with a query
Set colGroups = objWMIService.ExecQuery("Select sys.Name0,adv.DisplayName0 FROM v_R_System sys , v_Add_Remove_Programs adv where sys.ResourceID=adv.ResourceID and sys.Name0 like 'XXXXXXXXXXX'")


'output the info
For Each objGroup in colGroups
    Wscript.echo objGroup.DisplayName0 & " - "
Next

你能帮我一些忙吗?

更新:看来我没有使用正确的语言进行查询。我使用的是 SQL 而不是 WQL。

我不知道如何将我的查询转换为 WQL。你能帮忙吗?

答案1

您正在尝试使用 SQL 查询从 CM07/CM12 获取结果。您需要使用 WQL 来查询 CM07/CM12。将您的查询转换为 WQL,它应该可以工作,或者重写您的 VBS 以直接查询 SQL。

相关内容