1. Ana Sayfa
  2. Service Manager (SCSM)
  3. SCSM 2012 R2, Powershell ile Nasıl Kullanılır? – PowerShell Workflows – Bölüm 5

SCSM 2012 R2, Powershell ile Nasıl Kullanılır? – PowerShell Workflows – Bölüm 5

Bu makalede Service Manager mimarisindeki Powershell iş akışlarından (Workflow) bahsedeceğim.

Service Manager mimarisinde built-in olarak birçok Workflow bulunmaktadır. Fakat oganizasyonların süreçlerine bağlı olarak bunlara custom olarak ekleme yapmak durumunda kalabilirsiniz. Bu durumda Work Flow konfigürasyonu yapmak için elinizde iki adet seçenek mevcut;

  1. Powershell Workflow (Authoring Tool Kullanarak)
  2. C# Work Flow (Visual Studio ortamında kodlama yapılarak)

 

Ben bu makale de ilk seçeneği tercih edip adım adım konfigürasyonun nasıl yapılacağını ayrıntılı şekilde aktaracağım. Tabi öncesinde bir senaryo belirleyelim.

Belirleyeceğimiz senaryo da 3 ana kriter var;

  1. Hangi tür obje için Workflow yapıyoruz?
  2. Hangi durumda Workflow’u tetikliyoruz?
  3. Workflow ile hangi konfigürasyonu yapıyoruz?

 

Basit bir örnek senaryoda bu sorulara cevap verip konfigürasyon adımlarına geçelim.

SCSM entegrasyonu yaptığım yerlerde olay kayıtlarına “Working” ya da “Üzerinde Çalışılıyor” isminde custom olay durumu eklememiz genel olarak istenir. Analistler olay kaydı üzerinde çalışmaya başladıklarında kaydın durumunu “Working” e çekerler.

Service Manager mimarisinde olay kayıtları üzerine analist performansını ölçmek için iki adet SLA uygulanır.(Genelde) Bu iki adet SLA’den ilki “Response SLA“(İlk yanıt SLA) diğeri de “Resolution SLA” (Çözüm SLA) dir. Response SLA olay kaydı oluştuğunda başlar ve Analist “Set First Response Or Comment” task’ına tıklayıp açılan penceredeki checkbox’ı işaretleyene kadar devam eder. Bu işlemi belirtilen süre dahilinde yapılmışsa Response SLA’yi karşılanmış olur.

Tabi burada analist olay kaydına atanır, olay durumunu Working olarak değiştirir, sonrasında Set First Response or Comment Taskını çalıştırır. Bu işlem yoğun olan bir help desk ortamında eziyet haline dönüşür.

Bu amaçla analistler genel olarak olay kaydının durumunu Working‘e dönüştürdüklerinde otomatik olarak First Response Date’inde atanmasını istiyorlar. Bu istek built-in gelen Workflowlar arasında bulunmadığı için custom olarak yapılandırılması gerekiyor. Şimdi bu senaryoya uygun olarak Authoring Tool ve Powershell’i kullanarak gerekli Workflow’u yapılandıralım.

Bu durumda 3 ana kriterimiz şu şekilde,

  1. Olay Objeleri için WF konfigürasyonu yapıyoruz.
  2. Olay durumu Working’e geçtiğinde WF’yi tetikliyoruz.
  3. WF tetiklendiğinde Olay üzerindeki First Response Date atamasını yapıyoruz.

 

Öncelikle aşağıdaki linkten Authoring Tool’u indirmeniz gerekiyor.

https://www.microsoft.com/en-us/download/details.aspx?id=40896

Kurulumu oldukça basit.

Kurulumun ardından Authoring Tool’u açalım. Yeni sekmesine tıklayalım ve oluşturacağımız Management Pack’e bir isim verelim. Ben FirstRestDate.xml ismini vererek devam ediyorum.


Resim-1

Management Pack boş halde aşağıdaki gibi Management Pack explorer bölümüne geliyor.


