Merhaba Arkadaşlar,
Bu makalemizin konusu Active Directory’de kullanmış olduğumuz kullanıcı profil fotoğraflarını SharePoint’e MIM aracılığı ile aktarma.
Kullanıcı fotoğraflarının SharePoint portale aktarmamızın sebebi, son kullanıcının portal kullanımını cazip kılmak. Son kullanıcı kendi resmini gördüğü zaman aidetlik duygularında taşma yaşanabilir.
Mesela bir telefon rehberi uygulaması yapsanız kullanıcı isimlerinin yanında kullanıcılarında resminin olması cezbedici bir özellik.
Bunun gibi bir çok uygulamada kullanıcı fotoğraflarını kullanabilirsiniz.
İlk olarak Active Directory’de kullanıcı profillerine fotoğrafları yüklemek ile işe başlayabilirsiniz. Bu işlem için ücretli veya ücretsiz 3. parti uygulamalar mevcuttur. Ücretsiz olanlardan en popüler olanı CodeTwo Active Directory Photos uygulamasıdır.
Bu işlemi ücretis farklı bir şekilde powershell scripti ile de yapabilirsiniz. Örnek bir scripti aşağıda sizlerle paylaşıyorum.
[code lang=”powershell”]
Import-Module ActiveDirectory
$photo=[byte[]](Get-Content “ahmet.simsek.jpg” -Encoding byte)
Set-ADUser “ahmet.simsek” -Replace @{thumbnailPhoto=$photo}
[/code]
Sizlere tavsiyem bir powershell script hazırlayarak bu işlemleri toplu olarak yapabilirsiniz.
Algoritma şu şeekilde olmasında fayda var;
- AD üzerinde fotoğraf ekleyeceğiniz kullanıcıların sAMAccountName bilgilerini powershell yardımı ile bir CSV dosyasına çıkartın.
- Kullanıcıların resimlerini bir klasöre .jpg (hasan.koroglu.jpg gibi) olarak toplayın.
- PowerShell yardımı ile CSV dosyasını satır satır okuyarak, her satırda yukarıdaki scripti çalıştırın.
Talep olursa bu scripti hazırlayıp sizlerle paylaşabilirim.
Aşağıdaki görselde göreceğiniz üzere ahmet.simsek kullanıcısı için fotoğraf yükleme işlemini script ile tamamladım.
AD üzerinde ilgili kullanıcının attributelarına baktığım zaman thumbnailPhoto’ya ait değer dolmuş gözüküyor.
Şimdi Synchronization Service Manager üzerinde gerekili olan ayarları kontrol ediyorum.
İlk olarak ADMA’yı çif tıklayarak ayarlarından Configure Attribute Flow kısmındaki eşleşmeleri sırasıyla kontrol edelim.
Aynı kontrolü SPMA için de yapalım.
Kontrollerimiz sonrası My Site sitemizi kuralım.
İlk önce DC sunucumuzdaki DNS Managerımızda My Site için kullanacağımız domain için CNAME kaydı oluşturalım. Oluşturacağımız kayıt SharePoint sunucumuzu referans olarak kullansın. Ben bu örneğimizde http://benim sitesini kullanacağım. Kayıt olarak da SP sunucumu işaret ettim.
Ardından SharePoint Central Administration sayfamızı açalım. Manage web application kısmından yeni bir web application oluşturalım.
Port olarak yine 80 portunu kullanalım ve Host Header olarak DNS’de oluşturduğumuz kaydı girelim.
Application Pool kısmında güvenli bir hesap seçelim.
Veritabanı olarak ileride karışıklığa sebep olması için uygun bir isim girelim.
Web App’imiz oluştu.
Şimdi de My Site için Site Collection oluşturalım. Burada dikkat etmeniz gereken Template olarak Enterprise kısmından My Site Host’u seçmelisiniz.
Sitemiz kurulduktan sonra Manage Web Application kısmından oluşturduğumuz My Site Web Applcaiton’ın ayarlarını yapmalıyız.
İlk olarak My Site Host için oluşturduğumuz Web Application kaydınız seçelim. Ribbon Bar’dan Self-Service Site Creation tuşuna basalım.
Açılan sayfada en üstte yer alan On seçeneğini seçelim.
Daha sonra Manage Web Application kısmında yine My Site Host için oluşturduğumuz Web Application kaydınız seçelim. Ribbon Bar’dan Managed Paths tuşuna basalım.
Bu ekranda Path olarak “kisisel” seçelim ve Wildcard olarak ekleyelim.
Şimdi Central Administration’dan Manage Service Applications kısmından User Profile Service Applications’ı açalım. My Site Setting kısmında yer alan Setup My Sites bağlantısını açalım.
Açılan sayfada My Site Host kısmına My Site için kullanacağımız URL’yi yazalım.
Personal Site Location kısmına daha önce Managed Paths kısmında oluşturduğumuz path’i girelim.
Artık biraz aksiyon alalım. MIM sunucumuzda Delta Sync işlemini başlatalım.
Yapılan işlemleri kontrol ettiğimizde Ahmet Şimşek kullanıcısı için yaptığımız değişiklik MIM üzerinde gözüktü.
Resimlern SharePoint’e aktarıldığını görmek için http://benim/User%20Photos/ adresine girelim.
Göreceğiniz üzere resimler GUID olarak oluşturulmuş. Şimdi bu dosyaların SharePoint tarafında kullanılması için aşağıdaki powershell scriptini SharePoint sunucumuzda Management Shell ile çalıştıralım.
[code lang=”powershell”]
Update-SPProfilePhotoStore -createthumbnailsForImportedPhotos $true -MySiteHostLocation http://benim
[/code]
Kodu ilk çalıştırdığımızda aşağıdaki hatayı alabiliriz.
Update-SPProfilePhotoStore : UserProfileDBCache_WCFLogging :: ProfileDBCacheServiceClient.GetUserData threw exception:
Access is denied.
At line:1 char:1
+ Update-SPProfilePhotoStore -createthumbnailsForImportedPhotos $true – …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (Microsoft.Offic…ofilePhotoStore:SPCmdletUserProfilePhotoStore) [Update-S
PProfilePhotoStore], UserProfileApplicationNotAvailableException
+ FullyQualifiedErrorId : Microsoft.Office.Server.UserProfiles.PowerShell.SPCmdletUserProfilePhotoStore
Bu hatanın sebebi; SharePoint Management Shell’i çalıştırdığımız SP_Admin kullanıcısının yetersiz yetkisi. Bu scriptFarm Admin hesabı ile çalıştırılması gerekmektedir. Bu sebeple PowerShell’i Run as Different User diyerek çalıştırıp scripti tekrar çalıştırıyorum
User Photos kitaplığına baktığımda resimlerin isimlerinin değiştini görebilirsiniz.
http://benim/Person.aspx sayfasına baktığımızda kullanıcılarımızın resimlerinin geldiğini görebilirsiniz.
Bir sonraki makalemizin konusu Photo Import işlemlerinde yaşayabileceğimiz sorunlar ve çözümleri hakkında olacak.
Allah’a emanet olunuz.
TOC
- Giriş
- MIM – Microsoft Identity Manager Kurulumu
- MIM – Microsoft Identity Manager Yapılandırması
- MIM – Microsoft Identity Manager Senkronizasyonunu otomatikleştirmek
- MIM – Microsoft Identity Manager Active Directory Photo Import
- MIM – Microsoft Identity Manager Active Directory Photo Import Sorun Giderme
- Varsayılan MIM SharePoint 2016 Attribute Eşleşmeleri
- MIM – Microsoft Identity Manager Farklı Attribute’ları Kullanma