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.