Configuration Manager Sorgu Yöntemleri

By | 9 February 2017

Configuration Manager Keşif Yöntemleri makalemiz içinde sahip olduğumuz organizasyon içinde bulunan nesnelerin keşfedilmesini gerçekleştirmiştik. Yapmış olduğumuz işlemler sonrasında System Center Configuration Manager yazılımı organizasyon içinde incelemeler gerçekleştirmiş ve organizasyon içinde bulunan nesnelerin belirlemiş olduğumuz sınırlar çerçevesinde bir takım öz nitelikleri bulmuştu.

Bu makalemiz içinde System Center Configuration Manager yazılımı ile Sorguları inceleyeceğiz. Makalemizin alt başlıkları;

Configuration Manager Sorgu (Query) Nedir

Configuration Manager yazılımının keşif işlemlerinin tamamlanmasından sonra birtakım veriler elde ettiğini söylemiştik. SCCM ‘in elde etmiş olduğu bu bilgileri kullanarak ihtiyaçlarımız çerçevesinde sorgular oluşturabileceğiz.

Bu sorgular, belirli bilgisayarların veya keşif yapılandırmamıza göre etki alnımız içinde bulunan kullanıcı ve grupların bilgilerini içermektedir. Elde ettiğimiz bu verileri, sorgular, siteler, koleksiyonlar, uygulamalar ve sahip olduğumuz donanım ve yazılım envanter bilgilerini öğrenmek için kullanabileceğiz. Bir sorguyu incelerken bilmemiz gerekli olan birtakım başlıklar bulunmaktadır.

Bu başlıklar, hangi veriyi arıyoruz ve nerede arıyoruz ve en önemlisi aramış olduğumuz bu veri keşif sınırları içinde mi? Bu soruların cevapları bu makale içinde bulunmaktadır.

Default SCCM Query

Default SCCM Query

Bir sorgu oluşturduğunuzda Configuration Manager tarafından saklanır ve Configuration Manager yönetim ara yüzünde \Monitoring\Overview\Queries yolun üzerinde görüntülenir. Yukarıdaki ekranda CM sunucusu üzerinde bulunan ve ilk kurulum sonrası gelmekte olan hazır Queries leri yani sorguları görebilmektesiniz.

Bu sorgular CM ‘in sahip olduğu varsayılan sorgulardır ve bu sorgular oluşturmuş olduğumuz keşif işlemleri sonrasında organizasyon içinde bulunan nesnelerin bilgilerini kapsamaktadır.

Results for All Systems

Results for All Systems

Configuration Manager yönetim ara yüzünde \Monitoring\Overview\Queries\Results for All Systems sorgusunu incelediğimiz zaman sorgu içinde bulunan nesnelerin bilgilerini görebilmekteyiz. Bu bilgiler içinde yer alan bilgiler nesnenin ismi, bağlı bulunmuş olduğu site bilgisi, IP Adresi ve IP Subnet ‘i, sahip olduğu işletim sistemi ve versiyon bilgisi, nesne etki alanı içinde üye mi-değil mi, etki alanı içinde üye ise en son kim oturum açtı gibi birçok nitelikleri bizlere getirmektedir.

Bu bilgiler Results for All Systems sorgu kümesi içinde yer alan nesne nitelikleridir. Diğer sorgu kümelerinde, sorgu kümesinin özelliklerine bağlı olarak farklı niteliklere ulaşabilirsiniz.

Results for Systems by Last Logged On User

Results for Systems by Last Logged On User

Configuration Manager yönetim ara yüzünde \Monitoring\Overview\Queries\Results for Systems by Last Logged On User sorgusunu inceliyoruz. Bu sorgu kümesi içinde gördüğünüz administrator kullanıcı hesabı ile hangi bilgisayar üzerinde oturum açılmış, oturum açılan bilgisayarın sahip olduğu işletim sistemi versiyonu, IP adresi, IP Subnet ve MAC adresini kapsamak üzere birtakım nitelikleri görebilmektesiniz.

Discovery Polling Schedule

Discovery Polling Schedule

Sorgu kümeleri içinde görmüş olduğumuz bu bilgiler en son çalışan keşif işleminden sonra elde edilen verilerdir. Keşif yöntemleri makalemiz içinde Polling Schedule bölümünden bahsetmiştik. Bu bölümde CM sunucusunun keşfe çıkacak olduğu zaman dilimlerini ve nesnenin değişkenleri toplayacak olduğu Delta Discovery lerden bahsetmiştik. Yukarıda görmüş olduğumuz sorgu sonuçları bu keşif zamanlarından sonra oluşan sonuçlardır ve anlık değillerdir. Bu küme içinde yer alan bilgiler her keşif işlemi sonrasında güncellenmektedir.

LOGICAL DISK FreeSpace Query

