cmdlets | PowerShell ile SharePoint 2010

28 December, 2010

Önceki makalelerde bahsettiğim gibi SharePoint planlama ve tasarım aşaması çok çok dikkat edilmesi gereken konu. İlk önce yapmamız gereken şeyleri sonraya bırakırsak önüne geçilemeyecek sorunlarla uğraşıp durabilirsiniz proje boyunca.

Kurulum aşamasında farmlar ve servisler ve database ile ilişkilendirilen hesapları hatırlayın? Şimdi de SharePoint Shell için bir yetkilendirme yapılması gerekebilir, örneğin uzaktan bağlanıyorsunuz herhangi bir kullanıcıdan ya da sizin hesabınızın SP üzerinde bir yetkisi yok. Bunun için hesap ile ilgili yapılması gerekenler aşağıda;

  • SharePoint Server üzerinde WSS_Admin_WPG yetkilendirmesi
  • İlgili database üzerinde SharePoint_Shell_Access ve db_owner rolleri
  • SQL üzerinde Security_Admin rolü olmalı ve yine SharePoint?in bulunduğu server üzerinde local admin olmalı.

Eğer SharePoint Management Shell kullanmıyorsak ya da remoting yaparak Windows PowerShell?e bağlandıysak  ya da yine local server üzerinde Windows PowerShell ile  SharePoint?i yönetmek istiyorsak SharePoint modüllerini yüklememiz gerekiyor. Öncelikle bunun için aşağıdaki komutu kullanıyoruz;

Add-PSSnapin Microsoft.Sharepoint.Powershell

Unutmadan; PowerShell üzerinde yardım için get-help ya da get-command kullanabilirsiniz. Bu iki komut PowerShell ve cmdlets?ler ile ilgili yardımcı olacaktır.

Eğer SharePoint?i uzaktan yönetiyorsanız SharePoint Management Shell malesef sadece SP?in kurulu olduğu ve Farm?ın bulunduğu makinede çalışıyor. Yine de uzaktan yönetmek için yukarda bahsettiğim gibi Windows PowerShell 2 ile remoting yapabiliriz.

Remoting için yapmamız gerekenlere bir göz atalım;

  • Linkten WMF?yi(Windows Management Framework; PowerShell 2.0, WinRM ve BITS içerir) kuruyoruz.
  • Remoting Windows PowerShell 2.0 ile gelen bir özellik(aslında 1.0 ile de kullanılabiliyor) olduğundan 2.0 kurmamız gerekiyor ve WinRM servisi de kesinlikle çalışıyor olmalı.
  • Remoting bütün serverlarda aktif olmalı.
  • Remoting?i aktif etmek için Enable-PSRemotingcmdlets?ini kullanıyoruz ve ardından sunucuya bağlanmak için.
    • Enter-PSSession ‘SunucuAdı’ -Credential:’Domain\Username’
  • Enable-WSmanCredSSP ile Backend Server ile ilgili delegation ve SQL üzerinde farm ile ilgili CredSSP authentication?ı aktif hale getiriyoruz. Bitti mi? Hayır?
  • Son olarak yapmamız gereken MaxMemoryPerShellMB değerini arttırmak olacak. Bu tanım her bir remote process için ayrılan değeri ifade etmekte ve bu değer default 150MB, bazen bu değerin üstüne çıkmamız gerekebilir ve karşınıza çıkan hataya bir anlam veremeyebilirsiniz. İlgili değeri arttırmak için aşağıdaki komutu kullanıyoruz.

Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 500 (150?den 500?e çıkarmış olduk ama siz bunu istediğiniz şekilde planlayabilirsiniz.)

Artık SharePoint modüllerini de ekledikten sonra Windows PowerShell üzerinden SP cmdlets?lerini ister local?den ister remoting yaparak uzaktan çağırabiliriz.

Örneğin; Get-SPDatabase ile database?lerin listesini ve özelliklerini listeyelim.

Get-SPDatabase | Sort-Object disksizerequired -desc | Format-Table Name, @{Label =”Size in MB”; Expression = {$_.disksizerequired/1024/1024}}

image

Get-SPDatabase | ForEach-Object {$db=0} {$db +=$_.disksizerequired; $_.name + ” – ” + $_.disksizerequired/1024/1024} {Write-Host “`nTotal Storage (in MB) =” (“{0:n0}” -f ($db/1024/1024))}

image

İyi eğlenceler.

1,204 total views, 2 views today

Leave a Comment

Previous post:

Next post: