Office 365 Yardım Masası

Merhaba ,

Office 365 üzerinde kullanabileceğiniz ufak ama faydalı bir özellik bulunmaktadır.Office 365 yöneticisi olarak yardım paneline özelleştirilmiş kişi bilgilerini ekleyerek kullanıcı desteğini kolaylaştırabilirsiniz. Yardıma ihtiyacı olan kullanıcılar yardım simgesine tek bir tıklamayla özel destek iletişim bilgilerine erişebilirler.

Office 365 yardım paneline özelleştirilmiş yardım masası bilgilerini ekleme;

Yardım masası kartı şunları içerir:

  • İlgili kişi kartını ve aşağıdakilerden en az birini başlığı:
  • Kuruluşunuzdaki teknik destek telefon numarası. Kullanıcının tercih edilen telefon app bu bağlantıyı başlatır.
  • Kullanıcılar için teknik destek için kullanmanız gereken e-posta adresi. Kullanıcının tercih edilen e-posta istemcisi bu bağlantıyı açar.
  • Teknik Destek Web sitenize bağlantı.

Özel yardım masası kartı oluşturma

  • İş veya okul hesabınızın Yönetici hesabı ile Office 365’te oturum açın.
    Uygulama başlatıcı simgesini seçin, ardından Yönetici‘yi seçin

.

  • ŞİRKET PROFİLİni seçin.
  • Özel yardım masası’nı seçin.
  • Yardım masası kartını açın.
  • Yönetici olarak kullanıcılara vermek istediğiniz kişi bilgilerini siz yönetirsiniz. Başlık ve en az bir iletişim şekli gereklidir. Görünmesini istediklerinizi seçin ve gerekli bilgileri doldurun.
    • Özel başlık:
      “Contoso yardım masası” veya “Yardıma mı ihtiyacınız var?” gibi amacınızı açıkça belirten bir başlık girin.
    • Yardım masası telefonu:
      Kullanıcıların kuruluşunuzdaki teknik destek aracısıyla konuşmak için aramaları gereken telefon numarasını girin. Aramayı tamamlamak için gerekli olabilecek tüm ön ekleri belirtmeyi unutmayın.
    • Yardım masası e-postası
      Destek bölümünüzün e-posta adresini girin.
    • Yardım masası URL’si:
      Destek bölümünüzün yardımcı araç ve kaynakları içeren dahili veya genel bir web sitesi varsa adını ve ilişkili URL’sini girin.
  • Kaydet‘i seçin.

Kullanıcımız oturum açtığında sağ tarafta görebileceğiniz gibi Destek bilgilerine erişebilecekler.

Azure Automation – Part 2:Assets

Bir önceki yazımızda, Automation Account oluşturma adımlarından bahsettik ve Assets kavramını kısa bir açıklamasını önceki yazımızda yapmıştık. Bu yazımızda Assets kavramını detaylandırmaya çalışacağız. Assets bölümü Azure Automation hesabı içerisin de en önemli kısımlardan biridir. Assets bölümünde Azure Automation Account hesabı için Integration Module ve Settings kısmı bulunmaktadır. Açıkcası bu kısma Settings demek pek hoşuma gitmiyor. Portal içerisinde bu şekilde ekleyeceğiz ama değişkenler demek bundan sonra daha doğru gibi gözüküyor.

Runbook aktivitelerinizin içerisin de kullandığınız cmdlet eğer ilgili Automation Account içerisinde yok ise Assets içerisinde Integration Module ile yükleme şansına sahipsiniz. Bu işlem bizim için oldukça basit. Assets bölümünü kullanmamızdaki diğer temel amaç eklediğimiz Settings ( Değişkenlerden) oluşmaktadır. Tüm script dillerinde olduğu gibi PowerShell içerisinde de string ya da integer tabanlı nesneler istenilen değişkenlere atanarak, scriptin devam eden bölümünde ihtiyaç olduğunda rahatlıkla kullanılabilir. Biz portal içerisinden “Add Settings” tıklayarak değişkenler oluşturarak Runbook içerisinden bu değişkenlere erişim sağlayarak Workflow’un devam eden bölümünde ihtiyaç olduğunda kullanabileceğiz.

Assets kısmında bulunan değişkenlere ve Integration Modüllere erişim noktasında önemli bir bölüm var. Tanımlamış olduğunuz değişkenleriniz veya eklediğiniz Integration Modülleriniz geliştirdiğiniz farklı Runbook aktiviteleri içerisinden tekrar erişilebilir durumdadır. Bu kısma örnek verecek olursak aşağıdaki resimden ilerleyelim.

