Powershell: Microsoft’un 2006 yılında Windows ve Windows Server işletim sistemleri üzerindeki kontrol yetkinliğini arttırmak ve otomatikleştirilmiş işlevler hazırlamak amacıyla geliştirdiği platformdur. Windows kullanıcılarının işletim sistemi üzerinde çeşitli servislere ve GUI ekranı üzerinden gerçekleştiremediği işlemlere erişmesine imkân tanıyan komut istemi ekranıdır. Powershell güncel Windows işletim sistemlerinin içerisinde yüklü olarak gelmektedir.
Active Directory’de PowerShell Kullanımı
Powershell’in üzerinde kullanılan komutlara Cmdlet adı verilmektedir. Ayrıca powershell bilgisayarlar, kullanıcılar, gruplar gibi Active Directory nesnelerinin de yönetilmesine imkan sağlamaktadır. Aşağıda bazı cmdlet örnekleri bulunmaktadır, işlevlerini inceleyelim.
Get-ADUser – Active Directory üzerindeki kullanıcıları sorgulamak için kullandığımız komuttur.
Set-ADUser – Active Directory üzerindeki kullanıcıların bir özelliğini değiştirmek için kullandığımız komuttur.
Get-Service – Sunucu üzerindeki servisleri çağırıp, görüntüleyebildiğimiz komuttur.
Powershell’i başlatmak için Start/Windows Server altından PowerShell’i seçerek yada Start/Windows PowerShell altından, Windows PowerShell’i seçerek başlatabiliriz. Başlatırken yönetici olarak çalıştırmak yapacağımız işlemlerde bize yetki sorunu çıkarmayacaktır. Burada birde Windows PowerShell ISE bulunmaktadır, burayı ise daha uzun komutlar sciptler yazacağımız zaman, Powershell’e nazaran bu tür işlemlere daha elverişli bir arayüzü olan bu ekran üzerinden gerçekleştirebiliriz.

Powershell Komutları
Powershell, Windows ve Windows Server işletim sistemlerinin yönetimini kolaylaştırmak amacıyla tasarlanan otomasyon platformu ve betik dilidir. Diğer metin-tabanlı shell sitemlerinin aksine, Powershell zengin nesnelere ve tüm .NET ortamının içeriğine sahiptir.
Powershell Komut Yapısı – Fiil-İsim formatı şeklindedir.
Get-Process, Delete-Item, Start-Service gibi örnekler verilebilir.
Powershell üzerinde birçok cmdlet bulunmaktadır. Aşağıda bazı örnekleri inceleyeceğiz.
Get-Help
Get-Help komut aracılığı ile Powershell üzerinde bulunan diğer komutlara (cmdlet) ait bilgi elde edebiliriz. Get-Help komutu kullanmadan önce Help dosyasının güncellenmesi için Update-Help komutunun çalıştırılması gerekmektedir. Komutu çalıştırdıktan sonra gelen ekranı “Y” ile geçerek, güncelleme işlemini başlatabiliriz.

Get-Help Get-AD yazdığımızda “Tab” tuşuna basarsak, bizim karşımıza Active Directory ile ilgili bir çok komut çıkacaktır. Biz bu komutların ne işe yaradığını ve nasıl kullanmamız gerektiğini öğrenmek için yazdığımız komutun sonuna “-online” ifadesini ekleyerek, otomatik olarak açılacak olan web browser üzerinden Microsoft’un ilgili sayfalarına ulaşabiliriz. Örneklerle beraber bilgi alıp, bunları kendi ortamımızda uygulayabiliriz. Ayrıca Microsoft dışındaki birçok Bilgi Teknolojileri kaynaklı sitelerde de Türkçe daha ayrıntılı ve açıklamalı örneklerde bulunmaktadır.


Get-Command
Get-Command komutu Powershell üzerinde belirtmiş olduğu kriterlere uygun komutların listelenmesi için kullanılır. Örnek olarak;
Get-Command *service* komutu ile içerisinde service kelimesi geçen tüm komutları size listeler.

Get-Help Get-Command komutu ile Get-Command komutunun kullanımını inceleyebiliriz. Ek olarak, bilgi almak istediğiniz komutu “-online” olarak da Microsoft’un sitesinden inceleyebiliriz, aşağıdaki komutu çalıştırmamız yeterli olacaktır.
Get-Command get-* komutu ile get- ile başlayan tüm Powershell komutları (cmdlet) listelenmektedir.

Active Directory Üzerinde Örnekler ve Alıştırmalar
Powershell komutları ve bu komutların kullanım alanları hakkında biraz bilgi edinmiştik. Şimdi ise PowerShell’i kullanarak Active Directory üzerinde bazı işlemler gerçekleştireceğiz.
Aşağıda yaptığımız örnekte görüntüleme komutunu kullanarak, Active Directory üzerinde isme göre sorgulama yaptık ve “like” komutu sonrasında yazdığımız kelimeye benzeyen kişinin görüntülenmesini sağladık.
Get-ADUser –Filter{name –like “Aykut*”}

Aşağıda aykut.tuylu kullanıcısına ait tüm özellikleri görüntülemesini sağlıyoruz.
Get-ADUser –Identity “aykut.tuylu” –Properties *

