1. Ana Sayfa
  2. Configuration Manager (SCCM)
  3. Kullanılmayan Programların Client Makinelerden Otomatik olarak Kaldırılması Bölüm-2

Kullanılmayan Programların Client Makinelerden Otomatik olarak Kaldırılması Bölüm-2

090918_1413_Kullanlmaya31.png

Bir önceki makalede, makinelerde yüklü ancak belirli bir süredir kullanılmayan programları, SCCM ile nasıl izleyebileceğimizi ve raporlayacağımızı anlattık.

Bu makalede de sizlere bu süreci ile iş akışı haline getirip nasıl otomatize edeceğimizi anlatacağım.

Öncelikle operasyonel sürecimiz için ben 3 (iş akışı) hazırladım. Daha fazla veya daha az ile de bu iş yapılabilir tabiki.

Runbook’ların hazırlanmış son halinin ekran görüntülerine öncelikle bir bakalım. Ne iş yaptıklarını anlattıktan sonra her bir Runbook ve kullandığım aktivitelerin detaylarına da adım adım birlikte bakacağız.

İlk Runbook: 1.0 Begin Process to Microsoft Visio

SCCM’de Microsoft Visio’nun kullanılmayan makinelerden kaldırılması için bir collection oluşturduğumuzu ve bu collectiona Visio Uninstall paketini deploy ettiğimizi varsayarak, 2 hafta da bir olacak şekilde collection içerisindeki makineleri silip yeniden güncel kullanılmayan makine listesini collectiona eklemeyi planladığımızı düşünelim.

Bu ilk runbook’u 2 hafta da bir çalışacak şekilde diğer Runbook’ların çalışmasını tetiklemek için hazırladık.

Resim-1

2. Runbook: Delete Machine from Collection

Bu runbook’ta öncelikle daha önce collectiona eklenmiş ,programın kullanılmadığı makinelerin uninstall deployment sürecini database’den kontrol ederek, uninstall işlemi başarılı olanları collection’dan silinmesi ve başarılı olmayan makinelerin de detaylı bir şekilde hataları ile birlikte kontrol edilmek üzere kaydedilmesi için hazırlandı.

Resim-2

3. Runbook: Not Usage for Microsoft Visio

Son olarak bu iş akışı da, SCCM DB’den Microsoft Visio’nun son 3 aydır kullanılmadığı güncel makine listesinin yeniden sorgu ile çekilmesi ve arşivlenmesi, sonrasında da güncel listenin daha önce oluşturulmuş Visio Uninstall collection içerisine otomatik olarak eklenmesi için oluşturuldu.

Resim-3

İş akışları ile ilgili genel detay bilgileri verdikten sonra şimdi ilk Runbook’tan başlayarak kullanılan aktiviteleri detaylı bir şekilde açıklayalım:

1. Begin Process to Microsoft Visio

Resim-4

Başlangıç olarak “Monitor Date and Time” aktivitesini kullanıyor ve özelliklerine gelerek, hergün saat 12’de çalışacak şekilde düzenliyoruz ve bir sonraki aktiviteye geçiyoruz. Bu sayede Runbook’u sürekli “Run” konumda bıraktığımızda günde 1 defa çalışacak ve bir sonraki “Check Schedule” aktivitesinin durumuna göre iş akışı devam edecek. Bu süre benim belirlediğim bir süre ve siz daha farklı ayarlayabilirsiniz. Ayarı yaptıktan sonra devam ediyoruz.

Resim-5

2. aktivite olarak Check Schedule aktivitesini kullanıyoruz. Amacımız da iş akışının bizim belirlediğimiz zaman diliminde çalışmasıdır. Özelliklerine geldiğimizde bizden hazırlanmış bir Schedule seçmemiz isteniyor.

Resim-6

Bunun için öncelikle bir schedule oluşturmalıyız. Orchestrator Console sol menüden Global Settings ->Schedules kısmına gelip New-> Schedule diyerek devam ediyoruz.

Resim-7

General kısmında schedule’a bir isim verdikten sonra devam ediyoruz.

Resim-8

Details sekmesinde zaman aralığı belirliyoruz. Ben iş akışlarının her ayın 2. ve 4. Cuma’sı çalışmasını istediğimden bu şekilde ayarlıyorum. Ayar sonrasında Finish diyerek işlemi tamamlıyoruz.

Resim-9

İşlem sonrasında schedule template hazır durumdadır. Artık aktivite içerisinden seçebiliriz.

Resim-10