Yukurdaki resimde üç adet “Asset 1”, “Asset 2”, “Asset 3” adında değişkenlerim bulunuyor. Bu değişkenler, sırasıyla “Integer”, “String” ve “Credential” olduğunu varsayalım. “AA” adında bir Azure Automation Account içerisinde tanımlı olarak gözükmektedir. Bununla beraber bu Automation Account içerisinde iki adet Runbook aktivitem var. Bunlar “A” ve “B” adında gözükmektedir. Bu Runbook aktivitelerinde yazılan Powershell Workflow içerisinde tanımlamış olduğumuz Settings(Değişkenler) “Get-AutomationVariable –Name değişkenadı” şeklinde çağrılır ve geliştireceğiniz Runbook içerisinden erişebilirsiniz.

Azure Portal içerisinden, “Add Settings” tıklanarak herhangi yeni bir değişken oluşturmak istediğiniz zaman, karşımıza gelen değişken tiplerini tanıyalım.

  • Credential Asset : Bu değişkeni eklemek istediğiniz zaman karşınıza iki farklı tip ile geliyor olacak. Bunlar “Certificate ve Powershell Credential” şeklinde gözükecektir. Oluşturulacak olan Credential değikenine isim verdikten sonra, Assets bölümünde gözükecetir. Bu değikenler şifrelenir ve her otomasyon hesabı için oluşturulan benzersiz bir anahtar kullanarak Azure Automation hesabı içinde saklanır. Bu anahtar bir ana sertifika tarafından şifrelenir.
  • Connection Asset : Automation hesabınızda oluşturduğunuz Runbook aktiviteleriniz üzerinden herhangi bir harici hizmete veya uygulamaya bağlanmak için gereken bağlantı bilgileri için tanımlanır.
  • Variable Asset : Runbook aktivitelerini geliştirirken en çok işimiz olacağı yer. Powershell içerisinde tanımladığımız “String”,”Integer”,”Boolen”,”DateTime” tipinde nesneler tanımlanarak değişken haline gelir ve Runbook aktiviteleri içerisinden çağırılır.
  • Schedule : Geliştirdiğimiz Runbook aktivitelerini Schedule bir şekilde çalışmasını sağlamak için oluşturduğumuz değişken yöntemidir.

Assets oluşturmanın birçok yöntemi var. İsterseniz, Azure Portal, Preview Portal ve Azure Powershell ile yaratma şansına sahipsiniz.

Azure Portal içerisinden bir “String” tipinde Variable Asset oluşturalım. Automation Account içerisine girdikten sonra, “Add Settings” tıklanır ve karşınıza yukarıda bahsetmiş olduğumuz Asset tipleri gelmektedir. Bu kısımda “Add Variable” seçilir.

Add Variable seçip ilerledikten sonra, karşımıza değişken tipleri gelecektir. Bu ekranda ben “String” tipinde oluşturacağımı söyleyeceğim ve içerisine bir değer gireceğim.

Variable Type olarak String seçildi ve değişkenimizin adı “MyNewVariable” olarak belirledik bir sonraki ekrana geçerek değişkenimize değer ataması gerçekleştireceğiz.

Yeni bir String tipinde Varriable Asset tanımlamış durumdayız. Artık Automation Account içerisindeki tüm Runbook aktiviteleri üzerinden erişilebilir durumdadır. Tanımladığımız değişkeni Runbook içerisinde yazdığımız Powershell Workflow içerisinden çağırmak için aşağıdaki örnek bizlere yol gösterecektir. Yukarıdaki ekran içerisinde bir yere daha dikkatinizi çekmek istiyorum, “Encrypted” kapalı olarak gelmiş durumdadır. Eğer bu özelliği aktif ederseniz, tanımladığınız değişkenleriniz Automation hesabınız içerisinde Encrypted bir şekilde saklanacaktır.

Get-AutomationVariable cmdlet’ini Runbook içerisinde kullanarak tanımladığım Asset adını gönderek değişkenin içerisindeki değere Runbook içerisinden artık erişebilir durumdayım. İsterseniz, Azure Powershell Module ile yeni bir değişken yaratabilirsiniz.

Son olarak ise Azure Preview Portal üzerinden nasıl yeni bir Asset oluşturacağından bahsedeceğim. Preview Portal üzerinde oturum açıktan sonra, ilgili Automation Account içerisinde Assets bölümünde karşımıza Admin Friendly diyebileceğimiz bir arayüz gelmektedir. Bu ekran içerisinden toplam Assets sayısı görebilir veya yeni değişkenler ekleyebilirsiniz.

System Center Virtual Machine Manager Nedir ?

Merhaba,

Öncelikle SCVMM nedir? Ne işe yarar?

SCVMM yazılımı yapınızda bulunan sanal sunucuları (HYPER-V,Citrix Xen Server,Vmware Esx) tek bir merkezi noktadan yönetme , izleme , raporlama olanağı verir.

Sanal sunucuların çok olduğu ortamlarda VMM yazılımını kullanmak hem zaman tasarrufu hem de kaynak tüketimini olumlu yönde etkileyecektir.

Peki System Center Virtual Machine Manager 2012 R2 ile neler yapabiliriz;

