SCCM 2007安装的软件查询与版本过滤

时间:2015-10-16 00:05:38

标签: sql-server sql-server-2008 tsql sccm sccm-2007

我需要为我的工作跟踪旧版本的软件。我需要报告已安装的总实例和最新实例。 Adobe Flash Player和Adobe Air一起被跟踪。目前,我们检查报告并手动添加每个版本的编号。我也拉旧版本尝试手动远程修补。

这是我的Query语句列出所有实例

select SMS_R_System.Name, SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName, SMS_G_System_ADD_REMOVE_PROGRAMS.Version from  SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%Adobe AIR%" and SMS_G_System_ADD_REMOVE_PROGRAMS.InstallDate is not null  or SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%Adobe Flash Player%" order by SMS_R_System.Name

这不是问题,但是当我试图拉掉所有太旧的版本时,它并不那么容易。可接受的版本是Adobe Air 19.0.0.190,Adobe Flash Player 18.0.0.241和Adobe Flash Player 19.0.0.190。

select SMS_R_System.Name, SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName, SMS_G_System_ADD_REMOVE_PROGRAMS.Version from  SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%Adobe AIR%" and SMS_G_System_ADD_REMOVE_PROGRAMS.InstallDate is not null  and (SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "[0-9].%" or SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "1[0-8].%" or SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "19.0.0.[0-9]" or SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "19.0.0.[0-9][0-9]" or SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "19.0.0.1[0-8][0-9]") or SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%adobe flash player%" and (SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "[0-9].%" or SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "1[0-7].%" or SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "18.0.0.[0-9]" or SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "18.0.0.[0-9][0-9]" or SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "18.0.0.1[0-9][0-9]" or SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "18.0.0.2[0-3][0-9]" or SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "18.0.0.240" or SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "19.0.0.[0-9]" or SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "19.0.0.[0-9][0-9]" or SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "19.0.0.1[0-7][0-9]" or SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "19.0.0.18[0-4]") order by SMS_R_System.Name

这样可行,但是当版本发生变化时,几乎不可能在没有搞乱的情况下进行更新。我拉两个列表并将它们比较4到5次以找到我遗漏的内容。

无论如何SCCM / MS SQL只是比较版本号吗?

WHERE Version < 19.0.0.190

我尝试了一个基于此的查询,但它似乎比较每个数字或其他东西的效果。例如(7.2> 7.11或7.0.1.0> 16.0.0.111)我还未能找到SCCM特定的解决方案。如果MS不支持更好的方式,我会感到震惊。

这只是一个例子。我们使用#。#版本跟踪了很多程序,有些程序使用#。#。#。#versions,而且这些版本或多或少都取决于版本。一个灵活的解决方案将是惊人的。

抱歉格式极差。我自学并且没有触及SQL,因为两年的课程是3年前的MS访问。

1 个答案:

答案 0 :(得分:0)

这只是回复一目了然,但你能否发表声明......

(18版本。#。#。# 和版本&gt; 18.0.0.184) 要么 (版本如19。#。#。# 和版本&gt; 19.0.0.190)