Resim-2

Workflow oluşturacağımız için aşağıdaki gibi Workflow sekmesine sağ tıklayıp “Create” seçeneğini seçelim.


Resim-3

Karşımıza gelen Wizard’da Workflow’a bir isim verip devam edelim.


Resim-4

Advanced penceresinde Workflow’un kaç saniye aralıkla maksimum ne kadar çalışacağını belirleyebilirsiniz. Default olarak bırakıp devam edelim.


Resim-5

Trigger bölümü iki adet seçenek içerir.

  1. Zaman ayarlı olarak WF’nin tetiklenmesi (Bunun için task schedular kullanmak daha mantıklı)
  2. Obje üzerinde bir değişiklik olduğunda WF’nin tetiklenmesi

Biz olay durumunun değişimini monitör edeceğimiz için ikinci seçenek ile devam edelim.


Resim-6

Olay class’ını seçelim


Resim-7

Objenin durumu değiştiğinde (durumu Working’e dönüştüğünde) WF tetikleneceği için “When an object of the selected class is updated” seçeneğini seçelim.


Resim-8

Son olarak “Additional Criteria” seçeneğini seçelim.

Şimdi burada bir ufak nokta var. “Working” custom bir olay durumu. Dolayısı ile Authoring Tool’un üzerinde bu list öğesini göremeyiz. O sebeple şimdilik Working yerine Active durumunu seçeceğim. Sonrasında Management Pack içerisinde Active ile Working’i değiştireceğim.

Burada olay durumu Working değilken, Working olduğunda şeklinde bir konfigürasyon yapmamız gerekiyor.

Bu sebeple konfigürasyonu aşağıdaki gibi yapıp ilerleyelim.

  • Change From – status – doesnotequal Active
  • Change To – Status – Equal Active

 


Resim-9


Resim-10

Ardından WF’yi oluşturup Wizard’ı kapatalım.


Resim-11

Şimdi işin son kısmı kaldı. WF’ye ne yapacağını söylememiz gerekiyor.


Resim-12

Bunu yapmak için de Authoring Tool’un Toolkit bölümünden “Windows Powershell Script” elementini sürükleyip şekildeki gibi WF’nin ortasına bırakalım.


Resim-13

Sürüklediğimiz elementin içine girip Script body kısmına aşağıdaki Powershell Scripti kopyalayıp yapıştıralım. Script’e ilişkin açıklamaları aşağıdaki gibi kodun içerisinde yaptım. Zaten daha önceki makalelerimde ayrıntılı olarak anlatmıştım.

Bura da önemli olan kısım. Script’e parametre olarak olay kaydının ID’sini verebilmek. Yani herhangi bir olay kaydının durumu “Working” e dönüştüğünde ilgili olay kaydının ID’sinin parametre olarak Script’e verilmesi işlemi. Bu amaçla bir mapping işlemi yapmak gerekir.

param($IncidentID)

#Modülü import edelim.

import-module SMLets

#Tarih değişkenimizi ayarlayalım.

$Date = (Get-Date).ToUniversalTime().ToString(“dd/MM/yyy HH:mm:ss”)

#Olay class’ını değişkene atayalım.

$OlayClass = Get-SCSMClass -Name System.WorkItem.Incident$

#Olay objesini elde edelim.

$OlayObjesi = Get-SCSMObject -Class $OlayClass -Filter “Name -eq ‘$IncidentID‘”

#Elde ettiğimiz objenin first response date attribute’una ilgili tarih değişkenini atayalım.

Set-SCSMObject -SMObject $OlayObjesi -Property FirstResponseDate -Value $Date


Resim-14

Script Properties bölümünde Script parametresi ile olay ID’sini aşağıdaki gibi eşleştirelim.


Resim-15

Eşleştirmenin ardından OK butonu ile pencereyi kapatalım.


Resim-16