– Domain ve Workgroup ortamında yer alan fiziksel sunucular üzerinde bulunan sanal makinelerin yönetimi
– Performans ve Kaynak Optimizasyonu
– Yeni Aygıtların Hızlı Yapılandırılması
– Çoklu Hipervizör Desteği ve Yönetimi
– Kullanımı Kolay Uygulama Yönetimi
– Özel Bulut Yapısı
– Organizasyonunuz İçerisinde Bulunan Diğer System Center Ürünleri İle Uyumlu Bir Şekilde Çalışma

SCVMM 2012 R2 donanım ön gereksinimleri aşağıdaki gibidir.

150 Hosta kadar;

150 Host üstü için ;

SCVMM 2012 R2 yazılım ön gereksinimleri aşağıdaki gibidir.

Azure Automation – Part 1:Automation Account Oluşturulması

Azure Automation kullanabilmeniz için Azure Subscription sahip olmanız gerekiyor. Mevcut bir Azure hesabı sizlere Azure üzerindeki kaynaklara erişmenizi sağlar. (Cloud Services, Service Bus, Storage Account, Mobile Services, vd) Azure Automation Account hesabı ise, mevcut hesabınız için tüm otomasyon kaynaklarını tutar. ( Runbook, assets)

Yeni bir Automation Account oluşturmak için birçok yöntemimiz bulunur. Bunlardan en basit ve en kolayı mevcut Azure Portal içerisinden veya Preview Portal üzerinden yeni bir Azure Automation Account yaratabilmektir. Azure üzerinde ihtiyaçtan dolayı birçok Automation Account yaratılabilir. Farklı Azure Region üzerindeki IT Operasyonel işleri yöneten kişilere ait farklı Automation hesapları oluşturulabilir. Bir subscription içerisinde 30 adet farklı Automation Account yaratılabilir.

Automation Account oluşturulması

Azure Management Portal üzerinde oturum açılır. Portal içerisinden sol tarafta Automation kısmına gelip “Create an Automation Account” seçilir.

Karşımıza gelen ekran içerisinde Automation Account hangi Region üzerinde yaratılacağını ve geçerli bir isim verilerek “Complete” butonu tıklanır.

Hesabımızın başarıyla oluştuğunu gördükten sonra, artık Automation Account içerisindeki kavramları incelemeye başlayabiliriz. Automation Account içerisine girdiğim zaman karşımıza bizi “Get Started” sayfası karşılıyor olacak.

Karşımıza gelen “Get Started” dışında yan taraflarında birçok sekme var. “Get Started” sayfası içerisinde yeni bir runbook oluşturmak, Technet Gallery üzerinden geliştirip paylaşılan hazır runbook’lara erişmeniz mümkün. Automation Account içerisindeki sekmeleri sırasıyla inceleyelim ve neler yaptığını anlayalım.

  • Dashboard : Otomasyon süreçleri için diagnostic, job state ve usage information gibi bilgileri gösterir. Bununla beraber, 30 gün veya istenilirse bir saatlik detaya kadar Account içinde gerçekleşen farklı işlerin durumunu ( başarısız, durdu, tamamlanmış ve çalışan) gibi bilgileri gösterir. Son olarak da mevcut Automation Account içerisinde runbook sayısını ve değişkenlerinin toplam sağ alt kısımdan rakamlarını görebilirsiniz.

  • Runbooks : Mevcut yazdığınız veya Gallery üzerinden indirdiğiniz tüm Runbook bu ekran içerisinde gözükmektedir. Belirli tarihler ve saatler ile runbook durumunu için filtreleme yapabilirsiniz. Dilerseniz kendiniz geliştirdiğiniz Runbook Import edebilir yada başkasına göndermek amacıyla export edebilirsiniz.

  • Assets : Runbook içerisinde kullanılan değişkenlerin yönetimi bu bölümden sağlanır. Variables, Connection, Schedule isteğe bağlı olarak bu değişkenler eklenir. Eklenen bu değişkenler, Automation Account içerisindeki tüm runbooklar tarafından erişilebilir. Integration Module sayesinde ilgili cmdlet ailesini Azure Automation içerisine yükleme şansına sahipsiniz. Bildiğimiz gibi Powershell içerisin de Module mantığı vardır. Azure Automation tarafında bir workflow geliştirdiğinizi hayal edelim. Bu Workflow içerisin de örnek olarak Active Directory veya Office 365 ile ilgili cmdlet bulunduğu varsayalım. İşte bu cmdletlerin Azure Automation tarafından bilinmesi için ilgili modülleri Azure Automation hesabının içine atılması gerekiyor. İstediğiniz Powershell Modulünü buradan “Import Module” tıklayarak ekleyebilirsiniz.

  • Scale : Free veya Basic olarak Automation planınızı seçmenize olanak verir. Bu kısımda önemli ve atlanmaması gereken bir nokta var, seçtiğiniz plan Azure Subscription içerisindeki tüm Automation hesapları için geçerlidir. Ücretsiz plan ayda 500 dakikaya izin verir ve fatura edilmez. Eğer kullanımı sınırsız dakika gerekiyorsa, Basic planını seçin.

