WQL/SCCM - 正确比较版本号(小于...)

WQL/SCCM - Comparing version numbers correctly (less than...)

我在查找 "less than version 75.0.3770.80":

的 SCCM WQL 查询的这一部分时遇到问题
... where SMS_G_System_ADD_REMOVE_PROGRAMS.Version < "75.0.3770.80"

如果我没记错的话,这是以前在其他场景(例如文件名)中看到的老问题,它将 return 版本号为

的对象
75.0.3770.142   

因为在它的逻辑中 "of course" .142 是 "less than" .80 因为 .1 小于 .8。它不会将其视为“142 对 80”,而是“1 对 8”

有什么办法可以解决这个问题吗?我在这个查询中收到了很多误报,需要将它们过滤掉。如果它是直接的 Powershell,我可以将其转换为 [version],但在 SCCM 中,是否可以进行这种比较?

如果只有版本号的最后一部分不同,我们可以使用下面的。

... where SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "75.0.3770.[1-7][0-9]"
or ... like "75.0.3770.[0-9]"

此致, 雷

最终使用 SMS_G_System_ADD_REMOVE_PROGRAMS.Version < "75.0.3770"

如果第一个版本nr达到100,就会出错。 最好是这样的

SMS_G_System_ADD_REMOVE_PROGRAMS.Version like "75.0.%" and
SMS_G_System_ADD_REMOVE_PROGRAMS.Version < "75.0.3770