LOGICAL DISK FreeSpace Query

Yukarıda örnek bir sorgu bulunmakta ve bu sorgu içinde FreeSpace bilgisini istiyoruz. Yani organizasyonumuz içinde bulunan bilgisayarlar üzerinde boş disk alan boyut bilgisini istiyoruz.

Bu bilgiye sahip olabilir miyiz?

SCCM Query Empty

SCCM Query Empty

Hayır. Var sayılan değerlerde bu bilgiye sahip olamayız. Bunun nedeni basit. Bir düşünün, organizasyonunuz içinde binlerce ve hatta yapımızın büyüklüğüne göre milyonlarca nesne ve nesne öznitelikleri var. Keşif yöntemleri makalemiz içinde Configuration Manager yazılımı hizmet etmiş olduğu organizasyon içinde ihtiyaç duyulan bütün nesnelerin bilgilerini alabilir demiştik ve devam etmiştik kullanılmayan, ihtiyaç duyulmayan nesnelerin veri tabanı içinde yer alması ve veri tabanını gereksiz yere büyütmesi olası bir sonuçtur.

Bununda ötesinde bir sorgu, bir koleksiyon oluşturduğumuz zaman sonuçların listelenmesi uzun zaman alacak ve çok fazla nesne olduğu için bizler karmaşaya düşeceğiz, yönetimimiz zorlaşacak.

Bu zorlukların önüne geçebilmek için Configuration manager üzerinde var sayılan sınırlamalarda bulunmaktadır. Hatırlayalım, çok fazla veri olmaması için, ihtiyaç duymuş olduğumuz verilerin sağlıklı elde edilmesi için önerilerde bulunmuş ve birtakım sınırlamaları gerçekleştirmiştik. Bizim belirlediğimiz sınırlamaların haricinde ve Microsoft Technet üzerinde önerilen sınırlamaların haricinde SCCM sunucumuzun var sayılan yapılandırması için birtakım sınırlamalar bulunmaktadır ki bu sınırlamalardan bir tanesi Free Space ‘dir.

Tekrar hatırlayalım. Configuration Manager yazılımı bulunmuş olduğu organizasyon içinde birçok bilgiyi toplayabilir ama bizler bu sınırları genişletirsek. Aslında varsayılan yapılandırma içinde birçok bilgi bizlerin ihtiyacını karşılamaktadır.

Hardware Inventory Clesses

Hardware Inventory Clesses

Yukarıdaki örnekte \Administration\Overview\Client Settings \ Default Client Settings \ Hardware Inventory \ Hardware Inventory Clesses yolunu takip ediyoruz ve Set Classes bölümünde Logical Disk bölümü altında Free Space (MB) niteliğini aktif duruma getiriyoruz. Bu işlemden sonra CM sunucumuz organizasyon içinde bulunan bilgisayarların üzerinde ne kadar boş alan var bu bilgileri toplayabilecektir.

Tekrar hatırlayalım. Bu makalenin girişinde ne demiştik “hangi veriyi arıyoruz ve nerede arıyoruz ve en önemlisi aramış olduğumuz bu veri, keşif sınırları içinde mi”

Makalemizin Sorgu Nedir bölümünde odaklanacak olduğumuz bölüm bu aslında. Ne arıyoruz, nerede arıyoruz, aramış olduğumuz nitelik CM sunucusu tarafından Client tarafından istenildi mi?

Results for Free Disk Space

Results for Free Disk Space

\Monitoring\Overview\Queries\Results for Free Disk Space yolunu takip ettiğimiz zaman organizasyonumuz içinde bulunan bilgisayarların diskleri üzerindeki boş alan bilgilerini öğrenebilmekteyiz.

Sorgular ile organizasyonumuza hâkim oluyoruz. Bildiğiniz gibi bu veriler aslında CM istemcilerimiz üzerinde bulunmakta ve CM sunucumuz bu verileri istemciler üzerinden topluyor ve merkezi olarak bu verileri saklıyor ve kullanmamız için, raporlar oluşturmamız için bizlere sunuyor.

Sorgu Nasıl Oluşturulur

Configuration Manager yazılımı üzerinde bir sorgu oluştururken bilmemiz gerekli olan en önemli ip ucunu vermiştik. Hangi veriyi arıyoruz ve nerede arıyoruz.

Bir sorgu oluştururken bu iki soruyu mutlaka kendinize sormanız gerekmektedir. Aksi durumda problemsiz olarak yazılmış olan bir sorgu sizlere boş bir sonuç çıkartabilir. Şimdi örnekler ile bunu yapalım.

Create Query Wizard

Create Query Wizard

Configuration Manager yönetim ara yüzümüzde \Monitoring\Overview\Queries içinde Create Query sihirbazını çalıştırıyoruz. Office 16 Click to Run uygulamalarını arayacağım için ismi bu şekilde veriyorum ve Edit Query Statement bölümünü seçiyorum.