SCVMM 2012 R2 Kurulumu Öncesi Ön Gereksinimler Bölüm 1

Kurulum öncesi yapılması gereken ön hazırlıklar;

Bizim senaryomuzda 1 adet DC , 1 adet SCVMM+SQL sunucusu bulunacaktır.

SCVMM 2012 R2 yazılımının kurulacağı sunucunun kesinlikle domaine alınması gerekmektedir.

1-Windows Assessment and Deployment Kit (Windows ADK) for Windows 8.1 Kurulumu

http://www.microsoft.com/en-us/download/details.aspx?id=39982

Kurulum dosyamızı indirdikten SCVMM 2012 R2 kurulumunu yapacağımız sunucumuz üzerinde çalıştırıyoruz.

Kurulum yapılacak lokasyonu default şekilde bırakıyoruz ve “Next” seçeneği ile ilerliyoruz.

Müşteri geliştirme programına katılıp katılmayacağımız sorulmamaktadır.Bu kısmı kendinize göre belirleyebilirsiniz.Ben “No” seçeneğini seçerek ilerliyorum.

Bu kısımda kurulum sözleşmesin “Accept” seçeneği ile kabul ediyoruz.

System Center Virtual Machine Manager için aşağıdaki 2 seçenekteki bölümleri seçmemiz yeterli olacaktır. Gerekli chekboxları doldurduktan sonra Install butonu ile kuruluma başlıyoruz.

Kurulum başarıyla tamamlandıktan sonra “close” seçeneği ile çıkıyoruz.

Powershell 5.0 ile Class Kullanımı – Part 3

Yazımıza Powershell ile Class yapısı içerisinde Constructors ( Yapıcı Method) yapısının kullanımı ile devam ediyoruz. Makale serimizin birinci bölümünde bahsettiğimiz Constructors ( Yapıcı Method) yapısını Powershell içerisin de kullanımı göreceğiz.

Constructors yapısını anlamak için Makale Serimizin 1.bölümünde bulabilirsiniz. Birçok yazılım dilinde herhangi bir class’tan “new” anahtar sözcüğüyle yeni bir nesne oluşturulduğu anda çalışan metottur. Class’tan bir nesne oluştururken biz bunu “new” anahtar sözcüğü kullanarak yapmaktayız. Basit bir örnek verecek olursak; bizim Student adında bir class’ımız olduğunu varsayalım. Student Class’ından oluşturacağımız nesne “Student Std = new Student ();” şekilde kullanmaktayız. Buradan anladığımız her class için biz tanımlamasak da kesinlikle bir Constructor ( Yapıcı Method) vardır. İşte bu metoda varsayılan Constructor method olarak anılmaktadır.

Constructors yapısının özellikleri

  • Constructor oluşturulduğu zaman Class ismiyle aynı olmak zorundadır.
  • Constructor methodlar isteğe bağlı bir şekilde parametre alabilirler.
  • İstenilirse, bir class içerisinde birden fazla Constructor kullanılabilir. Herhangi
    bir sınır yoktur.

Neden Constructors kullanılır?

  • Constructor kullanarak oluşturulan objelere ilk değer atamaları yapabiliriz.
  • Class içerisine parametre haline getirerek objelere belli değerleri vermesi konusunda zorlanabilir.
  • Constructor ile obje oluşurken arka tarafta yapılacak isteğe bağlı işlemlerin uygulanması sağlanabilir.

Şimdi hemen “Employee” adında bir Powershell Class oluşturalım ve içerisinde “FirstName”,”LastName”,”Title”,”StartYear” objelerimizi yaratalım.

“Employee” adında class yaratıktan sonra, artık Class ismini [Employee] yazarak erişebilir durumdayız. Class içerisinden New methodunu çağırdığımız zaman arka tarafta Default Constructor devreye girerek objelerin yaratılmasını sağlayacaktır.

Class içerisinden objeleri Constructor sayesinde yaratıldı. Constructor içerisine hiçbir değer göndermedik. Kendi Constructors yazmaya sıra geldi. Burada önemli bir nokta var. Yazımızın başında belirttiğim gibi oluşturacağımız Constructor methodları Class adıyla aynı olmak zorundadır.

