Active Directory’de PowerShell Kullanımı

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.

Örnek olarak;  Get-Process, Delete-Item, Start-Service 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 Organizasyonlar/Istanbul/Bilgi Teknolojileri/Ag ve Guvenlik/Kullanicilar altında Ozan Diren isimli bir kullanıcı oluşturacağız. 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.

Tüm bilgiler girildikten sonra excel dosyasını “csv” formatında kayıt ediyoruz. Bu formatta kayıt ettiğimizde excel aşağıdaki hali olacak olup bizim Active Directory üzerinden dosyayı gösterebilmemizi sağlayacaktı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ı Import-Csv C:\cagrimerkezi.csv komutu ile içeriye aktarıyoruz.

Bu işlemden sonra PowerShell ISE üzerinde toplu kullanıcı oluşturabilmemiz için gerekli olan komutları yazarak, Organizasyonlar/Ankara/Musteri Operasyonlari/Cagri Merkezi/Kullanicilar altındaki kullanıcıları oluşturuyoruz.

İş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.