Create Query Criteria

Create Query Criteria

Edit Query Statement bölümü içinde Criteria bölümündeyiz. Bu bölüm içinde Criteria satırında yıldız simgesini görebiliyorsunuz ve Criteria bölümü boş durumda.

Şimdi, oluşturacak olduğumuz sorgu için kriterlerimizi belirleyeceğiz. Kriterlerimiz yani sorgumuz için temel sorularımız Hangi veriyi arıyoruz ve nerede arıyoruz soruları.

Criterion Properties

Criterion Properties

Criterion Type Simple Value. Where bölümü için Select bölümüne gidiyorum ve burada Installed Applications – Display Name özelliğini seçiyorum. Yani, CM istemcileri üzerinde yüklü olan uygulamalar için bir sorgu oluşturuyorum ve sorgu özelliğinde uygulamaların isimlerini getirmesini istiyorum.

Query Criteria Attribute

Query Criteria Attribute

Select Attribute ekranında diğer bilgileri görebilirsiniz. Ben bu bölümde yüklü olan uygulamaların isimleri haricinde ne zaman yüklendiğini, hangi firmanın yazılımı olduğu, hangi ürün grubuna ait olduğu gibi farklı nitelikleri de belirtebilir ve sorgu amacını değiştirebilirim. Bu nitelikler ile bir sorgudan neler beklediğimizin cevaplarıdır.

Criterion Values

Criterion Values

Benim bu sorgudan beklemiş olduğum cevap organizasyonum içinde Office 16 Click-to-run yazılımının yüklü olduğu istemcilerim kimlerdir?  Values bölümünde bu yazılımı seçiyorum.

Bu bölüm içinde bulunan değerler Configuration Manager veri tabanı içinde bulunan verilerdir. Bu verilerin oluşumu ilk keşif işlemi ile birlikte olur. CM istemcilerimiz üzerinde bulunan her bir uygulama CM veri tabanı içine yazılır ve Values olarak veri tabanı içinde kendine yer bulur. Burada görmüş olduğunuz yazılımlar sizin organizasyonunuz içinde bulunan yazılımların listesidir ve bu listeyi istemcileriniz oluşturmaktadır. Aradığınız bir uygulama bu bölüm içinde yer almıyorsa bilmelisiniz ki o uygulama Organizasyonunuz içinde herhangi bir CM istemcisi üzerinde bulunmamaktadır. Organizasyonunuz içinde binler ve hatta milyonlarca CM istemcisi olsun ve bunlardan sadece bir tanesi üzerinde X firmasının Y yazılımı olsun, o yazılım CM veri tabanı içinde yer alacaktır. Burada görmüş olduğunuz bütün değerleri CM istemcileri oluşturmaktadır.

Create Query Wizard Confirm

Create Query Wizard Confirm

Yapmış olduğumuz seçimler sonrasında oluşturmuş olduğumuz sorguyu görebilmektesiniz. Sorguya detaylı bir şekilde incelerseniz görebileceksiniz. Organizasyonumuz içinde CM istemcilerimizin ADD_Remove_Programs bölümünde Office 16 Click-to-run Localization Component yüklü durumda bulunan istemcilerin listesini getirmesini istedik.

Query Criteria and or Result

Query Criteria and or Result

Results for All Systems

Results for All Systems

Oluşturmuş olduğumuz sorgu Configuration Manager yönetim arayüzümüz içinde \Monitoring\Overview\Queries bölümünde yerini aldı ve sorgunun içine girdiğimiz zaman Office 16 Click-to-run Localization uygulamasının yüklü olduğu bilgisayarların listesini bu küme içinde görebilmekteyiz.

Query Criteria and or

Query Criteria and or

Oluşturmuş olduğumuz herhangi bir sorguyu değiştirebilir ve düzenleyebiliriz. Oluşturmuş olduğumuz sorgunun içine girdiğimiz zaman Criteria bölümüne giriyoruz ve bu sorgu üzerinde değişiklikler yapabiliyoruz. Yapacak olduğumuz değişikliklerde And/Or criteridir.

And ve or kriterleri ile neler yapabiliriz bu sorguyu nasıl değiştirebiliriz. Yukarıda Value değerlerine tekrar bakarsanız eğer görebileceksiniz. Office 16 Click-to-run uygulaması için birden fazla uygulama görülmektedir ve biz bunlardan sadece Localization uygulamasını seçmiştik. Value değerlerinde göreceğiniz gibi Licensing Component, Extendibility Conponent gibi farklı Office 16 Click-to-run uygulamaları bulunmaktadır. İhtiyacımıza göre bir sorguyu değiştirebiliriz.

