PowerShell ile Active Directory Entegrasyonu

 

Ortaç Demirel, ortacdemirel@yahoo.com, Ağustos 2010

 

Powershell, Microsoftun 2008 server ile birlikte kullanıma sunduğu güçlü bir komut satırı aracıdır. Tamamiyle wmi script ile uyumlu çalışabilmekte ve eskiden satırlarca yazdığımız kodları tek satıra indirgeyebilen oldukça güçlü bir araçtır.

 

Active Directory ile çok başarılı bir entegrasyonu bulunmaktadır PowerShell in. Powershell komutları ile active directory nesneleri rahatlıkla yönetilebilirken yüzlerce hatta binlerce kullanıcılı ortamlarda sistem adminlerinin tek satırlık komut ile tüm active directory kullanıcı ayarlarına hükmetmesini sağlamaktadır.

 

Active Directory tarafında powershell ile kullanılabilecek en güzel eklentilerden biri QUEST software ait "PowerShell Commands for Active Directory"  eklentisidir. Bu eklentiye www.quest.com/powershell  linkinden erişebilirsiniz. Tamamiyle ücretsiz olan bu eklentiyi ilgili sayfadan "PowerShell Commands for Active Directory" başlığının altındaki "Download free" linkinden çekebilirsiniz. 32 bit ve 64 bit için ayrı versyionları bulunmaktadır. Çekilen yazılım  windows Server 2003 R2 ve üstü için rahatlıkla kullanılabilir.

 

Programı kurduktan sonra mevcut powershell inize entegrasonunu sağlamanız gerekmektedir. Bunun için mevcut domain controllerınızdaki powershell i açarak aşşağıdaki komutları verebilirsiniz:

 

 Get-PSSnapin –reg   (Bu komut kayıtlı olan eklentileri görüntüler)

Add-PSSnapin quest.activeroles.admanagement (bu komut ile internetten çektiğiniz eklentiyi yüklemiş oluyorsunuz)

Yükledikten sonra kullanıma geçebiliriz:

Get-qaduser (Ad deki tüm kullanıcıları görüntüler).

Get-qaduser  -name “Ortac” (Sadece Ortac hesabını gösterir).

Get-command –pssn quest.activeroles.admanagement (bu eklentiyle kullanılabilecek komutları listeler).

get-qaduser | set-qaduser -city "Ankara"  (Active Directory deki tüm kullanıcıların şehir bilgisini "Ankara" olarak değiştirir).

get-qaduser | set-qaduser -office "Bilisim" (tüm kullanıcıların office bilgisini “Bilişim” olarak değiştirir).

get-qaduser | set-qaduser -office "Bilisim Uzmanligi" (Tüm kullanıcıların office bilgisini “Bilişim Uzmanlığı” olarak tekrar değiştirir).

new-qaduser -name ‘murat’ -ParentContainer 'OU=ankara,DC=abc,DC=com' -SamaccountName 'myildirimoglu' –UserPassword ‘Passw0rd’  ( Active Directoryde Ankara isimli organization unit içerisinde “Murat” isimli bir kullanıcı  yaratır. Hesap ismi “myildirimoglu” ve parolasıda “Passw0rd” olacaktır).

Get-QADGroupMember 'ABC\Administrators'  (Administrators grubuna üye olan kullanıcıları gösterir)

Add-QADMemberOf    'ABC\ortac'   -group  'ABC\Sistem'  (Ortac isimli kullanıcıyı “Sistem” grubu içerisine üye olarak atar)

Move-QADObject ortac -to ankara  (“Ortac” isimli nesneyi “Ankara” isimli organization unit içerisine taşır)

Remove-QADObject ortac (“Ortac” nesnesini silecektir)

Remove-QADObject windows7 (Bilgisayar hesaplarıda aynı komut ile silinebilir)

Get-qaduser  -locked (Kitlenmiş hesapları görüntüler)

Get-qaduser  -disabled (Devre dışı bırakılmış hesapları görüntüler)

 

Fitreleme:

get-qaduser -lf "(cn=ortac)"  (Active directory içerisindeki “ortac” nesnesini getirir)

get-qaduser -lf "(physicalDeliveryOfficeName=Bilisim Uzmanligi)"  (office bilgisi olarak “Bilişim uzmanlığı” yazan nesneleri görüntülemek için kullanılır)

Site İşlemleri:

get-qadobject -searchroot "cn=sites,cn=configuration,dc=abc,dc=com" -type site  (Site ları görüntüler)

 

NOT: Powershell kapatılıp tekrar açıldığında eklentinin kullanılabilmesi için “Add-PSSnapin quest.activeroles.admanagement” komutunun tekrar verilmesi gerekmektedir.

 

Görüldüğü üzere bu ve benzeri komutlar ile active directory ortamına bu eklenti ve powershell ile hükmetmek oldukça kolaylaşıyor.