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
我在查找 "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