Örnek olarak Office 16 Click-to-run Localization uygulamasını istemiştik And kriterini kullanıp sorgumuzu genişletebiliriz. Yani 16 Click-to-run Localization uygulamasını ve Extendibility Conponent ve Licensing Component uygulamasını aynı sorgu içinde görülmesini sağlayabiliriz ve sorgu ağımızı genişletebiliriz. Or kriterini kullandığımız zaman 16 Click-to-run Localization uygulamasını veya Extendibility Conponent uygulamasını veya Licensing Component uygulamalarını bu sorgu içinde göster diyebiliriz.

Oluşturmuş olduğumuz bir sorgu verecek olduğumuz kriterlere göre, ihtiyaçlarımıza göre bir çok farklı şekli alabilmektedir.

SCCM Query Collection

SCCM Query Collection

İlk oluşturmuş olduğumuz sorgunun daha sonra düzenlenmiş şeklini yukarıda görebilmekteyiz. Sorgumuzu Office 16 Click-to-run Localization uygulamasını veya Licensing Component uygulamasının yüklü olduğu bilgisayarların bu sorgu içinde görülmesini istedik ve gerekli değişiklikleri yaptık.

WQL Sorguları Nedir

Makalemizin bir önceki bölümünde yer alan and ve or bölümü içinde sorgu diline biraz giriş yaptık. Bu bölümde ise It-Pro özelliklerine sahip kişiler için biraz kafaları karıştıracağız ama çok derinlemesine inceleme yapmadan asıl konumuza devam edeceğiz.

Öncelikle WOL nedir bu soruya cevap verelim. WOL; WMI Query Language yani WMI Sorgu Dili ‘dir ve bizler bu sorgu dilini çok fazla bilmesek bile kullanmış olduğumuz birçok uygulama ve yönetim araçları arka tarafta bunu kullanmaktadır.

Configuration Manager yazılımının yapmış olduğu işlemi hatırlayalım.

System Information

System Information

Yukarıda bulunan System Information ekran görüntüsü bir CM istemcisi üzerinde bulunan ve istemcinin sahip olduğu bilgileri gösteren sistem bilgileridir. Bu bilgiler arasında istemcinin donanım bilgisi, kullanmış olduğu bellek, bellek kullanım durumu, sabit disk, sabit disk kullanım durumu, işletim sistemi, sürümü, yüklü bulunan yamalar, uygulamalar ve bunun gibi istemci bilgisayarına ait birçok bilgi yer almaktadır.

Configuration Manager yazılımı ne yapıyor, istemci üzerinde bulunan bütün bu verileri ajan üzerinden kendi üzerine çekiyor ve CM veri tabanı içinde saklıyor.

Makalemizin daha önceki bölümünde göstermiş olduğumuz Office 16 Clilck-to-run yazılımı üzerinden örnek verelim.  Office 16 Clilck-to-run yazılımı istemcimizin üzerinde yüklü durumda ve Software Envirotenment bölümünde bu uygulamanın verisi bulunmakta. CM ajanı bu veriyi CM sunucusuna gönderdi ve gelen bu veri, Configuration Manager veri tabanı içine yazıldı. Bizler bir tane sorgu yazdık ve Office 16 Clilck-to-run yazılımı hangi istemci üzerinde yüklü durumdaysa bu veriye ulaştık ve listeledik.

Yukarıdaki satır içinde Configuration Manager yazılımının yapmış olduğu işlemi özetlemiş olduk. Şimdi ise WMI Query Language dilinin bu sorgulara etkisi nedir bunlara bakalım.

WBEMTEST Powershell

WBEMTEST Powershell

WOL Query dilini benzerini birçok uygulama ve yönetim araçları tarafından kullandığımızı söylemiştik. Yukarıdaki ekran görüntüsü CM istemcisi üzerinde aslında bir Windows istemci üzerinde alınan bir PowerShell sorgusu ve sorgu içinde istediğimiz istemci üzerinde otomatik başlayan ama çalışmayan servisler hangileridir.

get-wmiobject -query “select * from win32_service where startmode=’auto’ AND state=’stopped'” -computer DESKTOP-36Q7Q7D

WBEMTEST

WBEMTEST

Bu PowerShell çıktısının aynısı bu sefer WMI olarak sorguluyoruz. Bu işlemi WBEMTEST aracı ile gerçekleştiriyorum. Bu araç bütün Windows işletim sistemleri üzerinde bulunmaktadır ve Windows Management Instrumentation Tester olarak bilinmektedir.

WBEMTEST Query Result

WBEMTEST Query Result

WBEMTEST aracının bizlere vermiş olduğu sorgu sonucu PowerShell sorgusu ile aynı.