Son durumda Powershell Script elementinin konfigürasyonu aşağıdaki gibidir.


Resim-17

Konfigürasyonun ardından Management Pack’i kaydedip kapatalım.


Resim-18

Management Pack’i kaydettiğimiz dizine gittiğimizde aşağıdaki dosyaları görürüz. Bunlardan bizim için önemli olan dosyalar şekilde işaretlediğim xml ve dll uzantılı olanlardır.


Resim-19

XML uzantılı dosya Management Pack olan dosyadır. Bu dosyayı bir XML Editor ile açtığımızda aşağıdaki gibi Script’in yer aldığı bölümü görebiliriz.


Resim-20

Burada yapacağımız ufak bir konfigürasyon var. Hatırlarsanız bir kaç adım önce “Working ” durumu Authoring Tool’da olmadığı için konfigürasyonu başka duruma göre yapmıştık ve değiştireceğimizi söylemiştik. Yaptığımız FROM-TO şeklinde kriter xml üzerinde aşağıdaki gibi bulunuyor.

Şimdi bunu editleyip “Working” durumuna göre konfigüre edelim.


Resim-21

Öncelikle Service Manager üzerinde Powershell ile Working durumuna ait GUID bilgisini aşağıdaki gibi elde edelim.


Resim-22

Elde ettiğimiz doğru GUID bilgisini aşağıdaki pre-post bölümlerindeki <value></value> tagları arasına yerleştirelim. Ardından Management Pack’i kaydedip kapatalım.


Resim-23

Yaptığımız Workflow’u Service Manager’a entegre ederken yapmamız gereken iki adım var.

  • DLL uzantılı dosyayı Service Manager Kurulum dizinine kopyalamak.

C:\Program Files\Microsoft System Center\Service Manager

  • XML uzantılı Management Pack dosyasını konsolda bulunan Management Pack bölümünden import etmek.

DLL uzantılı dosyayı kopyaladıktan sonra Management Pack bölümüne gelip import diyelim.


Resim-24

Oluşturduğumuz custom Management Pack’i import edelim.


Resim-25

İşlemin ardından Adminmistration\Workflow\Status bölümüne geldiğimizde oluşturduğumuz Workflow’u görebiliriz.


Resim-26

Örnek bir olay kaydı alalım. Durumu aktif olan ve first response date attribute’u şekildeki gibi boş olan.


Resim-27

Bu olay kaydının durumunu aşağıdaki gibi “Working” olarak değiştirelim.


Resim-28

Ardından Workflow status bölümüne geldiğimizde Workflow’a ilişkin “Success” logunu görebiliriz. Ya da hatalı bir konfigürasyon var ise hataya ilişkin log da burada yer alacaktır.


Resim-29

Olay kaydını açtığımızda da first response date’in başarılı şekilde atandığını görebiliriz.


Resim-30

Workflow örneklerini çeşitlendirmek mümkün. Biz basit bir örnek yapmış olduk. Powershell’i kullanarak daha karmaşık Scriptler ile Workflow konfigürasyonlarınızı geliştirebilirsiniz.

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

Referanslar

www.mshowto.org

Yorum Yap

Yazar Hakkında

Sakarya doğumludur. İstanbul Üniversitesi’nde Matematik/Fen ve Teknoloji öğretmenliğini bitirmiştir. Yüksek lisansını Sakarya Üniversitesi Bilgisayar Mühendisliği’nde yapmıştır. Bilişim sektöründe çeşitli firmalarda sistem ve network sorumlusu olarak çalışmıştır. Bazı kurumlarda sistem ve network üzerine uzmanlık eğitimleri vermiştir. Şu anda Netaş şirketinde kurumsal danışman olarak görev yapmaktadır. Microsoft System Center ürünleri, Powershell ve Azure teknolojileri ile ilgilenmektedir. 2016 yılında Microsoft tarafından Cloud and Datacenter alanında MVP unvanını almıştır.

Yorum Yap