Class adı ve oluşturacağımız Constructor adını aynı yaptıktan sonra, parantez içerisinde bir “String” tipinden bir “$FirstName” adında değişkeni tanıtmış bulunuyorum. Bu değişken Constructor için bir parametre gönderebileceğimiz anlamına gelmektedir. Bu kısımda dikkatinizi çekmenizi istediğim bir nokta daha var. Süslü parantezler içerisn de “$this.FirstName” adında değişken kullanılmış ve bunun karşısına “$FirstName” atanmış durumdadır. Bu kısımdaki “$this” değişkeninin bizlere sağladığı özellik, Class içerisindeki nesnelere erişmemizi sağlıyor. Bu Constructor methodu kullandığımız zaman parametre olarak bizden “FirstName” isteyecektir. Bu değeri gönderdikten sonra Method içerisinde ne şekilde atamasını gerçekleştirdiysek obje yaratılması o şekilde olacaktır.

Yukarıda görüldüğü gibi [Employee]::New şeklinde yazıp çalıştırdığım zaman karşımıza Class içerisinde tanıtmış olduğumuz Constructor Methodumuz gelmiş durumdadır. Bununla beraber Constructor için tanımlamış olduğum “String” tipinde parametremi görüyorum. Açıklamamız gereken başka bir nokta ise, “Overload” kelimesi Türkçe olarak düşündüğümüz de “Aşırı Yük” anlamına denk geliyor. Herhangi bir class içerisin de aynı isimle constructor var ise bunlar overload edilerek farklı parametreler ile birden fazla tanımlanabiliyor. Bazen constructors aynı işi farklı parametreler ile yapabilirler.

Şimdi bunun kullanımı görelim.

[Employee]::New(“Engin”) olarak Constructor methodumu çalıştırdığım zaman gönderdiğim parametre sayesinde ilgili objeye ataması gerçekleşip obje yaratılmış durumdadır. Class içerisine yeni bir Constructor tanıtalım.

Tanımlamış olduğum Constructor’ları “[Employee]::New” yazarak methodları tekrar listeyelim.

Class içerisinde yazdığımız gibi tüm Constructors hepsini görüyorum ve farklı parametreler almaktalar. Şimdi Constructor çağıralım ve içerisinde iki adet parametre göndererek objemizin yaratılmasını sağlayalım.

Görüldüğü gibi, Constructor içerisine iki adet “String” tipinde parametre göndererek objelerimizin oluşturulmasını sağladık. Constructor yapısını Powershell Class içerisin de kullanımı inceledik.

SCVMM 2012 R2 SQL Server Kurulumu Bölüm 2

Bu bölümde SCVMM 2012 R2 kurabilmemiz adına gerekli olan SQL kurulumunu gerçekleştireceğiz. SCVMM 2012 R2 versiyonun desteklediği SQL versiyonları aşağıdaki gibidir.


Kuruluma başlıyoruz.


SQL Setup’ını çalıştırdıktan sonra aşağıdaki gibi “New SQL Server stand-alone installation or add features to an existing installation” seçeneğini tıklıyoruz.


SQL otomatik olarak System Check etmektedir ve uygun olmayan bir durum söz konusu ise bizi uyarmaktadır.Şuan herşey kuruluma uygun olduğu için aşağıdaki gibi herhangi bir hata ile karşılaşmadık.


SQL Server’ımıza ait lisans bilgileri girdikten sonra “Next” seçeneği ile devam ediyoruz.


Kurulum sözleşmesini kabul ederek Next seçeneği ile devam ediyoruz.


Kurulum sırasında gereksinim duyduğu güncellemeleri aşağıdaki gibi göstermektedir “Next” seçeneği ile güncellemeleri indirerek kurmasını sağlıyoruz.


Güncellemeler indirilmektedir.


Güncelleme sonrası tekrar bir check işlemi yapmaktadır “Next” seçeneği ile devam ediyoruz.


Setup Role kısmında kurulum yapacağımız SQL feature larını seçeceğiz.


SCVMM 2012 R2’nin gereksinim duyduğu SQL özellikleri aşağıdaki gibidir. Sadece gerekli olan özellikleri kurmak karmaşıklığı azaltarak bize performans kazandıracaktır.


Gerekli olan bileşenler aşağıda görüldüğü gibi sorunsuzca kurulmuştur “Next” seçeneği ile devam ediyoruz.


Varsayılan şekilde bırakıyoruz ve “Next” seçeneği ile devam ediyoruz.


Kurulum yapacağız sunucu üzerinde gerekli boş alan kontrolleri yapılmaktadır “Next” seçeneği ile devam ediyoruz.


Server Configuration : Bu bölümde dikkat edilmesi gereken bir seçenek bulunmaktadır. Collation Tab’ındaki bilgiyi “SQL_Latin1_General_CP1_CI_AS” olarak yapılandırmanızı tercih ederim.


Database Engine Configuration : Bu bölümde SQL sunucumuzu yönetmeye yetkili olacak olan administrator account bilgisini ekliyoruz. İlgili birimi doldurduktan sonra “Next” seçeneği ile devam ediyoruz.

Error Reporting : Bu kısmı “Next” seçeneği ile geçiyoruz.


