Le raccolte vuote in SCCM, oggi Microsoft Configuration Manager, non sono tutte uguali: alcune sono davvero senza membri, altre risultano vuote solo perché la valutazione non è ancora passata, oppure perché la query di membership non restituisce nulla. Se l’obiettivo è fare pulizia, audit o troubleshooting, la cosa giusta è partire dai dati del sito e non dalla console “a occhio”.
Il modo più affidabile per individuarle è incrociare tre fonti: la vista SQL delle collezioni, lo stato della membership e, quando serve, la console ConfigMgr per verificare se una raccolta è stata creata ma non è mai stata usata. In ambienti grandi, questo evita di cancellare raccolte ancora referenziate da deployment, maintenance window o task sequence.
Che cosa significa davvero “raccolta vuota” in ConfigMgr
In ConfigMgr una raccolta può apparire vuota per motivi diversi. La casistica più comune è una collezione con zero membri effettivi nel momento in cui controlli. Ma esistono anche raccolte con membership basata su query che non sta ancora restituendo risultati, raccolte escluse da evaluation recente o raccolte che contengono membri ma non sono state aggiornate correttamente lato console.
Per questo, prima di fare pulizia, conviene distinguere tra assenza di membri e assenza di valutazione. La prima è un dato stabile; la seconda è un sintomo da indagare. Se ti limiti alla console, rischi di confondere raccolte davvero inutili con raccolte temporaneamente non aggiornate.
Metodo più solido: interrogare il database del sito
Se hai accesso al database del site server, la verifica migliore passa da SQL Server. Le tabelle e le viste possono cambiare leggermente a seconda della versione, ma il concetto resta lo stesso: identificare le raccolte e verificare se hanno membri attivi.
In molti ambienti la vista più usata per le collezioni è v_Collection, mentre i membri si leggono tramite viste come v_FullCollectionMembership o equivalenti. L’idea è semplice: estrai l’elenco delle raccolte e conta i membri associati. Se il conteggio è zero, hai una raccolta vuota.
Ecco un esempio pratico. Adattalo al tuo namespace e al tuo database del sito:
SELECT c.CollectionID, c.Name, c.LimitToCollectionID, COUNT(m.ResourceID) AS MemberCount
FROM v_Collection AS c
LEFT JOIN v_FullCollectionMembership AS m ON c.CollectionID = m.CollectionID
GROUP BY c.CollectionID, c.Name, c.LimitToCollectionID
HAVING COUNT(m.ResourceID) = 0
ORDER BY c.Name; Questa query restituisce le raccolte con zero membri secondo la vista usata. In alcuni ambienti potresti voler escludere raccolte di sistema, raccolte predefinite o raccolte temporanee create da processi automatici. In quel caso aggiungi un filtro su nome, ID o proprietà specifiche del tuo standard operativo.
Se vuoi un controllo più prudente, conviene prima elencare tutte le raccolte e verificare manualmente quelle candidate alla rimozione, invece di cancellarle in blocco. In un sito con molte dipendenze, una raccolta apparentemente vuota può ancora essere referenziata da un deployment di applicazioni, aggiornamenti o raccolte annidate.
Raccolte vuote ma ancora referenziate: il caso da non ignorare
Il punto critico non è solo trovare raccolte con zero membri. È capire se sono davvero inutili. In ConfigMgr una raccolta può essere vuota e comunque servire come target logico per un’applicazione, un baselining, una compliance policy o una task sequence. In quel caso eliminarla rompe la logica operativa, anche se non contiene device o user.
Per questo, prima di qualsiasi rimozione, verifica almeno questi aspetti: se la raccolta è usata come limiting collection, se è associata a deployment attivi, se compare in query o regole di altre raccolte, e se è richiamata da automazioni esterne. Se non hai un inventario delle dipendenze, la ricerca va fatta prima di toccare la collezione.
Una verifica rapida dalla console può aiutare: apri la raccolta, controlla la scheda dei deployment e quella delle membership rules. Se trovi riferimenti attivi, la raccolta non va considerata “candidata alla pulizia” senza prima aver tracciato l’impatto.
Come trovare raccolte vuote dalla console ConfigMgr
Se preferisci lavorare dalla console, il percorso è più lento ma utile per una verifica visiva. Vai in Assets and Compliance e poi in Device Collections o User Collections. Ordina per Member Count quando disponibile, oppure apri le raccolte sospette una per una per controllare la scheda Members.
Il limite della console è che non sempre ti dà la fotografia più affidabile in tempo reale, soprattutto se la collection evaluation è in ritardo o il sito è sotto carico. Per questo la console è adatta a confermare un risultato già individuato con SQL, non a fare da unica fonte di verità in ambienti complessi.
Se vuoi ridurre il rumore, usa i filtri per nome e concentrati su raccolte create ad hoc, raccolte legacy o raccolte temporanee usate durante migrazioni, rollout o test. Sono quelle che più spesso restano vuote e dimenticate.
Verifica della membership evaluation
Quando una raccolta non mostra membri ma dovrebbe averne, il problema può essere nella valutazione della membership. In quel caso non stai cercando una raccolta davvero vuota, ma una raccolta non aggiornata o con regole che non producono più risultati.
In console puoi aprire la raccolta e controllare lo stato della valutazione, oppure forzare un aggiornamento manuale se il tuo processo operativo lo consente. Se la raccolta torna popolata dopo il refresh, non era vuota: era semplicemente non aggiornata.
Dal lato server, i log del site server e i componenti della valutazione membership sono il posto giusto da controllare quando sospetti un’anomalia. Se il sito ha errori di evaluation, query lunghe o problemi di performance del database, il sintomo può essere una collezione che sembra vuota solo perché non viene ricalcolata correttamente.
Query utili per fare pulizia in modo prudente
Una volta identificate le raccolte senza membri, conviene arricchire l’analisi con altri dettagli. Per esempio, puoi estrarre data di creazione, limit collection, tipo di raccolta e nome per capire se si tratta di un oggetto storico o di un residuo operativo recente.
SELECT c.CollectionID, c.Name, c.CollectionType, c.LimitToCollectionID, c.ObjectPath, c.LastChangeTime
FROM v_Collection AS c
WHERE c.CollectionID IN ( SELECT c2.CollectionID FROM v_Collection AS c2 LEFT JOIN v_FullCollectionMembership AS m ON c2.CollectionID = m.CollectionID GROUP BY c2.CollectionID HAVING COUNT(m.ResourceID) = 0
)
ORDER BY c.LastChangeTime DESC; Questo secondo passaggio ti aiuta a capire se la raccolta è un residuo recente o un oggetto vecchio che non è più usato. In un audit serio, la data di ultimo cambiamento è spesso più utile del solo nome.
Se vuoi fare una verifica ancora più conservativa, esporta il risultato in un file CSV prima di fare qualsiasi modifica. In questo modo hai un riferimento preciso per il rollback logico, cioè la possibilità di ricreare o ripristinare i riferimenti se una raccolta risultasse ancora necessaria.
Rimozione sicura: quando una raccolta vuota può essere eliminata
Eliminare una raccolta è sensato solo se hai verificato che non sia usata da deployment, baselines, report, script o automazioni. La regola pratica è questa: se non hai una prova delle dipendenze, la raccolta non va cancellata subito.
Il flusso corretto è: identificazione, verifica dipendenze, eventuale disattivazione o rinomina, attesa di un ciclo operativo, e solo dopo rimozione. La rinomina è spesso un buon compromesso quando vuoi osservare gli effetti senza distruggere subito l’oggetto. Se qualcosa si rompe, il rollback è immediato: ripristini il nome o lasci la raccolta in stato sospeso.
Se operi su un sito di produzione, considera sempre il blast radius: una raccolta apparentemente innocua può influire su centinaia di client se è usata come scope di distribuzione. Anche una modifica minima può avere effetti su policy, contenuti distribuiti e compliance.
Checklist rapida per individuare raccolte vuote
Per un controllo veloce ma serio, usa questa sequenza:
- Estrai l’elenco delle raccolte dal database del sito e filtra quelle con membro pari a zero.
- Controlla se la raccolta è referenziata da deployment, limiting collection o automazioni.
- Verifica in console lo stato della membership evaluation e l’eventuale aggiornamento recente.
- Esporta l’elenco delle candidate alla rimozione prima di toccare l’ambiente.
- Se la raccolta è davvero inutilizzata, rinominala o disabilitala prima della cancellazione definitiva.
Questa sequenza riduce il rischio di pulizie aggressive e ti lascia sempre un punto di ritorno. In ambienti complessi, la prudenza operativa vale più della velocità.
Quando i numeri non tornano
Se la query SQL dice che una raccolta è vuota ma la console mostra membri, oppure il contrario, il problema è quasi sempre una disallineamento tra valutazione, cache della console o stato del database. In quel caso non forzare subito modifiche strutturali: prima verifica tempi di refresh, integrità del sito e eventuali errori nei log di ConfigMgr.
In presenza di anomalie ricorrenti, controlla anche lo stato del database SQL Server, la latenza delle query e l’eventuale backlog di maintenance. Un sito sotto stress può restituire viste non perfettamente aggiornate o far sembrare vuota una collezione che in realtà è solo in ritardo di valutazione.
In sintesi, trovare le raccolte vuote in SCCM è facile solo se distingui tra dato reale e sintomo temporaneo. Il database ti dà la base più solida, la console ti conferma il contesto, e la verifica delle dipendenze ti evita errori costosi. Se ti muovi con questo ordine, la pulizia resta reversibile e il rischio operativo resta sotto controllo.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.