SCCM ile SQL İfadelerini Kullanarak Veritabanını Sorgulama
System Center Configuration Manager (SCCM), geniş ölçekli bir IT ortamını yönetmek için güçlü bir araçtır. SCCM, cihazlar ve yazılımlar hakkında zengin bir veri tabanına sahiptir. Bu veriler, SQL Server Management Studio (SSMS) kullanılarak sorgulanabilir ve raporlar oluşturulabilir. Bu yazıda, SCCM SQL veritabanını nasıl sorgulayacağınızı ve doğru sonuçlar almak için nelere dikkat etmeniz gerektiğini adım adım açıklayacağız.
Neden SCCM Veritabanını Sorgulamalıyız?
- Cihaz Envanterini Analiz Etmek: Hangi işletim sistemleri, uygulamalar ve donanımların kullanıldığını görmek.
- Yazılım Dağıtımını İzlemek: Yazılım güncellemelerinin dağıtım durumunu ve başarısını takip etmek.
- Sorun Giderme: Cihazlarla ilgili sorunları tespit etmek ve çözmek için kök neden analizi yapmak.
- Raporlama: Özel raporlar oluşturarak yöneticilere bilgi sağlamak.
SQL sorguları yazmadan önce, SCCM SQL Server veritabanına doğru bir şekilde bağlanmalısınız:
- SSMS’yi Başlatın: SQL Server Management Studio’ı (SSMS) açın.
- Server Type Seçimi: “Database Engine” seçeneğini işaretleyin.
- Server Name Girin: SCCM sunucunuzun adını yazın (format:
SCCMServer\MSSQLSERVER
). - Kimlik Doğrulama: Windows Authentication veya ilgili bir kimlik doğrulama yöntemi ile bağlanın.
- Veritabanıyı Keşif: Bağlandıktan sonra sol taraftaki “Object Explorer” penceresinde SCCM veritabanınızı göreceksiniz (genelde
CM_<SiteCode>
formatında olur).

SCCM veritabanı, çeşitli tablolar ve görünümler içerir. Doğru verilere ulaşmak için veritabanı yapısını anlamak önemlidir.
SCCM SQL veritabanı, birçok sanal tablo (“görünüm”) üzerinde çalışır. Doğru verilere ulaşabilmek için bazı kritik görünüm adlarını bilmek faydalıdır:
- v_R_System: Cihaz bilgileri (hostname, IP, OS).
- v_GS_ADD_REMOVE_PROGRAMS: Yüklü program bilgileri.
- v_GS_OPERATING_SYSTEM: Detaylı işletim sistemi bilgileri.
- v_CollectionMemberClientBaselineStatus: Koleksiyon ve istemci durumu.
- v_GS_PROCESSOR: İşlemci bilgileri.
Görünüm Adlarındaki Kodların Anlamı
- v_: Sanal görünüm.
- GS_: Genel sistem bilgileri (donanım/yazılım).
- RS_: Raporlama odaklı veriler.
SQL Temelleri ve Temel Komutlar
Bir SCCM veritabanı sorgusu şu temelleri içerir:
- SELECT: Hangi sütunların gösterileceğini belirtir.
- FROM: Verilerin alınacağı tabloyu/görünümü belirtir.
- WHERE: Sonuçları filtreler.
- ORDER BY: Sonuçları belirli bir kritere göre sıralar.
- JOIN: Tablo/görünüm birleştirme işlemleri.
SQL Mantıksal Operatörler
SQL sorgularınızda kullanabileceğiniz başlıca mantıksal operatörler:
- AND: Birden fazla şartı birleştirir.
- OR: Alternatif şartları birleştirir.
- LIKE: Belirli bir değeri benzer ifadelerle eşleştirir (joker karakterler kullanır).
- IN: Bir değeri belirli bir listeyle karşılaştırır.
- IS NULL: NULL değerleri kontrol eder.
- ANY: Bir değeri, belirtilen listedeki herhangi bir geçerli değerle karşılaştırır.
- NOT: Kullanıldığı mantıksal operatörün anlamını tersine çevirir. Örneğin: NOT EXISTS, NOT BETWEEN, NOT IN.
SELECT *
FROM v_r_system

Sonuçlarda sütün adını(Name) tıklanır. Bunlar V_R_SYSTEM görünümündeki tüm kullanılabilir verilerdir. Konsolda bir aygıta çift tıkladığınızda, oradaki bilgileri görürsünüz. V_R_SYSTEM görünümünde saklanır.