Installation Configuration Rules: Bileşenlerin kurulum öncesi hazır olduğu görüyoruz “Next” seçeneği ile devam ediyoruz.

Ready to Install : Install butonuna basarak kurulumu başlatıyoruz.



Kurulumu başarıyla tamamlıyoruz. SCVMM 2012 R2 yazılımı için gerekli olan SQL database altyapısını hazırlamış bulunmaktayız.


Powershell v5.0 ile Class Kullanımı – Part 2

Yazımızın ikinci serisi ile devam ediyoruz. Class yapısını detaylı bir şekilde incelemeye devam edelim. Şimdi ise Class yapısı içerisin de Enum (Enumarator) kullanacağız fakat önce yapısından bahsedelim.

Enum (Enumaration) Nedir ?

Bu yapı yazılım dilinde enum, enumaration ya da enum sabitleri olarak adlandırılır. Değişkenlerin alabileceği değerlerin sabit (belli) olduğu durumlarda programı daha okunabilir hale getirmek için kullanılır. Programda birçok değişkene tek tek sayısal değer vermek yerine “Enum” kullanılabilir. Özet olarak “enum” yapısı sayıları anlamlı şekilde isimlendirerek kullanabilmeye izin verir.

Bu yapıya her yazılım eğitimin de verilen örnek ile kolayca ilerleyelim. SehirPlakalari isimli Enum yapısı içerisinde birkaç sehir ve bunlara atanan sayısal değerler (Plaka Numarası) tanımlanabilir. Ben Istanbul’u çağırdığım zaman karşıma ilgili Plaka Numarasının gelmesini isteyebilirim. Enum yapısının içindeki tanımlamaları yaptıktan sonra Class yapısı içerisin de kullanmayı göreceğiz. Ama şimdi hemen Enum ( Enumaration) tanımlamasını yapalım.

Hatırlarsanız, Class tanımlarken keyword olarak” Class” kullanıyorduk. Enum ( Enumaration) tanımlarken keyword olarak “Enum” ve daha sonra EnumName şeklinde kullanacağınız.

Yukarıdaki örnek içerisin de SehirPlakaları adında bir Enum oluşturdum ve içerisine üyelerimi tanıttım. Şimdi artık yapmam gereken bu Enum listesi içerisinden istediğim değeri çağırarak çıkan sonucu görmek.

Enum yapısını çağırmak için, ” [EnumAdı]::Name ” şeklinde kullanmanız gerekiyor. Fakat bu şekilde çağırdığınız zaman ilgili seçilen karşınısındaki değere ( Örnek : Ankara seçtiğimiz zaman 6 değerinin gelmesini istiyoruz.) sahip olmanız için aşağıdaki şekilde kullanmanız gerekiyor.

Yukarıdaki örnek içerisin de [SehirPlakalari]::Ankara içerisindeki değere ulaşmak için Enum yapısı içerisindeki değeri çağırdık. [SehirPlakalari]::Ankara.Value__ şeklinde değeri ekrana döndürdük. Şimdi Enum yapısını Class içerisinde kullanımına geçelim. Basit bir Araba adında Class oluşturacağım ve bunun için de Model, Manufacturer, Year ve Color gibi nesneler tanımlaması yapacağım. Daha sonrasında burada Color nesnesini sabit değer alabileceğini varsayıp Enum yapısına çevirelim.

Yukarıda görüldüğü gibi, Class tanımlamasını yaptık. Şimdi burada Color nesnesini Enum yapısına dahil edelim.

Class ve Enum detaylarını yukarıdaki gibi görebilirsiniz. Bu kısımda dikkatinizi çekmek istediğim bir nokta var, bir önceki resim de “Color” nesnesinin veri tipi “String” olarak tanımlanmış durumdaydı. Fakat ben bu nesneyi Enum yapısı içerisine alarak veri tipi kısmına tanımlamış olduğum Enum adını yazmış bulunuyoruz.

Şimdi kullanım şekline geçelim hemen, Aşağıdaki görüldüğü gibi Class yaratmak için New-Object Cmdlet kullanarak Class adını yazdım ve “A” isimli değişkene atamış durumdayım. “A” değişkenini çağırdığım zaman karşıma Class içerisindeki objeleri görmekteyim.

“A” değişkenini Color object içerisine değer atarken yukarıdaki dikkat ettiyseniz “1” yazmış bulunmaktayım. Bu rakam bana Enum içerisin de karşına tanımladığım değere denk gelmektedir. Enum içerisin de “1” değerinin karşına geldiği kısım “Red” değeri olduğu için, artık Class içerisindeki objeye içerisine “Red” ataması gerçekleşecektir.

Bununla beraber artık ilgili objeye Enum dışında tanımlanmış herhangi bir değer atama şansını bulunmuyor. Aşağıdaki örnekte Enum içerisinde olmayan bir değeri ilgili objeye atamaya çalıştığınız da aldığımız hatayı görebilirsiniz.

