在SMS/SCCM的日常使用过程中,经常遇到这样的场景:

1. 需要查询已经安装某个软件的计算机集合

2.需要查询没有安装某个软件的集合

对于第1点,应该比较容易,但第2点,我们都会用到,但在创建这样的集合时,经常产生的现象是,整理不出这样的集合,因为处理不了in or not in这样的关系。其实,创建这样的集合并不难,使用SMS/SCCM中的subselect功能,很容易实现。现举列如下,查询没有安装IE 8的计算机

1.创建一个集合,查询出,哪些计算机已经安装了IE8,这时候,所建立的集合就产生一个集合ID,比如ABC0000D

2.创建另一个集合,导入下列语句即可

select sms_r_system.resourceid, sms_r_system.name
from sms_r_system
where resourceid not in
    (
    select sys.resourceid
    from sms_cm_res_coll_ABC0000D AS coll, sms_r_system as sys
    where sys.resourceid = coll.resourceid
    )

需要更改的就是这个红颜色的集合ID,即已经安装有IE8计算机的集合。这样就产生了没有IE8的计算机集合。

因为SMS/SCCM中经常会产生一些垃圾计算机客户端,可以使用限定集合的办法,进一步限定所获得的计算机清单。