Yeniden iş akışına gelip “Check Schedule” aktivitesi özelliklerinden oluşturduğumuz template’ı seçerek devam edebiliriz.

Resim-11

Aktiviteleri sürükle bırak yöntemi ile birbirine linkliyor yani bağlıyoruz. Bu bağlantı linkleri genelde default olarak bırakılsa da kimi zaman custom ayar yapmak gerekebiliyor. Bu bağlantı linklerine çift tıklayıp özelliklerine baktığımızda, bir önceki aktivitenin hangi durumda bitmesi ile bir sonraki aktiviteye geçilmesinin kriterlerini belirleyebildiğimizi görebiliriz.

Check Schedule aktivitesinden sonra bizim belirlediğimiz zaman dilimi gelmişse iş akışının bir sonraki aktivite ile devam etmesi için aktivite sonucunu kontrol etmemiz gerekiyor. Bunun için bağlantı linkine tıklayarak kriteri girmek için devam ediyoruz.

Resim-12

Gelen Link Properties ekranında, General sekmesinde bağlantı linkine bir isim vererek Include sekmesine geçiyoruz.

Resim-13

Include sekmesinde Check Schedule aktivitesinin “Conforms to Schedule” sonucunu kontrol ettireceğiz. Bu değer, aktivite belirlediğimiz zaman diliminde çalıştığında “True” olarak geri dönüyor. Dolayısı ile de biz de bu kriteri belirliyor ve devam ediyoruz.

Resim-14

Bir sonraki aktivite olan Get Collection Members aktivitesini SC Configuration Manager aktiviteleri arasından seçerek kullanıyoruz. Bu aktiviteyi kullanmak için SC Configuration Manager Integration Pack’ini Orchestator’a import etmeniz ve sonrasında Runbook Designer Console üst menüden Options kısmına gelerek kullandığınız SCCM ile ilgili connection bağlantılarını girmeniz gerekiyor.

Resim-15

SCCM connection ayarlarını yaptıktan sonra aktiivteden ilgili connection’ı seçiyoruz. Alt kısımda Visio Uninstall için hazırladığımız Collection ID veya Collection Name ‘i yazarak devam ediyoruz. Ben ID yazdım. Siz isim de yazabilirsiniz.

Resim-16

Get Collection Members aktivitesinden sonra hangi aktivite ile devam edileceğine karar vermemiz gerekiyor. Durumu şöyle açıklayalım:

Eğer bu iş akışı ilk defa çalışacak ve hâlihazırda oluşturulan uninstall collection’ı içerisinde herhangi bir üye henüz yok ise o zaman “Not Usage for Microsoft Visio” iş akışı ile devam edierek collectiona programı kullanmayan makineler eklenecek.

Süreç daha önce çalışmış ve collection içerisinde makineler var ise o zaman uninstallation deployment işlemi başarılı olan makinelerin collection’dan silinmesi için “Delete Member from Collection” iş akışı çalışarak sonrasında diğer aktiviteye geçilecek.

Detaylı bilgileri paylaşıtıktan sonra link özelliklerinden kriterleri ayarlamak için devam ediyoruz.

Resim-17

Üst linkin özelliklerinden,Collection Member Count’unu kontrol edip 0 (sıfır) değilse “Delete Member from Collection” aktivitesi ile devam etmesi için gerekli ayarı giriyor ve devam ediyoruz.

Resim-18

Alttaki linki de tam tersi kriterde olacak şekilde ayarlayarak bir sonraki aktivite ile devam ediyoruz.

Burada “Invoke Runbook” aktivitesini kullarak linklerden sonra hangi Runbook’un çalışması tetiklenecekse onu seçiyor ve iş akışını tamamlıyoruz.

Resim-19

Birinci iş akışından sonra şimdi de ikinci Runbook’ta kullandığımız aktivitelerin detaylarına birlikte bakalım.

  1. Delete Member from Collection

Resim-20

İlk olarak “Initialize Data” aktivitesi ile Runbook’a başlıyoruz. Bu aktiviteyi herhangi bir parametre girmeniz gerekiyorsa kullanabileceğiniz gibi standard runbook başlangıcında da kullanabilirsiniz. Herhangi bir ayar yapmadan default haliyle bırakabilir ve devam edebiliriz.

Resim-21

İkinci aktivite yine standard “Qery Database” aktivitesi olacak. Burada Visio Uninstall collection içerisindeki makinelerden, programın başarılı olarak kaldırıldığı makinelerin listesini alabileceğimiz bir sorgu yazıyoruz.