SCVMM 2012 R2 Kurulumu Bölüm 3

SCVMM 2012 R2 için gerekli olan bileşenlerin kurulumlarını daha önce Bölüm 1 ve Bölüm 2 kısımlarında tamamladık kurulum için her şey hazır kuruluma başlayabiliriz.

Kurulum Setup’ımızı çalıştırıyoruz.


Install seçeneği ile kurulum adımlarına başlıyoruz.


Sunucu üzerine kuracağımız VMM Management Server ve VMM console seçeneği otomatik gelmektedir. Varsayılan olarak bırakarak “Next” seçeneği ile devam ediyoruz.


Kuruluşumuza ait bilgilerimizi giriyoruz. Ürün anahtarını girmediğiniz durumlarda ürünü 180 gün boyunca tüm özellikleri ile beraber kullanabilirsiniz.


Kurulum sözleşmesini kabul ediyoruz.


Müşteri geliştirme programına katılıp katılmayacağımız sorulmaktadır. Bu seçeneği kişisel olarak istediğiniz gibi seçebilirsiniz.


Kurulumun yapılacağı lokasyonumuzu belirtiyoruz.


Database configuration bölümünde SQL sunucumuzun kurulu olduğu sunucumuzu belirtiyoruz. Yapımızda SQL sunucusu ile SCVMM2012 R2 yazılımı aynı sunucu üzerine olduğu için server name kısmı otomatik gelmektedir. SQL sunucumuza ait erişim bilgilerini de girdikten sonra “Next” seçeneği ile devam ediyoruz.


SCVMM 2012 R2 kurulumu için gerekli olan Local System account veya Domain account bilgilerini girmemiz gerekmektedir.Bu kısım önemli olduğu için bu kısıma deyinmekte fayda var.

  • SCVMM için atayacağınız Local System veya Domain Accountunu başka herhangi bir amaç için kullanmamalısınız.
  • SCVMM için atadığınız Account bilgileri sonradan değiştirilemez.Hesabı değiştirmek için SCVMM yazılımını kaldırıp tekrardan kurmanız gerekir.
  • SCVMM için Cluster yapısı düşünülüyor ise hizmet hesabı domain accountu olmalıdır.

Active Directory üzerinde “VMM” isimli bir hesap açarak bunu servis hesabı olarak atıyorum.


SCVMM 2012 R2 yazılımının çalışabilmesi için gerekli olan port listesi aşağıdaki gibidir. Varsayılan bir biçimde bırakarak “Next” seçeneği ile devam ediyoruz.


Library Configuration:

Kütüphane ayarlarımız için gerekli olan kütüphane ismini belirliyoruz “Next” seçeneği ile devam ediyoruz.


Install seçeneği ile kurulumu başlatıyoruz.


Kurulum için gerekli olan özellikler aşağıdaki gibi yüklenmektedir.


Kurulum başarıyla tamamlanmış bulunmaktadır.


Masaüstümüzden Microsoft System Center VMM ürünü çalıştırıyoruz. Connect seçeneği ile VMM sunucumuza login oluyoruz.

VMM ara yüzü bizi karşılamaktadır.

VMM 5 bölümden oluşmaktadır.

Powershell v5.0 ile Class Kullanımı – Part 1

Blog içerisinde Powershell v5.0 ile yeni gelen özellikleri paylaşmıştım. Eğer Windows 10 kullanıyorsanız, Powershell V5.0 sürümüne sahipsiniz demektir. Microsoft tarafından Powershell v5.0 için Windows Management Framework Production Preview sürümünü indirip, Windows 10 olmayan cihazlarınızda ilgili sürüme sahip olabilirsiniz.

Powershell v5.0 ile gelen hayatımıza, Desired State Configuration ciddi seviyede iyileştirmeler, Package Management ile deployment süreçlerinin inanılmaz sürelerde kısalması, Network Switch cmdlets ailesi sayesinde Microsoft sertifikalı switchleri yönetebilmek gibi birçok yenilik bizleri bekliyor. Bu yazımız da Powershell v5.0 ile gelen yeni özellik olan Nesne Yönelimli Programlama dillerin de Class yapılarını oluşturarak devam edeceğiz. Birçok PowerShell kullanıcıları bu kavramlara aşina olabilir. Class yapısının gelmesindeki en büyük avantaj Desired State Configuration tarafında olduğunu söylemekte fayda var.

Powershell’in artık Object Oriented Programming (Nesne Yönelimli Programlama) dil olduğunu üstüne basa basa söylemekte fayda var.
Object Oriented Programming (Nesne Yönelimli Programlama) 1960 yılların başlarında geliştirilen bir programlama tekniğidir. Bu programlama tekniği bizlere ne sağlıyor? Bu programlama tekniği programı geliştirirken daha hızlı, daha esnek olması, bakımının ve diğer geliştirme yöntemlerine daha fazla açık olmasını anlamına gelmektedir. OOP (Object Oriented Programming) bütün olaylara birer Object(Nesne) olarak bakmaktadır.