Kullanmış olduğumuz yönetim araçlarına göre farklı grafik ara yüzlere sahibiz ve kullanmış olduğumuz yönetim araçlarının özelliklerine göre bizler farklı sorgu dillerini kullanabiliyoruz. Configuration Manager yazılımıysa arka tarafta WOL Query dilini kullanmaktadır.

Windows Management Instrumentation Tester

Windows Management Instrumentation Test

WBEMTEST aracını bu sefer Configuration Manager yazılımı üzerinde çalıştırıyorum ve Query bölümüne

select * from SMS_R_SYSTEM

Sorgusunu yazıyorum. Namespace bölümüne bakarsanız eğer bağlantı yapmış olduğum bölüm SCCM sunucumuzun Site ismi ve sizlerde bu testi kullanmak isterseniz SCCM sunucunuzun Site ismini yazarak bağlantı yapabilirsiniz.

SCCM WBEMTEST Query Result

SCCM WBEMTEST Query Result

Sorgumuz toplam 848 adet objeyi buldu.

SCCM Query Collection

SCCM Query Collection

WBEMTEST aracının bulmuş olduğu 848 adet objeyi doğrulayalım. CM yönetim ara yüzünde keşfedilen nesnelere \Assets and Compliance\Overview\Devices\All Systems bölümünden kontrol ediyoruz ve 850 adet nesnenin keşfedildiğini görebiliyoruz.

Evet, WBEMTEST aracının bulmuş olduğu obje sayısı doğru. Şimdi bu objelerin içeriğini ve birkaç niteliği inceleyelim.

WBEMTEST Object Editor

WBEMTEST Object Editor

Seçmiş olduğumuz herhangi bir objenin içeriğine girdiğimiz zaman WBEMTEST aracının dilinde objemizin IP adres bilgisinden donanım bilgisine, yüklü olan uygulamalara kadar birçok bilgiye erişim sağlayabilmekteyiz. Bu bilgiler istemcimiz üzerinde gördüğümüz System İnformation bilgileri ile aynıdır ve bizler configuration manager sunucumuz üzerinde merkezi olarak bu verilere ulaşmakta, query özellikleri ile kümeleme yapabilmekte ve ileride paylaşacağımız Configiration Manager Raporlarının incelenmesi bölümünde raporlarının alınması ve tekrar ileride paylaşacak olduğumuz koleksiyon makalesi ile eylem yapma işlemlerini yerine getirebileceğiz.

WBEMTEST Powershell Result

WBEMTEST Powershell Result

$WQL = ‘select * from SMS_R_SYSTEM’
$WMI = Get-WmiObject -Namespace Root\SMS\Site_
SCCM Site Name -Query $WQL
$WMI

Son olarak WQL Sorgularının WMI olarak dönüştürülmüş ve PowerShell aracı örnek sorgularını paylaşıyorum. WBEMTEST aracı ile 848 adet objeyi bulmuştuk ve detaylarını görmüştük. Bu PowerShell komutu ise WBEMTEST aracının bulmuş olduğu objelerin listesini ve alt satırlarını bizlere sunmaktadır.

Makalemiz içinde yer alan WQL Sorguları Nedir bölümü daha çok teori bir bölüm olup gerçek hayat uygulamalarında bir problem yaşanmadığı sürece çok fazla kullanmayacak olduğumuz bölümdür.

Hazır Sorgular ile Çalışma (Query import)

Sorgu Nasıl Oluşturulur bölümünde Configuration Manager sunucusu için adım-adım nasıl sorgu oluşturulur bunları öğrenmiştik. İlgili bölüme bakarsanız eğer işlerin biraz karmaşık ve hata olasılığının çok yüksek olduğunu fark edeceksiniz. Nedeni basit. WQL Sorguları Nedir bölümünde aktarmaya çalıştığımız bir sorgu oluşturmak için, bir sorgunun doğru veya yanlış çalışmasına etki edecek çok fazla kriter var ve hata yapma ihtimalimiz her zaman yüksek. Yanlış yazmış olduğumuz bir sorgu bazen içi boş gelebilir ve bunun neticesinde sadece eylemler yapamayız. Ama birde şöyle bir durum var, sorguyu yanlış yazdığımız zaman yanlış sonuçlar gelirse ve bu yanlış sonuçların gelmiş olduğu sorgu kümesine bir eylem uygularsak işler o zaman kötü bir durum alacaktır.

İlerleyen makalelerde Configuration Manager ‘in yeteneklerini inceleyeceğimiz makalelerde bunları zaten örnekleyeceğiz. Ama biz şimdi basit bir eylem yanlışlığı için örnek verelim ve bu yanlışlık sonrasında bizleri neler bekler bunları görelim.

select SMS_R_System.NetbiosName from 
SMS_R_System where SMS_R_System.NetbiosName like “
ANK
%”

