Configuration Manager (MECM) Üzerinde Dağıtımı Olmayan Koleksiyonları Tespit Etme
Microsoft Endpoint Configuration Manager (SCCM) yöneticileri için koleksiyon yönetimi, sistemin sağlığı ve performansı açısından kritik bir öneme sahiptir. Zamanla test amaçlı oluşturulan, geçici projeler için açılan veya artık ihtiyaç duyulmayan ancak silinmesi unutulan onlarca koleksiyon birikebilir.
Peki, ortamınızda hiçbir uygulamaya, pakete veya yazılım güncellemesine ev sahipliği yapmayan, yani hiçbir dağıtımı (deployment) olmayan koleksiyonları nasıl tespit edersiniz?
Bu yazımızda, SQL sorgusu yardımıyla bu atıl koleksiyonları nasıl listeleyebileceğinizi ve sisteminizi nasıl daha düzenli hale getirebileceğinizi inceleyeceğiz.
Neden Atıl Koleksiyonları Temizlemeliyiz?
Koleksiyon sayısının kontrolsüzce artması sadece görüntü kirliliği yaratmaz, aynı zamanda şu teknik sorunlara yol açabilir:
- Performans Kaybı: Her koleksiyon belirli aralıklarla evaluation (değerlendirme) işlemine girer. Kullanılmayan koleksiyonlar bile CPU ve SQL kaynaklarını tüketir.
- Karışıklık: Dağıtım yaparken doğru koleksiyonu seçmek zorlaşır, yanlışlıkla hatalı bir koleksiyona dağıtım yapma riski artar.
- Yönetilebilirlik: Binlerce koleksiyonun olduğu bir yapıda hiyerarşiyi takip etmek ve raporlamak güçleşir.
Bu nedenle düzenli bakım kapsamında dağıtımı olmayan koleksiyonların tespit edilmesi ve gözden geçirilmesi önemlidir.
SQL Sorgusu ile Çözüm
SCCM konsolu üzerinden bu bilgiyi tek tek kontrol etmek neredeyse imkansızdır. Ancak SQL Server Management Studio (SSMS) üzerinden SCCM veritabanına atacağımız kısa bir sorgu ile “boşta” duran tüm koleksiyonları saniyeler içinde görebiliriz.
Aşağıdaki sorgu, hiçbir uygulama, paket veya görev dizisi dağıtımı almamış koleksiyonları tespit eder.
/* Title: List SCCM Collections with No Deployments
Description: This query identifies collections that are not associated
with any Application, Package, or Task Sequence deployments.
*/
USE [CM_XXX]
GO
SELECT
coll.CollectionID,
coll.CollectionName,
CASE
WHEN CAST(coll.CollectionType AS NVARCHAR(10)) LIKE '2%' THEN 'Device'
WHEN CAST(coll.CollectionType AS NVARCHAR(10)) LIKE '1%' THEN 'User'
ELSE 'Other'
END AS [CollectionType],
coll.MemberCount
FROM
v_Collections coll
WHERE
-- Filter out collections that are not in the deployment summary table
CAST(coll.CollectionID AS NVARCHAR(255)) NOT IN (
SELECT DISTINCT CAST(CollectionID AS NVARCHAR(255))
FROM v_DeploymentSummary
WHERE CollectionID IS NOT NULL
)
-- Filter out collections that are not in the classic advertisements table
AND CAST(coll.CollectionID AS NVARCHAR(255)) NOT IN (
SELECT DISTINCT CAST(CollectionID AS NVARCHAR(255))
FROM v_Advertisement
WHERE CollectionID IS NOT NULL
)
-- Exclude built-in System Collections (Optional)
AND coll.CollectionID NOT LIKE 'SMS%'
ORDER BY
coll.CollectionName
Sorgu Ne Yapıyor?
Bu SQL sorgusu, SCCM veritabanındaki farklı tabloları ilişkilendirerek dağıtımı olmayan koleksiyonları tespit eder:
v_CollectionsGörünümü: Koleksiyonun temel bilgilerini (ad, ID, tür) çekmek için kullanılan ana tablodur.v_DeploymentSummary&v_Advertisement: Bu tablolar, SCCM’deki modern uygulama dağıtımları ve klasik paket dağıtımları (advertisements) hakkındaki bilgileri tutar.NOT INMantığı: Sorgumuz, dağıtım tablolarında yer almayan koleksiyonları filtreleyerek karşımıza getirir.- Sistem Koleksiyonlarını Filtreleme:
NOT LIKE 'SMS%'satırı, SCCM’in varsayılan olarak oluşturduğu kritik koleksiyonları listeden hariç tutar.
Uygulama Adımları
- SQL Server Management Studio (SSMS) uygulamasını açın ve SCCM veritabanınıza bağlanın.
- New Query butonuna tıklayarak yukarıdaki kodu yapıştırın.
- Çıkan sonuç listesindeki koleksiyonları SCCM konsolundan inceleyerek güvenli bir şekilde silebilirsiniz.
Dikkat Edilmesi Gerekenler
Sorgu sonucunda çıkan her koleksiyon doğrudan silinmemelidir. Bazı koleksiyonlar;
- Sadece raporlama amacıyla (Query-based) oluşturulmuş olabilir.
- Bir koleksiyonun “Limit To” (Sınırlandırma) koleksiyonu olarak görev yapıyor olabilir.
- Gelecekteki bir çalışma için önceden hazırlanmış olabilir.
Bu yüzden, silme işlemine başlamadan önce listeyi mutlaka gözden geçirmenizi öneririm.
Sonuç
SCCM ortamınızı temiz ve düzenli tutmak, sorun giderme süreçlerinizi hızlandırır ve sistem performansını optimize eder. Belirli aralıklarla (aylık veya çeyrek dönem bakım süreçlerinde) bu sorguyu çalıştırarak kullanılmayan koleksiyonları tespit edebilir ve daha profesyonel bir altyapı yönetimi sağlayabilirsiniz.
Bu bilgilerin faydalı olması dileğiyle…











Elinize sağlık.
Teşekkür Ederim.