Resim-22

Bu aktivitede Connection sekmesi de oldukça önemli. Zira aktivitenin hangi SQL Server ve hangi DB’de çalışacağını bu kısımda girmemiz gerekiyor. Aksi takdirde aktivite hata verecektir.


Resim-23

Connection sekmesinde olduğu gibi Timeout sekmesinde de custom ayar yapmak gerekebilir. Bu kısımda yazdığımız sorgunun ne kadar sürede cevap döndüğünü analiz edip ona göre aktivitede bir timeout süresi girmemiz gerekiyor. Bu süre SQL server’ların ve yazılan query’nin detaylarına göre değişiklik gösterebilir.


Resim-24

Aktivite içerisinde kullandığımız Query aşağıdadır. Burada değişken olarak

SiteID: Visio Uninstal Collection ID

Assignment Name: Visio Uninstall programının oluşturulan collection’a deploy edilmesi sonrasında arka planda bir Assignment Name oluşuyor. Bu Assignment Name ‘i bulup yazıyoruz.

Tüm deployment’lar sonrasında oluşan Assignment Name’lerin detaylarını aşağıdaki sorgu ile SCCM DB’den çekebilirsiniz.

Bir sonraki “Delete Collection Rule” aktivitesinde SCCM Connection’ı seçtikten sonra alt kısımda bazı ayarlar karşımıza çıkıyor. Burada;

Collection: Vision Uninstall Collection ID’yi yazıyoruz.

Membership Rule olarak da bir önceki aktiviteden makine isimlerini almamız gerekiyor. Bunun için Membership Rule kriterinde sağ tıklayarak Subscribe->Published Data diyerek devam ediyoruz.

Diğer ayarları default olarak bırakıyoruz.

Resim-25

Gelen Published Data ekranına baktığımızda bir önceki aktivitenin çalışması sonrasında çıkacak sonuçları görebiliriz. Orchestrator’da aktiviteler arasında bu şekilde verileri alabiliyor ve kullanabiliyoruz.

Bu aktivite sonuçlarından “Full line as a string with field seperated by” seçeneğini seçerek devam ediyoruz.

Resim-26

Bir sonraki aktivitemiz olan “Junction” aktivitesini default olarak bırakabilir ve devam edebiliriz. Bir önceki aktivitede makineler tek tek alınıp collection’dan silindiği için Delete Collection Rule aktivitesi birçok kez çalışıyor olacak. Bir sonraki aktivite çalışırken bir önceki aktivitenin çalışma sayısı kadar kendisini çalıştırabiliyor. Bu nedenle araya “Junction” koyarak bu durumu engellemiş oluyoruz.

Resim-27

Bir sonraki aktivite yine “Query Database” aktivitesi ve bu aktivite ile de Visio programı için yapılan uninstallation deployment işleminde hata alınan makinelerin listesini ve detaylarını bir query ile alıyoruz.

Resim-28

Kullandığımız query’de aşağıdaki gibidir. Burada değişken olarak

Assignment Name gerekiyor. Bir önceki aktivitede bu Assignment Name’leri çekebileceğimiz query’i kullanmıştık. Bu query yardımı ile yine aynı Assignment Name’i elde edebiliriz.

Hata alınan makinelerin listesini database’den aldıktan sonra bu verileri kontrol etmek ve arşivlemek için “Append Line” aktivitesini kullanıyoruz.

Özelliklerine baktığımızda File olarak herhangi bir paylaşım veya lokalde bir folder altında bir txt oluşturarak verilerin bu txt dosyasına yazılması için ilgili txt file’ı seçiyoruz.

Text kısmında ise bir önceki aktiviteden hangi verilerin txt file’a yazılacağını belirliyoruz.

Sağ tıklayarak Subscribe-> Published Data seçeneğini seçerek devam ediyoruz.

Resim-29

Bir önceki Query Database aktivite sonuçlarından yine “Full line as a string with field seperated by” seçeneğini seçerek iş akışını tamamlıyoruz.

Resim-30

Son olarak üçüncü ve son Runbook olan “Not Usage for Microsoft Visio” iş akışının detaylarına bakalım.

  1. Not Usage for Microsoft Visio

Resim-31

Bir önceki iş akışında olduğu gibi iş akışında da “Initialize Data” aktivitesi ile başlıyoruz. Default olarak herhangi bir ayar yapmadan devam edebiliriz.

Resim-32