Object ( Nesne ) Nedir?

OPP(Object Oriented Programming) avantajlarından bahsettik. Şimdi ise Object kavramını açıklayalım. Normal fiziksel nesne ile karıştırmamız gerekiyor. Fiziksel bir nesne dediğimiz zaman, uzayda yer kaplayan hacmi olan kütlesi olan bir yapıdır. Kodlama tekniklerinde bir nesne dendiği zaman olayları olan, olaylara karşı reaksiyon gösterebilen ve işlevi olan yapılar anlamına gelmektedir.

Object(Nesne) içerisin de Properties (Özelliker ), Methods (Method) ve Events(Olaylar) barındırırlar. Bunları kısaca açıklayalım.

  • Properties : Bir nesne tarafından temsil edilen veri özellikleridir.
  • Method : Objenin davranışlarını temsil eder.
  • Event : Nesne ile arasındaki iletişimi kurarlar.

Class (Sınıf) Nedir?

Object kavramından sonra, Class yapısını cover etmemiz gerekiyor. Peki Class nedir?

Nesne Yönelimli Programlama ile geliştireceğimiz programlarda sadece objeler vardır. Bu objeler, veri alışverişi yaparak, birbirleriyle haberleşirler. Objeler OOP(Object Oriented Programming) de sınıf olarak ifade edilen şablonlardan yaratılır. Her Class içinde, o Class içerisinden üretilecek objelerin özelikleri, davranışları tespit edilir. Örneğin Araba isminde bir sınıf yaratabiliriz. Bu sınıftan üretilecek objelerin ortak yani, bir Marka, Model ve Renk gibi özellikleri olacaktır. Class yapısı obje üretmenin yanında Class yapıları arasında ilişki kurmak mümkündür.

Constructor ( Yapıcı Method ) Nedir?

Objelerin sınıflardan yapıldığını öğrendik. Objeler üretilirken, sahip oldukları değişkenlerin farklı değerlerde olması gerekir. Araba örneğinde olduğu gibi, Marka ve Model isimli iki objenin değişik değerlere sahip olmaları gerekir. Bu demek oluyor ki, objeler üretilirken, onlara değişik kimlikler verecek bir mekanizmaya ihtiyacımız var. Bu görevi sınıf içinde Constructor üstlenir. Objeler Constructor aracılığıyla üretilir. Constructor bir obje üretmeden önce, obje için gerekli değişken değerleri belirlenir ve bu değerler parametre olarak Constructor gönderilir. Constructor bu değerleri kullanarak, objeyi üretir. Her sınıf içinde, obje üretmek için bir Constructor vardir. Bu kullanım şekline örnek verecek olursa, “System.Net.Http.HttpClient” class içerisinde 3 farklı Constructor görebilirsiniz; Diğer 2 tanesi parametre farklı değerler alırken sizde MSDN sayfası üzerinden görebileceğiniz gibi bir tanesi hiçbir parametre almaz. Constructor “overloading” yapısını desteklemekte. Bu şekilde birçok Constructor yaratılabilmekteyiz.

Genel anlamlarıyla Class, Object, Properties, Method gibi kavramları açıkladık. Şimdi Powershell içerisinden Class oluşturmak için neler yapmamız gerekiyor onlardan bahsedelim. Yapmamız gereken bu kısımda aynı Powershell içerisin de function veya Workflow yazar gibi Class keyword ile başlayıp ClassName belirtmeniz gerekiyor.

Yukarıdaki örnekte görüldüğü gibi Powershell içerisin de herhangi bir Function, Workflow veya Configuration elementleri ile başladığımız gibi keyword olarak Class yazarak ve ClassName belirterek oluşturma işlemini gerçekleştiriyorum.

Şimdi ise Class içerisine “String”,”Int” ve “DateTime” tipinde objeler tanımladım. Artık bu Class çağırıldığı zaman bunlar benim için birer objedir. Class çağırmak için neler yapmam gerekiyor hemen ondan bahsedelim. Bu kısımda karşımıza “New-Object” adında bir cmdlet çıkıyor. Bu cmdlet içerisine Class Adını göndererek kullanabileceğim.

“A” adında bir değişken oluşturdum ve karşına New-Object ClassName şeklinde atayıp çalıştırdım. Daha sonra “A” değişkenine çağırdığım zaman karşımıza Class içerisin de tanımladığım objelerim gelmektedir. Şimdi Bu objeler içerisine değer atama işlemlerine bakalım.

Yukarıda görüldüğü gibi Class içerisinde tanımlamış olduğum objelerime değer atayıp çalıştırdıktan sonra, Class içerisindeki objelerin yeni değerlerini görebilir durumdayım. Bir sonraki yazımızda Class yapısını incelemeye devam edeceğiz.