SCSM 2012 R2 With Powershell – Enumerations – Part 3

By | 13 January 2016

Service manager mimarisinde formlar üzerlerinde bir çok dropdown listeleri barındırırlar. Bu listeler list öğeleri denilen yapılara bağlıdır. List öğeleri üzerlerinde birden fazla değeri parent/child ilişkisi ile barındırırlar. List öğelerinin barındırdığı değerler EnumerationValues olarak bilinir

Bir list item’ın sahip olduğu enumeration değerleri konsolda bulunan listeler bölümünden eklenebileceği gibi direk management pack üzerinden ya da bulk olarak komut satırından da eklenebilir.

Şimdi powershell ile enumeration value’lar üzerinde birkaç çalışma yapalım. Değerleri elde etmeyi, parent/child ilişkilerini sorgulamayı bir kaç örnekle özetleyelim.

Örneğin Incident üzerinde bulunan Classification Category list öğesini sorgulayarak başlayalım.

Burada dikkat etmeniz gereken nokta Service Manager üzerindeki enumeration değerleri default olarak bir root’a sahiptir. Dolayısı ile konsol üzerinden sizin eklediğiniz enumeration değerler temalde bu root’a ait child öğeler olacaktır. Incident üzerindeki sınıflandırma kategorisi dropdown listesi IncidentClassificationEnum list öğesine bağlıdır. Ve ekleyeceğiniz her sınıflandırma kategori öğesi bu list öğesinin child öğeleri olacaktır.

Makalelerin uzamaması adına smlets modülünü kullanarak anlatımlarıma devam edeceğim.

Şimdi bu list öğesini sorgulayalım.

Get-SCSMEnumeration-NameIncidentClassificationEnum

Sadece root enumeration’ı elde etemek isterseniz enumeration isminin sonuna dolar  ($) işareti koymanız yeterli olacaktır.

Get-SCSMEnumeration-NameIncidentClassificationEnum$

Yapacağımız işlemlerde root enum değerinin çıktıların içersinde olması pek istenilen bir durum değil. Çünkü bizi ilgilendiren bu root’un child’ı olan değerler. O sebeple aşağıdaki komut ile sadece ilgili list öğesinin child enumeration değerlerini elde edebiliriz.

 

Get-SCSMEnumeration-NameIncidentClassificationEnum|Get-SCSMChildEnumeration

Dönen değerler olay kaydının sınıflandırma kategorisinde yer alan değerlerdir.

Burada dikkatinizi çekmek istediğim nokta, enumeration değerler scsm mimarisinde farklı dillerde konfigüre edilebilirler. Konsol dilini değiştirdiğinizde form üzerindeki bu değerler de otomatik olarak değiştirdiğiniz dil’e uygun olarak değişir. Default değerler konsolun desteklediği tüm dillerde yapılandırılmıştır. Ancak sizin ekleyeceğiniz custom değerler için management pack üzerinde destekleyeceği diller için konfigürasyon yapmanız gerekmektedir.

Enumeration değerlerini istediğimiz dilde elde etmek istiyorsak komutu aşağıdaki gibi modifiye etmemiz gerekir. Komutun çıktısına göz attığınızda displayname’lerinin türkçe geldiğini görebilirsiniz.

Get-SCSMEnumeration-NameIncidentClassificationEnum|Get-SCSMChildEnumeration-ThreeLetterWindowsLanguageNameTRK

Şimdi root dışındaki enumeration değerler arasındaki parent/child ilişkiyi sorgulayalım. Bu amaçla iki adet custom enumeration değeri ekleyelim.

Şimdi öncelikle parent üzerinden bu değerleri sorgulayalım. Parent Class olarak Hardware enumeration değerinin ismini yazalım ve Child enumeration’ları elde edelim.

Get-SCSMEnumeration-NameIncidentClassificationEnum.Hardware|Get-SCSMChildEnumeration

Son olarak child üzerinden parent objenin elde edilmesini deneyelim. Bu amaçla önce child enumeration değerini bir değişkene atayalım.

$ComputerEnum=SCSMEnumeration-NameEnum.1c0e30fcc0d3418d91f43ade897a6dc8  

Elde ettiğimiz değişken üzerinde  $ComputerEnum.Parent.Id” komutu ile parent enumeration değerinin GUID’ini öğrenebiliriz.

Ardından aşağıdaki komutu kullanarak ilgili parent enumeration değerini elde edelim.

 Get-SCSMEnumeration-Id$ComputerEnum.Parent.Id

Temel olarak powershell üzerinde enumerationları bu şekilde sorguluyoruz. Artık yavaş yavaş scsm üzerinde powershell script yapılandırmasına geçebiliriz. Şu ana kadarki üç makalede script yazarken kullanacağım elementleri ve mimariyi elimden geldiğince açıklamak istedim. Umarım faydalı olmuştur. Bir sonraki makalede anlattığım tüm bileşenleri kullanarak script yazmayı ve Service Manager üzerine farklı şekillerde entegre etmeyi anlatacağım.

FIRAT

 

Leave a Reply