Bir sonraki aktivitemiz olan “Query Database” aktivitesi ile Microsoft Visio programının son 3 aydır kullanılmadığı makinelerin güncel listesini SCCM DB’den çekeceğiz. Bu query’i bir önceki makalede sizlerle paylaşmış ve bu makale için kullanacağımızı söylemiştim. İlgili query’i editleyip bu aktivite içerisine kopyalayarak devam ediyoruz.

Resim-33

Bir sonraki aktivite olan “Append Line” aktivitesi ile yine query ile SCCM DB’den çektiğimiz verileri bir txt file’a yazdırarak arşivliyor ve bir sonraki aktivite ile devam ediyoruz.

Resim-34

Junction aktivitesi kullanarak yine bir sonraki aktivitenin kendini tekrar etmesini engelliyoruz.

Resim-35

Junction aktivitesinden sonra Get Collection Members aktivitesi kullanarak Visio Uninstall Collection’ının ID’sini yazıyor ve devam ediyoruz.

Resim-36

Yine kurtarıcımız olan bir Junction aktivitesi daha kullanıyor ve devam ediyoruz.

Resim-37

Son aktivitemizde bir powershell aktivitesi kullanacağız. Bu aktivitede, query ile db’den aldığımız not usage makineleri, powershell yardımı ile uninstall collection’ı içerisine ekleme işlemini gerçekleştireceğiz.

Aktivite özelliklerine baktığımızda, powershell script’i ilk sekmeye yazacağız/kopyalayacağız.

Hostname olarak bu powershell scriptin hangi sunucu veya makine üzerinde çalışmasını istiyorsak onu yazıyoruz. Ben bu scripti SCCM Primary Site Server üzerinde çalşacak şekilde gerekli ayarı yaptım. İlgili server üzerinde yetkili bir account ve password girdikten sonra script’in detaylarına bakalım.

Resim-38

Bu arada bunun için kullandığımız aktivite ise “Execute Powershell Script”.

Resim-39

Kullandığımız powershell script, bir txt dosyası içerisindeki makineleri belirli bir collection içerisine import ediyor.

Resim-40

Aktivite içerisinde kullanılan powershell scripti aşağıda bulabilirsiniz. Script içerisindeki değişkenler

$CMSiteCode SCCM Site Code

$File : Bu iş akışı içerisinde “Append Line” aktivitesi ile query sonucunu yazdırdığımız txt dosyasını kullanabiliriz.

Son aktivitenin de ayarlarını yaptıktan sonra bütün iş akışlarının ve kullanılan aktivitelerin detaylarını tamamladık. Şimdi ilk Runbook’a sağ tıklayak Run diyerek çalıştırmamız yeterli olacak. Bundan sonra belirtilen tarihlerde ilgili iş akışları çalışarak gerekli işlemler otomatik olarak gerçekleşecek.

Resim-41

Sizler de Microsoft Visio programını örnekleyerek yaptığımız bu süreci özellikle kullandığınız farklı uygulamalar için hazırlayabilir, bu sayede lisanslı programlar ile ilgili lisans adetlerinin envanter kontrolünü bu şekilde gerçekleştirebilirsiniz.

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar:

https://www.mshowto.org

TAGs: , Orchestrator, Runbook,,,, ,, Script,

Yorum Yap

Yazar Hakkında

Ayhan Aksu, Kocaeli üniversitesi Elektronik ve Haberleşme Mühendisliği’nden 2010 yılında mezun olmuştur. Üniversite sonrası yaklaşık 6 yıl Sentim Bilişim Teknolojileri A.Ş.’de Microsoft ürünleri ile ilgili Teknik Danışman olarak çalışmış ve özellikle System Center ürünleri ile ilgili birçok projeye imza atmıştır. Şu anda IBTECH’de Sistem Mühendisi olarak çalışmaya devam etmektedir. Bilişim sektörünün içerisinde aktif olarak çalışmalarını sürdüren bir danışman olarak System Center ürün ailesi ve Microsoft Azure platformu ile ilgili danışmanlık hizmetlerine ve eğitimler vermeye devam etmektedir. Sahip olduğu bazı sertifikalar : MS: Implementing Microsoft Azure Infrastructure Solutions MCT: Microsoft Certified Trainer (Since 2013) MCSA: Windows Server MCSE: Cloud Platform and Infrastructure, Private Cloud, Server Infrastructure MCTS: Administering and Deploying System Center Configuration Manager, Designing, Assessing, and Optimizing Software Asset Management (SAM)

Yorum Yap