PowerShell üzerinden bu tür işlemler yapabileceğimiz gibi, kullanıcı oluşturma işlemleri de gerçekleştirebiliriz. Active Directory PowerShell üzerinde yeni bir kullanıcı oluşturmak için gerekli olan tüm bilgileri girerek kullanıcı oluşturacağız. Daha önce Powershell ISE’den bahsetmiştik, uzun komutlar sciptler yazacağımız zaman, Powershell’e nazaran bu tür işlemlere daha elverişli bir arayüzü olan bu ekran üzerinden işlemleri gerçekleştireceğiz. PowerShell üzerinden girmiş olduğumuz komutlarla belirtmiş olduğumuz OU altında Ozan Diren isimli bir kullanıcı oluşturacağız.
Aşağıdaki komutumuzda “New-ADUser” cmdlet’ini kullanarak, oluşturacağımız kullanıcıya ait bilgileri gireceğiz.
GivenName, Surname, Name, DisplayName, SamAccountName, UserPrincipalName ile kullanıcıya ait kişisel bilgileri giriyoruz.
AccountPassword ile kullanıcıya vereceğimiz parola bilgisi “…….” arasına giriyoruz.
ChangePasswordAtLogon ile kullanıcının parolasını ilk girişinden sonra değiştirmeye zorlamasını ayarlamış oluyoruz. İsterseniz bu özelliği aktif etmeyebilirsiniz, kullanıcı sizin vermiş olduğunuz parola ile sisteme giriş yapabilir.
Path ile kullanıcıyı hangi OU altında oluşturmak istediğimizi giriyoruz.
İlgili komutların nasıl kullanıldığı ile ilgili örneğimizi aşağıda görebilirsiniz. Burada ilgili AD attribute bilgilerine karşılık gelen bilgileri girmeye dikkat etmeniz gerekmektedir.

Komutlarımızı yazıp, çalıştırdığımızda herhangi bir hata ile karşılaşmadık. Active Directory Users and Computers ekranına giriş yaparak, kontrol ediyoruz. Kontrol ettiğimizde ilgili OU altında başarılı bir şekilde kullanıcının oluşturulduğunu görmüş olduk.

Powershell ile Toplu Kullanıcı Oluşturma
Active Directory üzerinde powershell komutları ile yeni kullanıcı oluşturmayı görmüştük, yapılar büyüdükçe toplu kullanıcı oluşturma ve güncelleme işlemlerine ihtiyaç duyulmaktadır. Özellikle yüzlerce binlerce kullanıcı oluşturma yada güncelleme yapılması gereken durumlarda bunları tek tak yapmak çok ciddi zaman kaybına yol açacaktır. Bu sebepten dolayı yine PowerShell ISE kullanarak Active Directory üzerinde toplu kullanıcı oluşturmayı inceleyeceğiz.
İlk olarak oluşturacağımız kullanıcılara ait bir excel dosyayı oluşturuyoruz ve buraya kullanıcılarla ilgili olan ve ihtiyaç duyduğumuz tüm bilgileri giriyoruz.
Excel dosyasını oluştururken, sütunlara verdiğimiz başlık isimlerime dikkat etmemiz gerekmektedir. Çünkü komutumuzu yazarken bu başlık isimlerini AD üzerindeki attribute bilgileri ile eşleştirerek ilerleyeceğiz.
Aşağıda örnek olarak oluşturulmuş excel tablosunu görebilirsiniz.

Tüm bilgiler girildikten sonra excel dosyasını “csv” formatında kayıt ediyoruz. Bu şekilde kayıt ettiğimizde excel aşağıdaki formatı alacak olup, bizim Active Directory üzerinde dosyayı gösterebilmemizi ve okutabilmemizi sağlayacaktır.
CSV formatındaki excel dosyasının görüntüsü aşağıda yer almaktadır.

Oluşturmuş olduğumuz csv dosyasını Active Directory sunucusunda C sürücüsü içerisine kopyalıyoruz. Bu işlemden sonra PowerShell ISE açıyor ve oluşturmuş olduğumuz csv dosyasını kopyaladığımız path üzerinden Import-Csv C:\cagrimerkezi.csv komutu ile içeriye aktarıyoruz.
İçeriye aktarma işlemi tamamlandığında alt kısımda kullanıcılara ait bilgileri görüntüleyebiliriz.

Bu işlemden sonra PowerShell ISE üzerinde toplu kullanıcı oluşturabilmemiz için gerekli olan komutları yazarak, belirtmiş olduğumuz OU altında kullanıcıları oluşturacağız.
Burada tek kullanıcı oluşturmaktan farklı olarak toplu kullanıcı oluşturacağımız için, excel üzerine girdiğimiz bilgiler ile kullanıcılarımızı oluşturacağız. Aşağıdaki komutta yazdığımız AD attribute bilgileri ile excel üzerinde belirtiğimiz başlık isimlerini eşleştirmemiz gerekmektedir. Son olarak kullanıcıları hangi OU altında oluşturmak istediğinizin bilgisini girerek komutu çalıştırabilirsiniz.
İlgili komutların nasıl kullanıldığı, excel dosyasındaki sütun başlıklarının, AD üzerindeki hangi attribute bilgileri ile eşleştirildiğini aşağıdaki örneğimizde görebilirsiniz.

İşlem tamamlandı ve herhangi bir hata ile karşılaşmadık. Active Directory Users and Computers ekranına giriş yaparak, kullanıcıları kontrol ediyoruz. İlgili OU altında kullanıcıların başarılı bir şekilde oluşturulduğunu görmüş olduk.

Şimdi bu kullanıcılardan herhangi bir tanesiyle, excel üzerinde belirtmiş olduğumuz şifreyi de kullanarak, giriş yapmayı test edeceğiz. Kullanıcı adımız ve şifremiz ile giriş yaptığımızda, sorunsuz bir şekilde şifremizi kabul etti, powershell kodumuzda ilk girişte şifreyi değiştirmeye zorlasın diye belirtiğimiz için, kişiden şifresini değiştirmesini istemektedir.

Şifre değişikliğinden sonra sorunsuz bir şekilde profil oluşmaktadır. Kullanıcının başarılı bir şekilde oluşturulduğunun kontrolü yapılmıştır.
