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.
Resim-1
Resim-2
Bir list item’ın sahip olduğu Enumeration değerleri konsolda bulunan listeler bölümünden eklenebileceği gibi direk 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 temelde 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 -Name IncidentClassificationEnum
Bu şekilde sorguladığınızda root ve Child objelerin hepsi listelenecektir.
Resim-3
Sadece Root Enumeration’ı elde etmemek isterseniz Enumeration isminin sonuna dolar ($) işareti koymanız yeterli olacaktır.
Get-SCSMEnumeration -Name IncidentClassificationEnum$
Resim-4
Yapacağımız işlemlerde Root Enum değerinin çıktıların içerisinde 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 -Name IncidentClassificationEnum |Get-SCSMChildEnumeration
Resim-5
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 -Name IncidentClassificationEnum |Get-SCSMChildEnumeration -ThreeLetterWindowsLanguageName TRK
Resim-6
Ş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.
Resim-7
Ş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 -Name IncidentClassificationEnum.Hardware |Get-SCSMChildEnumeration
Resim-8
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 -Name Enum.1c0e30fcc0d3418d91f43ade897a6dc8
Elde ettiğimiz değişken üzerinde “$ComputerEnum.Parent.Id” komutu ile Parent Enumeration değerinin GUID’ini öğrenebiliriz.
Resim-9
Ardından aşağıdaki komutu kullanarak ilgili Parent Enumeration değerini elde edelim.
Get-SCSMEnumeration -Id $ComputerEnum.Parent.Id
Resim-10
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.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar