powershell Arşiv

PDF Dokümanların Tarayıcıda Doğrudan Açılması

Sharepoint içerisinde yayınladığınız PDF dokümanların kullanıcıların indirmesine etmesine gerek kalmaksızın veya tarayıcıda birtakım ayarlar yapmanıza gerek olmaksızın otomatik olarak açılabilmesi için PowerShell’de aşağıdaki komut setini çalıştırmanız işinizi görebilir.

 

PowerShell Kullanarak Tüm SharePoint Health Analyzer Kurallarını Çalıştırmak

PowerShell’in artık işe yaramadığı bir nokta kalmadı gibi. Pek çoğumuzun yoğun kullanmadığı, gözümüze çarptıkça veya bir süre sonra sürekli kırmızı bir bant görmekten sıkılınca baktığımız bir yer SharePoint Health Analyzer ekranı. Aslında SharePoint 2010’dan bu yana hayatımızda olup özellikle ürünün kendi kendine kontrol edebileceği temel mimari adımları kontrol eden ve olması gerekenler için bizi yönlendiren bir arayüz.

Health Analyzer’ın varsayılan olarak kontrol ettiği yüzlerce temel kural var ve hatta daha fazlasını siz de yazabilir veya yazılmış bir çözüm dosyasını sisteme yükleyerek bu kuralların da kontrol edilmesini sağlayabilirsiniz.

Health Analyzer aslında her bir rule farklı zamanlamalara sahip olacak şekilde SharePoint Timer prosesinde çalışan bir yapı. Dolayısıyla bir job aracılığı ile tetikleniyor ve kurala uygun olan kurallar işletilerek sonucu tehlikeli, uyarı ve bilgi gibi kategorilerde karşımıza çıkıyor. Özellikle yeni kurulum sonrası ortam yapılandırmalarında bazen bu kuralların kendi zamanlamasını beklemeden tetiklenmesini isteyebilirsiniz. Bunun için aşağıdaki gibi bir PowerShell komutu işinizi görecektir.

PowerShell console’u “Run as Administrator” modda çalıştırmayı unutmamak gerekiyor elbette. Neticede yapılan işlem yönetici rolünün yetkili olduğu bir başlık.

DLL’i PowerShell Yardımıyla GAC’a Eklemek

Uygulamanıza ait DLL dosyasını GAC (Global Assembly Cache) ‘e yüklemek için pek çok yöntem bulunuyor. Bunlardan en kolayı şüphesiz GACUtil.exe. Ancak GACUtil Visual Studio kurulumunun bir parçası olarak karşımıza çıkıyor ve şüphesiz çoğumuzun özellikle canlı ortamda sunucu üzerine Visual Studio kurmak gibi bir şansımız yok. Bu nedenle artık Windows’un ayrılmaz parçası haline gelen PowerShell‘i kullanmak burada en iyi alternatif görünüyor.

Burada önemli olan nokta;

  • PowerShell console’u “Run as Administrator” modda açın.
  • İşlem sonrasında eğer bahsi geçen IIS üzerinde host edilen bir uygulama ise iisreset komutunu da çalıştırmayı unutmayın.

PowerShell Yardımıyla Dosya İndirmek

PowerShell yardımıyla yapamayacağımız işlem yok gibi, mâlum içeriğinde doğrudan kod yazabiliyoruz. Bu noktada işe yarar bir scripti daha paylaşmak istiyorum. Bunu dilerseniz bir fonksiyon haline getirebilir, belli aralıklar ile çalışacak şekilde zamanlayabilir ve sürekli hale getirebilirsiniz.

 

Arama Hizmeti Veritabanı İsmi Değiştirmek

SharePoint 2016 arama hizmetini Central Administration web arayüzünü kullanarak oluşturmaya çalışmak sanırım en basit yöntem ancak SharePoint Central Administration her servis uygulamasını yaratmak için farklı form arayüzleri sunuyor bizlere. Bir kısmında veritabanı ismini değiştirebilir servis seviyesinde detaylı konfigürasyonlar yapabiliyorken bir kısmında bunların bir bölümüne izin vermiyor. Arama hizmeti de bunlardan bir tanesi. Eğer Central Administration arayüzünü kullanarak arama hizmetini yapılandırırsanız SharePoint aşağıdaki dört veritabanını ismini size sormaksızın yaratacaktır.

Admin Database:
<Servis Uygulaması Adı>
Analytics Database:
<Servis Uygulaması Adı>_AnalyticsReportingDB
Crawl Database
<Servis Uygulaması Adı>_CrawlDB
Links Database:
<Servis Uygulaması Adı>_LinksDB

Halbuki bir çoğumuz özellikle paylaşımlı veritabanı sunucusu kullandığımız veya sadece benim gibi takıntılı olduğundan bu bölümde veritabanı isimlendirmelerinde bir kuralın takip edilmesini isteyecektir. Hele ki Central Administration aracılığı ile yaratıyorsanız bu isimlerin sonuna bir de GUID şeklinde uzantı gelecektir ki kabul edilemez 🙂

Bu durumu aşmak için aslında bir bölümünü benim de daha önce paylaştığım PowerShell scriptleri var. Bu sayede Search Service Application’ın en detay konfigürasyonlarına kadar script içerisinden müdehale edebiliyorsunuz. Bazen bunlarda her ortamda çalışma garantisi vermiyor tabi.

Bugün öğrendiğim bir yöntemi paylaşmak isterim. Adım adım uyguladığınızda hedefimize ulaşmamızı sağlayan bir yöntem.

Tüm Çözüm Dosyalarının Kaydedilmesi

Sıklıkla ihtiyacımız olan başlıklardan biri olduğundan her ne kadar pek çok ortamda bu konuda örnekler mevcut olsa da kişisel arşiv anlamında ben de kullandığım scripti paylaşmak isterim. SharePoint farmınızda yüklü olan tüm çözüm dosyalarınızı tek seferde export etmek ve bir klasöre almak isteyebilirsiniz. Bunun için örnek senaryo canlı ortamdan test ortamına uygulama eşitlemesi yapmak istediğiniz zamanlar gösterilebilir. Mevcut canlı ortam uygulamasını test ortamına dilediğiniz yöntem ile taşıdıktan sonra güncel çözüm dosyalarınızı da export edip test farmınıza deploy etmeniz gerekebilir. Örnek scripti aşağıda bulabilirsiniz;

 

Tek Sunuculuk Arama Hizmetinin Yapılandırılması

SharePoint Server üzerinde servis uygulamalarının hepsini arayüz üzerinden yapılandırabiliyoruz. Ancak bazılarında özellikle veritabanı isimleri sonlarında Guid içerir şekilde yaratıldığından benim gibi bu konuda takıntılı olanlar için sıkıntı yaratabilir. Bilindiği üzere SharePoint için PowerShell ile neredeyse yapamayacağımız bir işlem yok. Geliştirme ortamı gibi tek sunuculuk yapılarda bu işlemi aşağıdaki gibi bir PowerShell komut dizisi ile tamamlayabilirsiniz. Ayrıca bir süre sonra üç server, beş server gibi gerçek ortam SharePoint farmları için olan versiyonlarını da paylaşmaya çalışacağım.

 

 

Profil Resim Adresini Değiştirme

SharePoint kurulum işlemlerinin ardından genellikle servis konfigürasyonlarını test etmek ve bazı düzenlemeleri gerçekleştirmek için bir tane boş web uygulaması ve bir tane de mysite için “My Site Host” türünde site koleksiyonu barındıran mysite web uygulamasını yaratırız. Bu esnada genellikle henüz dns tanımları yapılmamış hatta daha nasıl bir url kullanılacağı belirlenmemiş bile olabilir. Bu nedenle sunucu üzerinde host dosyasına seçtiğimiz örnek url bilgisini girerek tamamlarız bu konfigürasyonu.

Bu esnada yapılan konfigürasyonlardan bir tanesi de User Profile Service Application’ın oluşturulması ve profil importunun gerçekleştirilmesidir. Importun tamamlanıp profil imajları için gereken düzenlemeyi de yapmanızın ardından artık tüm çalışan profiline adreslediğiniz alan değerleri ile sahip olduğunuz bir altyapınız hazır durumdadır.

Ancak konu ciddileşmeye, adresler belirlenmeye ve dns tanımları yapılmaya başlandıktan sonra my site üzerinde host edilmekte olan profil resimlerinin adreslerinin ilk girdiğimiz adres olarak kalmış olduğunu gözlemleriz. Aslında Alternate Access Mapping, IIS Binding gibi tüm işlemleri tamamlamışsınızdır.

Bu adresin değişiminin sağlanması için aşağıdaki gibi bir PowerShell komutu işinizi görecektir. İşlem sonrasında yapacağınız kontrolde profil resimlerinin adres bilgisinin artık güncellenmiş olduğunu göreceksiniz.

 

Central Administration Port Değişikliği

SharePoint kurulumlarınız esnasında Central Administration arayüzünün port bilgisi otomatik olarak atanır ve Configuration Wizard’ı ilk çalıştırdığınızda bu portu değiştirmenize imkan verilir. Ancak çeşitli nedenlerle port bilgisini daha sonra değiştirmek zorunda kalabilirsiniz;

  • Kurulum esnasında bu adımı gözden kaçırmış ve bahsettiğim random port atamasına maruz kalmış olabilirsiniz.
  • Şirketiniz bilgi sistemleri politikalarıyla uyumlu olmayan bir port numarası belirlemiş olabilirsiniz.
  • Farklı bir uygulama ile çakışan bir port belirlemiş veya geçen zaman içinde çakışacak bir uygulamayı yüklemek zorunda kalmış olabilirsiniz.

Bu işlemi basit yolla halletmek için SharePoint 2010, SharePoint 2013 ve SharePoint 2016’da bir PowerShell komutu işinizi görecektir.

Bu işlem ile 1023 ile 32767 arasında SSL için kullanılmakta olan 443 haricindeki portlardan bir tanesini belirleyebilirsiniz. Eğer izin verilmeyen kriterde bir port numarası belirleyecek olursanız “Invalid Port” uyarı mesajını alacaksınız.

Eğer halen SharePoint 2007 ile çalışıyorsanız bu işlemi gerçekleştirmek için stsadm komutunu kullanmalısınız.

İşlemi tamamladığınızda IIS Binding ve diğer adreslemelerin tamamı yeni port numarasına göre düzenlenecek ve artık yeni port numarası ile uygulamanıza erişebileceksiniz. Eğer Central Administration’a hiç ulaşamıyor, port bilgisini de bulamıyorsanız bu durumda aşağıdaki komut kullanılmakta olan port bilgisini göstermek için yeterli olacaktır.

 

Yeni Farm Admin Hesabının Eklenmesi

Test ve canlı ortamlar için olmasa da özellikle geliştirme ortamlarında yeni katılan geliştiriciler için uygulama geliştirmeyi mümkün kılmak adına bazı yetkilendirmeler yapmanız gerekir. Kısaca sıralayacak olursak;

  • Kullanıcının Central Administration > Security tabı altında yer alan menü aracılığı ile “Farm Administrators” SharePoint grubuna eklenmesi.
  • Central Administration içerik veritabanında kullanıcıya yetki verilmesi.
  • Uygulama içerik veritabanında kullanıcıya yetki verilmesi.

Bu işlemleri tek bir kullanıcı için yapmak sorun olmasa da ekip için yapmak veya sürekli eklenen yeni geliştiriciler için tekrar tekrar yapmak sıkıcı olabilir. Bu noktada aşağıdaki gibi bir PowerShell fonksiyonu ile bu işi otomatik hale getirebilirsiniz.

Fonksiyonu kullanmak için ise;