Category: Powershell

Powershell ile Microsoft Graph API Kullanımı – Bölüm 2

İlk bölümünüzde Powershell ile Microsoft Graph API üzerinde nasıl auhentication olacağımızı ve tüm ön gereksinimleri inceledik. Artık ilk isteğimizi gerçekleştirelim ve nasıl bir mantığı olduğuna bakalım.

Çalıştırdığımız Invoke-RestMethod cmdlet çıktısını ‘responsUser’ adındaki değişkene atamasını gerçekleştirdim. Fakat bunun öncesinde, ne tür parametler gönderdik ona bakalım. Microsoft Graph API URI kısmına dikkat çekmek istiyorum. Bu kısım aşağıdaki şekilde iki farklı bölüme ayrılıyor.



Powershell ile Microsoft Graph API Kullanımı – Bölüm 1

Bildiğiniz gibi artık API kullanımının meşhur olduğu bir dünyada yaşıyoruz. Hemen hemen her incelediğim projede bir yerinde bir ucunda API ile iletişim haline geçip iş yapmaya çalışıyoruz. Bu yazı içerisinde biraz eğlenceli ve tuhaf ama keyifli bir konuyu aktarmak istiyorum. Microsoft Graph API bizlere Azure Active Directory, Office 365 Bileşenleri, Intune, Planner etc, içerisindeki istediğimiz kullanıcının özniteliklerine ulaşmayı ve bunları alarak raporlar oluşturmamıza olanak sağlanıyor. Bunu sadece kullanıcı bazında sınırlamamak lazım, Intune, Mobile Device Report gibi genişletebiliriz. Her türlü raporları bu API sorgular yaparak alma şansınız var. Office 365 tarafı ile ilgilinen arkadaşlar için, şimdilerde Powershell Module geçişleri yapıyorlar, ya da daha önceki yazdıkları kod bloklarını dönüştürmeleri lazım. Bunun başında, MSOnline adındaki module artık, AzureAD adındaki olan ve arka tarafta Microsoft Graph API v2.0 ( Beta ) olarak kullanılan sürüme dâhil edilerek geliştirilmiştir. Bu yüzden iki farklı Powershell Modulunu kullandığınız zaman farklı öznitelikler(propertyler) görebilirsiniz.



Azure Route Tabloları Nasıl Yapılandırılır? – Bölüm 2

Yazımızın ilk bölümünde temel anlamıyla Route Tablolarını ve ne tür yönlendirmeler yapabileceğimizin üzerinden geçtik. Makalenin sonunu Route Tablosu oluşturma kısmında bitirmiştik. Şimdi ise artık beraber Route Tablosu oluşturalım ve ne tür detayları bizi karşılıyor görelim. Mevcut Route Tablomuzun üzerine gelelim ve Routes sekmesinden Add butonuna basalım ve artık başlayalım.



Azure Route Tabloları Nasıl Yapılandırılır? – Bölüm 1

Bu yazı içerisinde Azure Route Table veya diğer adıyla bilnen User-Defined Route Table konusu hakkında detaylı bir şekilde bahsetmek istiyorum. Temel olarak User-Defined Route Table yaratılmasındaki gaye, Azure üzerinde konumlandırdığınız Network Virtual Appliance (WAN Accelator, Firewall ) cihazlarına trafiğin yönlendirilmesine yardımcı olur. Bildiğiniz gibi Azure üzerinde bir Virtual Network oluşturduğunuz zaman bunun yönetimi tamamen Software-Defined Networking olduğunu (SDN) için Microsof tarafından yapılmaktadır. Her oluşturacağınız Address Space, Subnet aynı Virtual Network içerisinde ise doğuştan ( temel olarak ) birbirleriyle haberleşirler.

Öncelikle şunu çok iyi anlayalım. Neden Azure tarafında User-Defined Route tablolarına ihtiyacımız var. Artık birçok şirket artık Azure üzerindeki kaynaklarının İnternet trafiğini inbound veya outbound tamamıyla Network Virtual Appliance üzerine devretmek istiyor. Microsoft Azure bizlere Marketplace üzerinde sunduğu ve desteklediği birçok çözüm var. Bunlar sırasıyla, Fortigate, Juniper, Cisco ve Checkpoint olarak adlandırabiliriz. Bunun yanı sıra Microsoft artık Azure Firewall adında tamamıyla bir firewall as a service hizmeti sunmaktadır. Bu kısımda maliyet yönetim ve esneklik devreye giriyor. Eğer siz third-party bir Network Virtual Applaince kiraladığınız zaman BYOL ve Core başında kullandığınız kadar ödeme modeli çıkmaktadır. Açıkcası bunlar benim kafamda oturtamadığım kadar pahalı gözükmektedir. Tercih meselesi ve ihtiyaçlardan oluşan bir durum işin özeti aslında. Tek bir Network Virtual Appliance koyma şansınız ne yazıkki çok gözükmüyor bu seferde Single Point of Failure kavramına takılıyor olacaksınız. Bu yüzden en az iki adet Availbility Set içerisinde Network Virtual Appliance konumlandırmalısınız ki hizmetiniz kesinti yaşamasın. Bunun dışında SNAT ve DNAT sorunlarına detaylandırıp canınızı hiç sıkmak ve anlatmak istemiyorum, orası yeni yeni Azure Load Balancer tarafında destekleniyor.



Powershell – Diziler hakkında bilmek istediğiniz her şey – Bölüm 1

Uzun zamandır yazmak istediğim yazının ilk adımını atmış bulunuyorum. Powershell ile çok fazla zamanı geçiyorum fakat deneyimimi aktaracak derli toplu bir yazı olmadığını farkındayım bu yüzden Level 100 bir seri ile olan Powershell ile Diziler ( Array ) konusuna değineceğim. Konuya başlamadan önce kesinlikle bir uyarı yapmam gerekiyor, bunun en başı temel programlama bilgisinde olan değişken nedir, nasıl atanır gibi konulara göz gezdirmeniz olacaktır. Bu yazı hiçbir şekilde Değişken ( Variable ) gibi detayları kapsamıyor. Sizin bildiğinizi en azından Powershell içerisinde değişken nasıl oluşturulur, nasıl atanr gibi konulara ucundan hâkim olmanız yeterlidir.

Powershell Diziler Nedir, Ne için kullanmayalıyız?

En basit haliyle ‘Diziler’ nedir bunu bir anlayalım. Diziler, birden fazla aynı veya farklı tipte veri tipinin bir araya gelmesiyle oluşur. Bu veriler String, Integer, PSObject vd. gibi tipler olabilecegi gibi, kendi yazdigimiz nesneler de olabilir. Buna ek olarak birden fazla değişkeninde bir araya gelmesiylede oluşabilir diye tanımlayabiliriz. Çok geçmise gidersek, Matematikteki sonlu dizi adında bir konu var, oraya dönüp hafızayı pekiştirebilirsiniz. Yazımında devamında artık Dizilere ( ‘Array’ ) olarak sesleniyor olacağım bu yüzden kafanız karışmasın.

Array, birden çok öğenin bir koleksiyonu olarak işlev gören bir veri yapısıdır. Koleksiyon kelimesi çok önemli bunu lütfen aklınızda yer etmesini sağlayın. Koleksiyon dediğimiz zaman aklınıza elinizde birden fazla erişebildiğiniz bir değerler bütünü olduğunu hayal ediniz. Array’ler üzerinde yeni eleman ekleyebilir veya Array içerisinden belirlediğiniz bir elemana erişebilirsiniz.

Array oluşturmaya ilk adım

Powershell içerisinden değişken bildiğiniz üzere ‘$’ işareti ile başlanarak oluşturulmaya başlanır. Vereceğiniz değişken adını ‘$’ işaretinden sonra yazarsınız ve Powershell tarafından otomatik olarak algılanır ve ‘=’ eşittir ile atamasını gerçekleştirirsiniz. Hemen aşağıdaki basit kullanım ile başlayalım.



Powershell – Diziler hakkında bilmek istediğiniz her şey – Bölüm 2

Serimizin ilk yazısında, Powershell içerisinden Array kullanımı, oluşturma ve ne şekilde oluşturabileceğimiz üzerine değindik. Şimdi kaldığımız yerden hız kesmeden devam edelim.

Array içerisindeki eleman sayısı bulmak

Oluşturduğumuz array içerisinde kaç eleman var olduğunu merak ediyorsanız bunun için ‘Count’ niteliğini çağırarak değeri bulabilirsiniz.

Görüldüğü üzere sadece tanımladığım Array çağırıp onun özelliklerine indikten sonra, kaç elema olduğunu gördüm. Noktaya bastığınız birçok nitelik ve methodlar karşınıza çıkacaktır. Tek tek ne olduğuna Microsoft Web sitesinden bakabilirsiniz.



