PowerShell ile SharePoint Alt Siteleri Silmek ve Oluşturmak

Sharepoint 2013 arayüzünden alt site oluşturmaya çalıştığımda anlamsız bir şekilde işlem yarım kalıyor ve başlıksız alt siteler oluşuyor. Sorunu irdelemeye vaktim olmadığından PowerShell imdadıma yetişti ve iki satır kod ile bozuk siteleri silip yenilerini oluşturabildim. SharePoint Management Shell‘i açıp aşağıdaki kodları kullanabiliriz. Herhangi bir alt siteyi silmek için:

Remove-SPWeb http://sharepointURL/altsite

Yeni bir alt site oluşturmak için:

New-SPWeb –url http://sharepointURL/altsite -name "Yeni Alt Site" -template STS#0

Burada STS#0 alt sitemizin bir Ekip Sitesi (Team Site) olacağını belirtiyor. Tüm site şablonları için Get-SPWebTemplate komutu kullanılabilir. Kolay gelsin…

Active Directory Kullanıcı Resimlerinin SharePoint'e Aktarılması

Daha önce yaşadığım bir problemi düzeltmek için yazdığım yazıda haberini vermiştim. Bu yazıda işin aslını, Active Directory‘deki kullanıcı resimlerinin SharePoint User Profile ile nasıl senkronize edileceğini yazacağım. İlk olarak yapmamız gereken SharePoint Central Administration‘ı açıp Application Management > Manage Service Applications > User Profile Service Application yolunu izlemek. Buradan People başlığı altındaki Manage User Properties linkine tıklayıp, “Picture” isimli özelliği düzenliyoruz. Açılan sayfada “Add New Mapping” bölümünden Active Directory bağlantımızı seçiyor ve “Attribute” alanına “thumbnailPhoto” değerini seçiyoryuz. Bunu seçebileceğimiz bir alan yoksa elle de yazabiliriz. Daha sonra Add butonuna basıp OK diyerek değişikliğimizi kaydedip sayfadan ayrılıyoruz.

Yukarıda yazdığım aynı yolu izleyerek bu kez Synchronization başlığı altındaki “Start Profile Synchronization” linkine tıklıyor ve “Start Full Synchronization” seçiyoruz. Burada Active Directory‘deki bilgiler SharePoint User Profile‘a senkronize edilmiş oluyor. Senkronizasyon da tamamlandıktan sonra SharePoint Management Shell‘i açıp aşağıdaki kodu çalıştırıyoruz:

Update-SPProfilePhotoStore -CreateThumbnailsForImportedPhotos 1 -MySiteHostLocation http://MySiteURL

Burada dikkat edilmesi gereken nokta, yine yukarıdaki aynı yolu izleyerek My Site Settings başlığı altından Setup My Sites linkine tıklayıp, bu sayfadaki “My Site Host Location” alanında yazan değeri yukarıdaki kodda ilgili yere doğru bir şekilde yazmak. Yoksa çözümünü burada belirttiğim şekilde hata düzeltmek zorunda kalabilirsiniz. Bu işlemlerden sonra kullanıcı resimleriniz profillerine senkronize edilmiş olacak. SharePoint kişi arama sayfasında da bu resimlerin görünebilmesi için Search Service Application‘da Full Crawl yapmanız gerektiğini de söyleyerek yazımı bitireyim. Başka bir konuyla başka bir yazıda görüşünceye dek, esen kalın…

Opera 17'de Google Araması Problemi

İş bilgisayarımı formatlayıp da Opera‘yı tekrar yüklediğimde yaptığım tüm Google aramaları “google.de” üzerinden yapılıyordu. Opera arayüzünde konu ile ilgili herhangi bir ayar bulamadığımdan Opera‘nın profil klasörü olan “C:\Users\hasan.gok\AppData\Roaming\Opera Software\Opera Stable” klasörüne göz atmak istedim. Evet, tahmin ettiğim gibi içeriği aşağıdaki gibi olan, “Local State” adlı bir dosya vardı:

{
   "browserjs": {
      "version": "1381219435"
   },
   "hardware_acceleration_mode_previous": true,
   "intl": {
      "app_locale": "en-US"
   },
   "last_version": [ 17, 0, 1241, 53, 0 ],
   "location": {
      "country": "DE",
      "country_from_server": "DE",
      "timestamp": "1394934883600000000"
   },
   "sync": {
      "login_screen_reminder": 1
   },
   "update": {
      "components": {
         "next_check_interval": "28800"
      }
   }
}

Bu dosyayı Not Defteri ile açıp DE olarak gördüğümüz yerleri TR olarak değiştirdiğimizde aramalarımız google.com.tr üzerinden yapılmaya başlayacak.

SharePoint User Profile'daki Hatalı Profil Resmi URL'lerin Düzeltilmesi

Bu yazıma, yakın zamanda Active Directory‘deki kullanıcı profil resimlerinin nasıl SharePoint User Profile‘a çekilebileceğini açıklayan bir yazı da yazacağımı belirterek başlamak istiyorum. Ancak önce elimizdeki problemi çözelim ;) En son karşılaştığım ve çözmek zorunda olduğum sorun buydu: Active Directory‘de tanımlı kullanıcı resimleri, SharePoint User Profile‘a aktarılmıştı ancak tüm resim URL’leri hatalıydı. Bu yüzden arama sonuçları ve My Site gibi yerlerde kullanıcıların resimleri yerine çarpı işaretleri görüyorduk. URL’deki problem ise site adresinden sonra tek bir ‘/’ karakterinin eksik olmasıydı. Profil resimlerinin URL’leri şu şekilde görünüyordu:

http://sharepointURL/my/mysitesUser PhotosProfile Pictures/...

Oysa olması gereken URL şu şekildeydi:

http://sharepointURL/my/mysites/User PhotosProfile Pictures/...

Aşağıdaki PowerShell scriptini çalıştırarak, yukarıda ilk yazdığım formatta olan tüm URL’leri ikinci formata dönüştürmek mümkün oldu. Böylece sorunumuz da çözülmüş oldu.

Add-PSSnapin Microsoft.Sharepoint.Powershell 
$SiteCollectionUrl = "http://sharepointURL/"
$hataliURL = "http://sharepointURL/my/mysitesUser" 
$dogruURL = "http://sharepointURL/my/mysites/User" 
$site = Get-SPSite $SiteCollectionUrl
$context = Get-SPServiceContext($site) 
$profileManager = new-object Microsoft.Office.Server.UserProfiles.UserProfileManager($context) 
Write-Host "profileManager.Count: " $profileManager.Count -ForegroundColor Yellow;

$profiles = $profileManager.GetEnumerator()
foreach ($userProfile in $profiles)
{
   if($userProfile["PictureUrl"].Value -ne $null)
   {
      Write-Host "AccountName: " $userProfile["AccountName"].Value ", PictureUrl: " $userProfile["PictureUrl"].Value -ForegroundColor Yellow;

      $eskiURL = $userProfile["PictureUrl"].Value
      if($eskiURL -match $hataliURL)
      {
         $userProfile["PictureUrl"].Value = $eskiURL.Replace($hataliURL, $dogruURL)
         $userProfile.Commit()
         Write-Host "new PictureUrl: " $userProfile["PictureUrl"].Value -ForegroundColor Yellow;
      }
   }
}

$site.Dispose()