Kullanıcı fotoğraflarının Outlook içerisinde görüntülenmesini Active Directory üzerinde kullanıcı hesaplarında ki thumbnailPhoto attribute (özniteliğinde) değeri sayesinde sağlamaktayız.. Bu alanda boyutu 10 Kb dan küçük olan jpg formatında dosyaları tutabiliyoruz. Uygun boyuta getirilmiş fotoğrafları powershell kullanarak bu alana aktarıyoruz. Ancak her seferinde düzenlenmiş fotoğrafları Exchange sunucusuna taşıyıp ardından powershell script i çalıştırarak import etmek ve ardından bu fotoğrafları silmek ek iş yükü oluşturmaktadır. Bu makalemde sizlere Orchestrator kullanarak kullanıcı fotoğraflarını Active Directory ye işlenmesini otomatikleştirme işlemini anlatmaya çalışacağım. Temel amacımız orchestrator sunucusu üzerinde açacağımız bir paylaşıma fotoğraf dosya ya da dosyaları atıldığında fotoğrafların otomatik olarak işlenmesi olacaktır.
Öncelikle Orchestrator sunucumuz üzerinde Fotograflar isimli bir klasör oluşturalım ve paylaşıma açalım. Yetkilendirme bölümünde fotoğrafları buraya koyacak kişi ya da gruba okuma ve yazma yetkisinin verilmesi yeterli olacaktır. Burada klasörün orchestrator sunucusu üzerinde açılması işin önemli kısmıdır. Çünkü kullanacağımız powershell script sunucu üzerinde ki klasörü kullanmaktadır. Paylaşım açma bölümü standart bir işlem olduğundan anlatmadan geçeceğim.
Makale başlığımızda ki işlemi gerçekleştirebilmek için orchestrator üzerinde iki integration pack kullanacağız. Bunlardan ilki File Operations ve diğeri Exchange Admin ve Exchange User şeklindedir. İlk integration pack orchestrator kurulumu ile birlikte gelmektedir. Exchange IP ise http://www.microsoft.com/en-us/download/details.aspx?id=34611 adresinden indirilip sisteme eklenmesi gerekmektedir. Integration pack ekleme işlemi bu makale kapsamında değildir, ip ekleme işlemini http://www.cozumpark.com/blogs/microsoft_system_center/archive/2015/01/25/orchestrator-uzerine-integration-pack-eklenmesi.aspx adresinde ki makalede bulabilirsiniz.
Integration pack lerimiz de hazır olduğuna göre akışımızı çizmeye başlayabiliriz. Akışımızı yazmak gerekirse, Öncelikle paylaşıma açtığımız klasörü monitor eden bir aktivitemiz var. Bu aktivitemiz ilgili klasöre .jpg uzantılı dosya veya dosyalar kopyalandığında bunların sisteme işlenmesi için Exchange Management Shell aktivitesini çalıştıracak ve fotoğraflar Active Directory üzerinde ki kullanıcı hesabının attribute na işlenecektir. Ardından işlemin tamamlandığına dair mail atılacak ve son olarak da klasöre kopyalanmış olan dosyalar silinecektir. Silme işlemini mail atma aktivitesinden sonra yapmamızın sebebi eğer birden fazla dosya olur ise silme işlemi herbir dosya için tamamlandıktan sonra bir mail atılacaktır.10 dosya için 10 adet mail atılmış olacaktır. Bunu istemediğimiz için dosyaları silme aktivitesini en sona bırakıyoruz. Adımlarını yazdığımız runbook un son hali aşağıda ki gibi olacaktır.
Runbook içerisinde ki aktivitelerimize geçecek olursak,
Klasörü İzle: Bu aktivite için File Management IP si altında bulunan Folder Monitor aktivitesini Runbook designer içerisine sürükleyip bırakalım.
Ardından aktivitemizi çift tıklayarak açalım. Karşımıza gelen ekranda Path bölümünde öncelikle aktivitemizin takip edeceği klasörü belirtmemiz gerekmekte. Ben orchestrator sunucum üzerinde oluşturduğum Fotograflar isimli klasörü gösterdim. Klasör içerisine konacak jpg uzantılı dosyaları işleyeceğimiz için olurda yanlışlıkla farklı uzantılı bir dosya atılır diye kısıtlayıcı olarak sadece jpg uzantılı dosyaları izlemesi için File Filters alanına Add… diyelim ve açılan Filter Settings ekranında Name bölümünü File Name olarak seçelim, Relation bölümünü Matches pattern olarak belirleyelim ve son olarak da Value bölümüne *.jpg yazalım ve OK e tıklayalım. Böylece kısıt koymuş olduk.
Triggers sekmesine geçelim. Active Directory içerisine koyacağımız fotoğrafların boyutunun 10 Kb dan büyük olmaması gerekmekte. Burada Klasörü izle aktivitemizi neyin tetikleyeceğini belirliyor olacağız. Paylaşıma açtığımız klasöre en az bir dosyanın atılması runbook un çalışması için yeterli olacaktır. Bu nedenle bu bölümde Number of files is seçeneğini işaretleyelim ve greater then seçeneği seçili durumda iken değer olarak 0 (sıfır) yazalım. Böylece en az bir dosya atıldığında runbook tetiklenecektir.
Son olarak Authentication sekmesine geçelim ve bu klasörü izleyebilmek için kullanılacak kimlik bilgilerini girelim. Ben servis hesabı olan scoadmin kullanıcısının bilgilerini girdim.
Not: Bu bölümde belirtilen kullanıcıya izlenecek klasör üzerinde de yetki verilmesi gerekmektedir.
Tüm bilgileri girdiğimize göre Finish diyerek Klasörü İzle aktivitemizi kapatabiliriz.
Fotoğrafı İşle: Bu aktivite için Exchange Admin ip si içerisinde bulunan Run Exchange Management Shell aktivitesini sürükleyip runbook içerisine bırakalım.
Ardından Klasör İzle aktivitesine tıklayıp Fotoğrafı işle aktivitesine bağlayalım. Çift tıklayarak Fotoğrafı İşle aktivitesini açalım. Karşımıza gelen ekranda Configuration Name bölümüne Exchange ile bağlantımızı sağlamak için oluşturulmuş olan ayarı seçelim. Ardından Properties bölümünde ki PS Script 01 alanına sağ tıklayalım ve Expand seçeneğini seçelim. Karşımıza gelen boş ekrana aşağıda ki powershell script mizi yapıştıralım. Script içerisinde kırmızı ile işaretlediğim bölümlerde ki klasör ismini ve LDAP bağlantısının yapılacağı domain adını kendi ortamımıza uygun olarak girelim.
$Dir = get-childitem C:\Fotograflar -recurse
$objDomain = New-Object System.DirectoryServices.DirectoryEntry(“LDAP://dc=cozumpark, dc=com”)
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.SearchScope = “Subtree”
foreach($file in $Dir)
{
$strFilter = “(&(objectCategory=user)(objectClass=user)(samAccountName=” + $file.BaseName.ToString() + “))”
$objSearcher.Filter = $strFilter
$colResults = $objSearcher.FindAll()
if($colResults.Count -gt 0)
{
Import-RecipientDataProperty -Identity $file.BaseName.ToString() -Picture -FileData ([Byte[]]$(Get-Content -Path $file.FullName -Encoding Byte -ReadCount 0))
}
}
Not: Run Exchange Management Shell kullanmamızın sebebi script içerisinde RecipientDataProperty komutundan faydalanmamız nedeniyledir.
Not: Script klasör içerisinde ki tüm jpg dosyaları için işlemi gerçekleştirmektedir.
Tüm bilgileri girdiğimize göre Finish diyerek Fotoğrafları İşle aktivitemizi kapatabiliriz.
Tamamlandı Maili At: Bu aktivite için Exchange User içerisinde ki Create and Send E-Mail aktivitesini sürükleyip runbook içerisine koyalım.
Ardından Fotoğrafları İşle aktivitesine tıklayıp Tamamlandı Maili At aktivitesine bağlayalım. Çift tıklayarak Tamamlandı Maili At aktivitesini açalım. Karşımıza gelen ekranda Configuration bölümünde Exchange bağlantısını sağlayacak ayarı seçelim. Ardından To bölümüne maili göndereceğimiz kişi ya da grubun adresini yazalım. Subject bölümüne anlaşılır bir konu ifadesi, örneğin “Fotoğraflar sisteme işlendi” yazalım. Body bölümüne sağ tıklayalım ve Expand diyerek alanı genişletelim. Ardından buraya mail içeriğini yazalım. Ben aşağıda ki gibi bir ifade yazdım.
Yukarıda ki bölümü Ok diyerek kapatalım. Eğer istersek maili farklı bir kullanıcı üzerinden de gönderilmesini sağlayabiliriz. Bunu sağlamak için Optional Parameters bölümüne tıklayalım ve açılan ekranda From ifadesini sağ tarafa geçirelim ve Ok diyerek pencereyi kapatalım. Artık mailin kimden atılmasını istiyorsak adresini yazmamız yeterli. Bu işlemi de tamamladıktan sonra aktivitemizin ayarları aşağıdaki gibi gözükecektir.
Tamamlandı Maili At aktivitemiz de hazır olduğuna göre Finish diyerek ekranı kapatabiliriz.
Dosyaları Sil: Bu işlem için File Management ip si altında ki Delete File aktivitesini runbook içerisine sürükleyip bırakalım.
Ardından Tamamlandı Maili At aktivitesine tıklayalım ve Dosyaları Sil aktivitesine bağlayalım. Dosyaları Sil aktivitesine çift tıklayarak açalım. Karşımıza gelen ekranda Delete File Path bölümüne fotoğraf dosyalarının konulduğu yolu yazalım ve sonuna *.jpg ekleyelim. Ekran görüntüsü aşağıda ki gibidir.
Son olarak Finish diyelim ve Dosyaları Sil aktivitemizi kapatalım. Runbook içerisinde ki tüm aktiviteleri tamamladığımıza göre Runbook Designer konsolumuzda Check-In diyerek runbook u kayıt edelim ve kayıt edilen runbook u çalıştıralım. Makalemizin başında paylaşıma açtığımız Fotograflar klasörüne bir iki kullanıcının düzenlenmiş fotoğraf dosyasını koyduğumuzda bir süre sonra Runbook da ki ilk aktivite olan Klasörü İzle aktivitesinin dosyaları farkettiğini ve runbook içerisinde ki diğer aktivitelerin çalıştığını görebiliriz. Runbook un düzgün çalışıp çalışmadığını Active Directory Users and Computers konsolunda fotoğraf dosyası konan bir kullanıcının özelliklerini açıp Attribute Editor sekmesine gelip thumbnailPhoto değerine bakmamız yeterlidir. Aşağıda bu attribute un runbook çalışmadan önceki ve çalıştıktan sonra ki değerlerini görebilirsiniz.
Not: Kullanıcı özelliklerinde Attribute Editor sekmesinin görülebilmesi için Active Directory Users and Computers konsolunun Advanced Features özelliğinin etkinleştirilmiş olması gerekmektedir.
Bu makalemde sizlere Orchestrator kullanarak kullanıcı fotoğraflarını Active Directory ye işlenmesini otomasyon haline getirmeyianlatmaya çalıştım.
Faydalı olması dileğiyle…