Sorguda şunu istiyoruz, organizasyonum içerisinde bulunan bilgisayarların Netbios isimleri ANK ile başlayanları bir sorgu kümesi içinde toplamak.

Sorgu çalıştı ve ANK ile başlayan bilgisayarları bu sorgu kümesi içinde topladı. Ve biz bu sorguda herhangi bir başka kriter uygulamadık, sorguyu daraltmadık veya başka özellikler ile nitelemedik. Ve sonrasında bu sorgu kümesine XYZ uygulamasının yüklenmesi için Configuration Manager tarafından uygulamalarımızı dağıttık.

Sonuç, organizasyonumuz içinde bulunan netbios isimleri ANK ile başlayan bütün bilgisayarlara bu XYZ uygulamasını dağıtmış olduk. ANK netbios ismi vermiş olduğum örnekte Ankara lokasyonunu belirtmekte ve Configuration Manager yazılımı Ankara lokasyonu içinde bulunan bütün son kullanıcı işletim sistemlerine, sunucu işletim sistemlerine XYZ yazılımını yükledi. Amacımız sadece son kullanıcı işletim sistemlerine yüklemek olsaydı eğer bu sorgu içinde sunucu işletim sistemi kriteri belirtmediğimiz için ANK ile başlayan bütün sunuculara son kullanıcılar ile birlikte XYZ uygulamasının operasyonlarını yapmış olduk.

Sorgu Nasıl Oluşturulur bölümünde kriterlerden and/or ilişkisinden belirtmiştik. Bu sorgu eğer sadece son kullanıcı işletim sistemlerine yüklenmesini isteseydik sorguya aşağıdaki and sorgusu ile birleştirmemiz gerekecekti.

select SMS_R_System.NetbiosName,SMS_R_System.OperatingSystemNameandVersion from  SMS_R_System where SMS_R_System.OperatingSystemNameandVersion like “%Workstation 6.1%”

İki sorguyu birleştirdiğimiz zaman sorgu sonucu ne olacak. Netbios ismi ANK ile başlayan ve Workstation 6.1 (Windows 7) sürümüne sahip olan bilgisayarlara XYZ yazılımını dağıt.

Eğer amacımız Ankara lokasyonu içinde bulunan Windows 7 bilgisayarlara XYZ yazılımını dağıtmak olsaydı sorguyu bu şekilde birleştirmemiz gerekecekti.

Yukarıdaki sorgu içinde bulunan %Workstation 6.1% bölümünü %Server 6.1% olacak şekilde değiştirdiğimiz zaman sorgumuzun içeriği Windows Server 2008 R2 olarak değişecektir.

Aşağıdaki liste içinde Windows sunucu ve son kullanıcı işletim sistemlerinin versiyon bilgileri bulunmaktadır. Bu versiyon bilgileri Server ve Workstation parametreleri ile son kullanıcı ve sunucu işletim sistemi olmak üzere değişmektedir.

[table id=6 /]

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 inner join SMS_G_System_SYSTEM on SMS_G_System_SYSTEM.ResourceId = SMS_R_System.ResourceId where SMS_G_System_SYSTEM.SystemRole = “Server

Yukarıdaki sorguda organizasyonum içinde bulunan bütün sunucuları getirmesini istediğim. Sorguya detaylı bir şekilde baktığınız zaman DomainORWorkgroup satırını görebileceksiniz. Bu or parametresine bir örnektir ve organizasyonumuz içinde bulunan bütün sunucuları bu sorgu içinde toplanmasını istedik.

select SMS_R_System.NetbiosName, SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName from  SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceId = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like “%Visio%”

Yukarıdaki sorguda organizasyonum içinde bilgisayarların ADD Remove Programs bölümü içinde Visio uygulaması yüklü olan bilgisayarları getirmesini istedik.

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 SMS_R_System.ResourceId not in (select SMS_R_SYSTEM.ResourceID from SMS_R_System inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceId = SMS_R_System.ResourceId where SMS_R_System.IsVirtualMachine = ‘True’) and SMS_R_System.OperatingSystemNameandVersion like “Microsoft Windows NT%Server%”

Yukarıdaki sorguda organizasyonum içinde bulunan Windows işletim sistemine sahip sanal makinelerin olmasını istedik.

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 inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceID where SMS_G_System_COMPUTER_SYSTEM.SystemType = “x64-based PC

Yukarıdaki sorguda organizasyonum içinde bulunan 64 Bit işletim sistemine sahip makinelerin olmasını istedik.

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 inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceID where SMS_G_System_COMPUTER_SYSTEM.Manufacturer like “HP%” or SMS_G_System_COMPUTER_SYSTEM.Manufacturer like “Hewlett-Packard%”

Yukarıdaki sorguda organizasyonum içinde bulunan Hewlett-Packard marka bilgisayarların olmasını istedik.

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 inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceID where SMS_G_System_COMPUTER_SYSTEM.Manufacturer like “Dell%”

Yukarıdaki sorguda organizasyonum içinde bulunan Dell marka bilgisayarların olmasını istedik. Dikkat ettiyseniz son iki sorguda uygulama, işletim sistemi bağımsız donanım sorguları ile çalıştık ve organizasyonumuz içinde kaç tane Dell marka bilgisayar kaç tane Hewlett-Packard bilgisayar var bunları öğrendik.

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 inner join SMS_G_System_VIDEO_CONTROLLER on SMS_G_System_VIDEO_CONTROLLER.ResourceId = SMS_R_System.ResourceId where SMS_G_System_VIDEO_CONTROLLER.Name = “Intel-HD-Graphics-Family

Yukarıdaki sorguda organizasyonum içinde bulunan Intel-HD-Graphics-Family ekran kartı olan bilgisayarların bu sorgu içinde olmasını istedik.

Select SMS_R_System.ClientEdition from SMS_R_System where SMS_R_System.ClientEdition = 5

Yukarıda biraz daha özel bir sorgu var. Bu sorgu organizasyonumuz içinde bulunan MAC bilgisayarları öğrenmemiz için kullanılmaktadır. ClientEdition 5 parametresi MAC bilgisayarlar için ayrılmıştır.

  • 0 Windows Desktop or laptop computer
  • 1 Windows ARM-based device (running Windows RT)
  • 2 Windows Mobile 6.5
  • 3 Nokia Symbian
  • 4 Windows Phone
  • 5 Mac computer
  • 6 Windows CE
  • 7 Windows Embedded
  • 8 iOS
  • 9 iPad
  • 10 iPod Touch
  • 11 Android
  • 12 Intel System On a Chip
  • 13 Unix and Linux servers

Parametreyi yukarıdaki Client edition sürümleri ile değiştirirsek istemiş olduğumuz istemcileri ilgili sorgu içinde görebilmekteyiz.

Makalemizin bu bölümü içinde bir takım sorgu örnekleri vermeye ve Configuration Manager ile hangi istemci verilerini sorgu kümeleri içinde toplayabiliriz bunları aktarmaya çalıştım. Sorgulardan anlaşılacağı gibi organizasyonumuz içinde bulunan bütün nesneleri kümeleyebilmekteyiz ve ihtiyaçlarımız çerçevesinde bu sorgu kümelerine eylemler yapabilmekteyiz. İhtiyaç duymuş olduğunuz bu sorguları bizler yazabildiğimiz gibi Microsoft technet üzerinde ve bağımsız bloglar üzerinde sayısız ve esnetilebilir birçok sorgu bulunmaktadır ve ihtiyaçlarımızı karşılamaktadır.

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 inner join SMS_G_System_SYSTEM_ENCLOSURE on SMS_G_System_SYSTEM_ENCLOSURE.ResourceID = SMS_R_System.ResourceId where  SMS_G_System_SYSTEM_ENCLOSURE.ChassisTypes in ( “8“, “9“, “10“, “14” )

Yukarıda biraz daha özelleştirilmiş bir sorgu var. Bu sorgu organizasyonumuz içinde bulunan portatif bilgisayarları öğrenmemiz için kullanılmaktadır.  System Enclosure Chassis parametresi 8,9,10 ve 14 kodları portatif bilgisayarlar için kullanılmaktadır ve bu kodları yukarıdaki Query içine eklediğimiz zaman kurumumuz içinde bulunan taşınabilir bilgisayarları kümelemiş olmaktayız. Bu sorgu içinde kullanabileceğimiz diğer kodların listesi aşağıda verilmiştir.

  • Other (1)
  • Unknown (2)
  • Desktop (3)
  • Low Profile Desktop (4)
  • Pizza Box (5)
  • Mini Tower (6)
  • Tower (7)
  • Portable (8)
  • Laptop (9)
  • Notebook (10)
  • Hand Held (11)
  • Docking Station (12)
  • All in One (13)
  • Sub Notebook (14)
  • Space-Saving (15)
  • Lunch Box (16)
  • Main System Chassis (17)
  • Expansion Chassis (18)
  • SubChassis (19)
  • Bus Expansion Chassis (20)
  • Peripheral Chassis (21)
  • Storage Chassis (22)
  • Rack Mount Chassis (23)
  • Sealed-Case PC (24)

Include ve Exclude Collections

İlk okulda öğrenmeye başladığımız ve Üniversite sınavlarında bile karşımıza çıkan matematik konularının en anlaşılanı ve bazen en karmaşık soruların başını çeken kümeler. Küme nedir?

“Kesin olarak ifade edilen nesnelerin herhangi bir şekilde bir araya getirilmesiyle oluşturulan topluluklara küme denir”