Sorgumuzu değiştirelim ve sonuçları karşılaştıralım. SELECT ifadesinde ne gösterileceğini belirteceğiz ve sadece istenen isme sahip cihazı göstermek için WHERE ifadesini ekleyeceğiz.
SELECT Name0,Operating_System_Name_and0
FROM v_r_system
WHERE Name0 = 'SBPSCCM01'

Çıktı başarılı bir şekilde görünmektedir.

Sorgu sonuçları artık yalnızca WHERE ifadesinde belirtildiği için SBPSCCM01 sistemini gösteriyor. Sonuçlar yalnızca SELECT ifadesi nedeniyle sistemin Adını ve İşletim Sistemini gösteriyor.
Bazı SQL Sorguları:
SELECT * FROM v_r_system WHERE Name0 like 'ABC%'
SELECT * FROM v_r_system WHERE Operating_System_Name_and0 like '%Windows Server 2019%'

SSMS’de SCCM DB Keşfetme
Artık V_R_SYSTEM görünümünü sorgulayabilirsiniz ancak çok fazla ilgili bilgi içermiyor. Donanım bilgisi veya başka bir bilgi için sorgu yapmanız gerekirse ;
SQL MS’de Görünüm düğümünü genişletin.

Gördüğünüz gibi çok fazla var. Kullanabileceğiniz bir numara, belirli bir konu için görünümleri göstermek üzere filtreler kullanmaktır. Diyelim ki Koleksiyonlar hakkında bilgi edinmek istiyorsunuz. Görünüm adını yalnızca “Koleksiyon” ile filtreleyebilirsiniz.
- View (Görünümler) düğümüne sağ tıklayın
- Filtre / Filtre Ayarlarını Seçin
- Filtre ayarları penceresinde isme “Koleksiyon” girin ve Tamam’a tıklayın
- Yalnızca Koleksiyona sahip görünümler gösterilir.
Belirli bir görünümde bulunan bilgileri hızlıca görmek istiyorsanız, üzerine sağ tıklayın ve
En İyi 1000 Satırı seçe tıklayın.

Sonuç bölmesinde, tüm koleksiyon verilerimiz görüntülenir.

Herhangi bir sorguda, istediğiniz şekilde görüntüleyebilirsiniz. SELECT’ten sonraki yerleşim sütun konumunu belirler.
Yukarıdaki örneği ele alalım:
- İsmi #1
- İşletim Sistemi #2
- Üretici #3
- Model #4
- CPUName #5’tir

Verileri alfabetik veya sayısal sıraya göre sıralamak istiyorsanız, ORDER BY ifadesini kullanmanız gerekir. Bu, verilerinizi sıralayacaktır.
ORDER BY kullanırken, istediğiniz sütunu belirtmek için sütun adını veya numarasını kullanabilirsiniz. Aynı örneği kullanarak, her iki ORDER BY sözdizimi de aynı sonuçları döndürür.
SELECT
CPU.Name0 AS CPUName,
SYS.Name0 AS Name,
OS.Caption0 AS OS,
CS.Manufacturer0 AS Manufacturer,
CS.Model0 AS Model
FROM
v_R_System AS SYS
JOIN v_GS_OPERATING_SYSTEM OS ON OS.ResourceID = SYS.ResourceID
JOIN v_GS_COMPUTER_SYSTEM CS ON CS.ResourceID = SYS.ResourceID
JOIN v_GS_PROCESSOR CPU ON CPU.ResourceID = SYS.ResourceID
--ORDER BY 1
ORDER BY CPU.Name0
SCCM SQL Veritabanı İpuçlarını Sorgula
- Performansı artırmak için ifadelerinizde * operatörünü aşırı kullanmayın
SELECT
. Bunun yerine, mümkün olduğunca sütun adlarını kullanın. - Herhangi bir satırı tire karakteri “–“ kullanarak yorumlayabilirsiniz
- /* ve */ kullanarak büyük bir bölümü yorumlayabilirsiniz
- SQL ifadeleri büyük/küçük harfe duyarlı değildir, ancak genel uygulama bunları büyük harflerle yazmaktır.
SCCM veritabanını sorgulamak, cihazlarınız hakkında derinlemesine bilgi edinmenizi sağlar. Bu blog yazısında, temel SQL komutlarını ve SCCM veritabanını sorgulamak için bazı ipuçlarını öğrendiniz. Pratik yaparak ve farklı sorgular deneyerek, SCCM veritabanından daha fazla bilgi çıkarabilirsiniz.
Bu bilgilerin faydalı olması dileğiyle..