PowerShell

İlk windows 2008 yapısı ile gelen bu teknoloji, günümüze kadar güçlenerek gelmiştir. Normal bir CMD ekranından çok daha fazla işlemler yapılabilmektedir ayrıca Microsoft bir çok ürünü için (AD, Exchange vs) PowerShell kullanımına teşfik etmektedir. AD için çoklu kullanıcı eklemek gibi bir durum ile karşı karşıya kalındığında PowerShell burada bize çok büyük bir zaman kazandırmaktadır.

ISE

Grafik arabirime sahiptir ve Power Shell’de yaptığınız bir işlemi çoklu komut haline getirip  uzun Script olarak yazacağımız zaman test eder ve hata ayıklama olarak kullanılan bir toolboxtır. Açılımı Integrated Scripting Environment’dir.

Modül

İçerisinde cmdlet ve fonksiyon gibi özellikleri barındıran yapıya modül diyoruz. Aynı zamanda toolbox olarak düşünülebilir.

Kullanım Kolaylığı: Get-Module –ListAvailable  yardımı ile sistem içrisinde bulunan bütün modülleri listeleyebiliriz.

Cmdlet

PowerShell üzerinde kullanılan komutlara Commandlet denilmektedir ve Cmdlet olarak kısaltması mevcuttur.

Kullanım Kolaylığı: Get-Command –Module “Modül Adı Örn: ActiveDirectory” yardımı ile Modül içerisinde kullanılabilir bütün cmdletleri listeleyebiliriz.

Kullanımı Kolaylaştıracak Bazı Cmdlet

  • Get-Service: Kullanımda olan servisleri ekrana getirmektedir.
    • Kullanım: Get-Service –Name [ServisAdı Örn: Spooler] | Stop-Service / Start-Service
      • Not:  ‘|’   / pipeline” amacı, sol taraftan girilen komutu sağ tarafta uygulama anlamı taşımaktadır. Yukarıda ki örneği baz alacak olursak: Servis adı Spooler olan servisi durdur anlamı taşımaktadır.

Active Directory Cmdlet

Active Directory yönetirken kullanacağımız cmdlet komutları bizim işlerimizi çok fazla kolaylaştırmaktadır.  Bu esnada kullancağımız komutlar;

Get-ADUser -Filter: Active Directory içerisinde bulunan kullanıcıları listelemek için kullanılır. Eğer bütün kullanıcıları getirmek isterseniz ‘*’  komutu girilir. Fakat, kriter içerisinde arama yapmak isterseniz ‘{}’ içerisinde belirterek aramalısınız. Örneğin Get-ADUser –Filter{name –like “Hamit*”} şeklinde aratılabilir. Komutun açılımı: Active Directory kullanıcılarından ismi Hamit ile başlayan bütün kullanıcıları listele. Bütün kullanıcıları listelemesinin en büyük sebebi ‘*’ komutunun, ismin sonunda yer alıyor olmasıdır.  

Figure 1

  • SearchBase: AD Sorguları ve filtreleme işlemleri yaparken, OU tabanlı ve ya hangi bölgede sorgulama yapılacağını belirtmek için kullanılır. SearchBase komutu girilmediği taktirde ise girilen filtreleme işlemi bütün OU içerisinde aranmaktadır. DistinguishedName yardımı ile ilgili parametrelere kolaylıkla ulaşılabilinir.
    • Örnek Sorgu: -SearchBase “OU=User, OU=AnkaraOU,DC=pentest,DC=lab” şeklinde, Pentest.lab AD içerisinde ki Ankara OU içinde bulunan User OU’in içinde ki kullanıcıyı getir gibi bir sorgu yapmak istersek eğer –SearchBase komutunu burada kullanabiliriz

Set-ADUser

Figure 2

Yukarıda ki girilen sorgu ile AnkaraOU içerisinde ki User OU’in bütün kullanıcıların şehir bilgileri Ankara olarak değiştirildi.

NOT: $null komutu ilgili alanın boş olmasını sağlar.

Not2:  -properties * komutu ile kullanıcılar/bilgisayarların bütün özellikleri çağrılacaktır.

  • Not:  Girilen cmdlet’ler hakkında bilgi sahibi değil ya da daha fazla bilgiye ihtiyaç duyuyorsak eğer: Get-Help ‘Komut’ Online diyerek, web arayüzden girilen komut ile ilgili cmdlet bilgilerine ulaşabiliriz. Örneğin: Get-Help Get-ADUser –Online

Power Shell İle Kullanıcı Oluşturma

Figure 3

Power yardımı ile kullanıcı oluşturabiliriz. Kendi oluşturmuş olduğumuz OU adresleri belirtilerek (-Path komutu) kullanıcılarımızı doğrudan bu alanda oluşturabiliriz.  Kullanıcı parolaları girilirken mutlaka ama mutlaka şifrelenmiş olarak veri girişinin yapılması gerekmektedir.

Kullanıcı Parolası Nasıl Şifrelenir?

-AccountPassword belirlenirken, ConvertTo-SecureString komutu yardımı ile girilen kullanıcı parolası sistemede şifreli veri olarak tutulması gerekmektedir.  Kullanıcı parolası belirlenirken –AsPlainText komutu yardımı ile metin parolasını şifrelemeye gerek kalmadan bir güvenli dizeye dönüştürmektedir. –Force komutu ise, kullanıcı oluşturulurken onay istemeden oluşturmasını sağlamaktadır.

ISE Yardımı İle Kullanıcı Oluşturma

Figure 4

Figure 4’de hazırlamış olduğumuz CSV dosyası olan ADUsers.csv içerisinde, 6 veri başlığından oluşan; Firstname, Lastname,FullName,SAM,SAMENG ve UPN sütunlarını görüntüleyebilirsiniz. Verilerimizi Excel tablosundan oluştururken, excelde bulunan formüllerden yardım alınarak hazırlanmıştır. Firstname sütunun ilk harfi ve Lastname sütunun tamamı Sam sütununda birleştirilerek alınmıştır. Sam sütunu Türkçe karekterler içerdiği için SAMENG sütununda kurallara uygun hale getirilmiştir. Bu sebepten dolayı SAMENG sütununa ihtiyaç duyulmuştur.

 Kurallara uygun olarak hazırlamış olduğumuz CSV dosyasını, ISE içerisinde Import-Csv komutu ile içeri aktarıyoruz ve verilerimizin ‘,’ ile ayrıldığını belirtmek için –Delimiter komutunu kullanarak daha sonra ‘|’ (pipe) ile kullanıcı oluşturma kodumuzu foreach döngüsü ile çalışmasını sağlıyoruz. CSV dosyası içerisinde bulunan veri başlıklarını, kullanıcı oluşturma komutumuzda $_.’SütunAdi’ şeklinde ilgili alanlara getirerek verilerimizin döngü yardımı ile hızlı bir şekilde oluşturulmasını sağlıyoruz.

Hazırlamış olduğumuz Scripti çalıştırdığımızda, komut satırında her hangi bir hata ile karşılaşmıyoruz. Fakat, teyit etmek için AD Users and Computers alanına giriş yaparak verilerimizi doğru OU’lara yerleştirdiğimizi görüntüleyebiliriz(Figure 5).

Figure 5