Powershell – Diziler hakkında bilmek istediğiniz her şey – Bölüm 3

Artık Array hakkında baya bir bilgi edindiğinimizi düşünüyorum ama yetmez diyebilirim. Geliştirdiğiniz Script, Workflow vd süreçlerde kesinlikle kullanacağınız farklı modeller olacaktır. Şimdi ise, Array içerisinden filter yapma sürecine değinelim.

Array ile Where kullanımı

En basit haliyle, Where-Object veya Where olarak bilinen bu cmdlet bizlere Pipeline sürecinden gelen değerleri filtreleme yapmamıza imkân sağlar. Daha yalın haliyle, Array içerisinde birçok elemanınız var bunların içerisinde çok özel bir karakteri olan veya belirli bir değere eşit olanları bulmak isteyebilirsiniz.

Bildiğiniz gibi yukarıdaki şekilde bir Array kollekisyonumuz bulunmaktaydı. Bunun üzerinden devam ederek Where kullanımı incelleyeceğim. İlk örnek ‘$myfirstArray’ array tipindeki değişken içerisinde ‘Where’ methodunu çağırarak bir Script Block içerisinde değerimi gönderip filtreleme işlemini yapmak. Yukarıdaki örnek içerisinde sadece ‘remote-pc4’ eşit olmayan değerleri dönmesini istedik. Eğer Powershell özelinde karşılaştırma operatörlerini bilmiyorsanız lütfen göz gezdirin. Mevcut bir programlama diline göre biraz farklılıklar var. Örnek olarak ‘==’ yerine ‘-eq’ olarak kullanılmaktadır. Bunun gibi detayları için önce karşılaştırma operatörlerini öğrenmenizi tavsiye ederim.



Windows Server 2016 – Standalone Domain Controller Template

I’ve been working Azure Resource Templates for consistency deployment process.This GitHub repository offers test platform who wants to deploy quickly Active Directory Environment which will be placed on Windows Server 2016 OS for Azure deployments. All of the templates in this repository have been developed for who needs this structure. This repository contains just Standalone Active Directory deployment templates that have been tested. The templates for Microsoft Learning Partner who wants to demonstrate quickly Azure Resource Manager Templates



Creating Peering from different Azure Active Directory tenants with Powershell

There are several ways to connect Azure Subscriptions. Before, we were using VPN gateway for connecting different subscriptions Virtual Network to Virtual Network. We can use VNet Peering to connect virtual networks in the same Azure region or different Azure regions. The virtual networks can be in the same Azure subscription or in different subscriptions, as long as they share the same Azure AD tenant. Also now, we can use VNet Peering to connect different Azure AD Tenants. VNet Peering also allows you to connect two virtual networks created by using different deployment models. In this article, I’m going to explain how can we implement VNet Peering across different Azure Active Directory Tenants.

Before we start this article, what exactly we need to implement for this feature. We can configure VNet Peering by using the Azure portal, Azure PowerShell, Azure CLI and also Azure Resource Manager templates.



Packer kullanarak ile Azure üzerinde VM Image Yönetimi – Bölüm 1

Packer, HashiCorp tarafından sunulan tek bir kaynak konfigürasyonı ile birden fazla farklı platformlar için Virtual Machine veya konteyner imajları oluşturmak için kullanılan bir araçtır. Bu yazı serisinde Azure özelinde custom image’lerin nasıl oluşturulacağını açıklayacağım ancak önce Packer nedir kendisi tanıyalım. Kısacası Packer, Microsoft Azure’da spesific image oluşturmak, tanımlamak için kullanılabilen açık kaynaklı bir araçtır. HashiCorp tarafından bizlere sunulan bu araç ile Ansible, Powershell DSC etc. İle birlikte kullandığınız zaman Infrastructure as code yönetimini başka bir boyuta taşıyor olacaksınız. MsHowto üzerinde bulabileceğiniz, Mustafa Kara tarafından yazılan Ansible yazı serisi okumanızı tavsiye ederim. Packer, birden fazla platformda çalışır, Bu yazı serisinde Microsoft Azure üzerinde custom image’ler oluşturmak ve saklamak için örnekler gerçekleştirip, Packer’in Azure Resource Manager (ARM) bütünleşip, Azure Managed Image ile harika ve sorunsuz bir uyum içinde çalıştığına şahit olacaksınız.