0

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

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

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

这不是问题,但是当我尝试提取所有太旧的版本时,这并不容易。可接受的版本是 Adob​​e Air 19.0.0.190、Adobe Flash Player 18.0.0.241 和 Adob​​e 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 不支持更好的方法,我会感到震惊。

这只是一个例子。我们跟踪的程序很多,有些带有#.# 版本,有些带有#.#.#.# 版本,而这种颠覆或多或少取决于版本。一个灵活的解决方案将是惊人的。

很抱歉格式非常糟糕。我自学并没有接触过 SQL,因为 3 年前的两周课程是 MS 访问。

4

1 回答 1

0

这只是一目了然的回复,但你能不能发表一下声明……

(版本如 18.#.#.# 和版本 > 18.0.0.184)或(版本如 19.#.#.# 和版本 > 19.0.0.190)

于 2015-11-20T16:23:11.960 回答