Configuration Manager Sorgu Yöntemleri makalemizin bu bölümü içinde Include ve Exclude Collections kurallarını inceleyeceğiz. Bu bölümünü incelemeden önce küme mimarisini iyi bilmemiz gerekiyor. Makalemiz içinde bahsettik, SCCM ajanları kurumumuz içinde bulunan bütün nesneleri buluyor ve bunları nitelendiriyor. Küme tanımında öğrendik “kesin olarak ifade edilen nesne” olarak keşif sonuçlarını belirli Collection içinde toparlıyor.

Include ve Exclude Collection oluştururken bu kesin ifade ile bulduğumuz, keşfettiğimiz nesneleri yeni bir collection için kullanılmasını veya kullanılmamasını sağlıyoruz.

Bu bölüm için hedefimizi açıklayalım. Kurumumuz içinde Dell marka laptop ve masaüstlerini kimler kullanıyor, hangi departman kullanıyor, kaç tane Dell marka bilgisayarım var, öğrenmek istiyoruz.

SCCM Device Collection

SCCM Device Collection

Bir önceki bölümün son sorgusundan paylaşmış olduğum System Enclosure Chassis sorgusunu kullandım ve kurumum içinde bulunan laptopların listesini çıkarttım.

Hatırlayalım System Enclosure Chassis numarası “8“, “9“, “10“ve “14” olanlar taşınabilir bilgisayarlardı.

All Client isimli varsayılan Collection içinde 1671 adet bilgisayar var ve bu sorguyu kullanarak 1171 adet Laptops olduğunu öğrendim. Portatif bilgisayarlarımı öğrenmiş oldum.

SCCM Limiting Collection

SCCM Limiting Collection

Dell Laptop PC isminde yeni bir tane Collection oluşturuyorum ve bu collection sorgunusu Limiting Collection bölümünde sınırlandırıyorum. Sınırım All Laptops isimli az önce oluşturmuş olduğum Collection. Yani bu Collection bu sınırdın dışında bulunan nesneleri aramayacak.

SCCM Criteri or and filter

SCCM Criteri or and filter

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 inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId where SMS_G_System_COMPUTER_SYSTEM.Manufacturer = “DELL__or SMS_G_System_COMPUTER_SYSTEM.Manufacturer = “Dell Inc.

İkinci sınırım ise Criteria bölümü. Dell Laptop PC isimli collection Criteria bilgisi yukarıda görülmekte. Sadece portatif bilgisayarları arayacak ve bu portatif bilgisayarların üreticisi (Manufacturer) DELL__ veya Dell Inc olanların bu collection içinde olmasını istiyorum.

Oluşturmuş olduğum bu collection sayesinde kurumum içinde bulunan bütün Dell markalı taşınabilir bilgisayarları öğrenmiş oldum.

Dell Desktop Collection

Dell Desktop Collection

Yukarıda vermiş olduğum bilgilerin benzerini masa üstü bilgisayarlarım için kullanıyorum. Dell Desktop isimli bir Collection oluşturuyorum ve bu collectionun All Laptops isimli collectionun içinde bulunan nesnelerin (bilgisayarların) bu Collection içinde olmasını istemiyorum. Exclude parametresi ile bu bilgisayarları bu küme (collection) içinden ayırıyorum.

İkinci oluşturmuş olduğum Rule ise daha önce oluşturulan Dell markalı Laptopların sorgusu ile aynı. Dell markalı bilgisayarların gelmesini istiyorum.

SCCM All Laptops Collection

SCCM All Laptops Collection

Sonuç yukarıdaki gibi. Organizasyonum içinde 1671 adet bilgisayar var.

Kurum içinde bulunan 1671 adet bilgisayarımın 1171 tanesinin Laptop olduğunu öğrendim.

Bu 1171 Laptopun 1129 tanesinin Dell markalı olduğunu include ve exclude kuralları ile ayırmış olduk.

2 thoughts on “Configuration Manager Sorgu Yöntemleri

  1. Oğuz

    Merhaba Hocam,

    Makalelerinizden faydalanarak Sccm öğrenmeye çalışanlardan sadece birisiyim 🙂 Şöyle bir sorunum var;
    SMS_CLIENT_CONFIG_MANAGER sürekli kendi kendine hata veriyor.Start yapıp düzeltiyorum biraz zaman geçince tekrar hataya düşüyor.
    Bu durum ile ilgili ne yapabilirim ?
    Değerli yorumlarınız için şimdiden teşekkürler.

    Reply
    1. fatihkaraalioglu Post author

      Merhaba;
      Yorumunuz spam’a düşmüş ve temizlik yaptığım zaman fark ettim. CCM servisinden mi bahsediyoruz, almış olduğunuz hatayı paylaşmanızı isteyeceğim.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *