Esclusione di risorse contenute in una particolare collection

Capita spesso nella normale operatività di SCCM di creare una collection del tipo:

“Tutte le macchine con office eccetto quelle che…” Non è banale e talvolta impossibile specificare l’”eccetto che” in una query WQL.

Per risolvere il problema si può ricorrere ad una particolare query che ci permette di creare la collection X contenente le macchine  di una collection Y togliendo quelle contenuta nella collection Z. La query è la seguente:

select SMS_R_System.ResourceID,SMS_R_System.ResourceType,

SMS_R_System.Name,SMS_R_System.SMSUniqueIdentifier,

SMS_R_System.ResourceDomainORWorkgroup,SMS_R_System.Client

from SMS_R_System where Client = 1 and ClientType = 1 and

ResourceId not in (select ResourceID from SMS_CM_RES_COLL_XXXxxxxx)

Questa query considera tutte le macchine con il client installato eccetto quelle nella collection _RES_COLL_XXXxxxxx. Questo valore deve essere rilevato direttamente dal db. Basterà aprire la console di SQL, sfogliare il db di SCCM e individuare dbo.collections. Visualizzate le righe e individuate il nome della collection che volete escludere. Consultate il campo nella colonna Result Table Name (che corrisponderà al valore _RES_COLL_XXXxxxxx) e sostituitelo nella query. Di seguito l’immagine della tabella del db da cui prendere il valore:

db_image

Esempio:

Ho bisogno di creare una collection “All Win7_NoOffice2012” contenente tutte le macchine Windows7 che non hanno Office 2012.

  1. Creo una collection ”All Office 2012” con tutte le macchine che hanno Office 2012 e una “All Win7” con tutte le macchine Windows7 
  2. Consulto il db per rilevare il codice della collection “All office 2012”
  3. Creo la collection “All Win7_NoOffice2012” con la query sopra riportata sostituendo il codice della collection “All Office 2012” e limitando il tutto alla collection “All Win7”

Buon Lavoro

 

Simone