Merhaba arkadaşlar. Uzun bir aradan sonra yeni bir makale ile tekrar beraberiz. Bu makalede active directoryde bulunan tüm kullanıcıların bizim istediğimiz içeriklerle, istediğimiz yere export etmeyi göreceğiz.
Böyle bir listeye ihtiyacımız olduğunda içeriklerimiz genellikle ( kullanıcı ismi, giriş ismi ( logon name), enable/disable durumu, departman, ofis, e-posta, telefon….) ihtiyacımıza göre liste uzatılabilir. Bu liste basit bir iş için ise ( sadece logon name yada e-mail ) size tavsiyem saved query olucaktır. Fakat kullanıcı ile ilgili her içeriği qurery ekranında bulamayabilirsiniz. Ben kısaca saved query’den bahsederek Powershell üzerinden kullanıcıları nasıl geçebiliriz kısmına geçeceğim.
Saved query nedir ?
Saved query; Active directoryde sorgu yazarak karışık olan listeyi bize göre dizen ve bunu export etmemize imkan sağlayan bir filtrelemedir. Saved query ile domaindeki tüm kullanıcıları, mail adreslerini, telefon numaralarını export etme imkanımız vardır. Aldığımız bilgilerle daha sonradan bir optimizasyon programı yaparak mail veya telefon rehberi gibi bir uygulama yapabiliriz.
Resimde görüldüğü gibi kullanımı da bir o kadar kolaydır. Kullanımı şu şekildedir;
Active Directory user and computers ekranına gelip ( run/dsa.msc) saved query yazan klasöre sağ tıklıyorum ve ” New / Query ” tıklıyorum.
New Query ekranında Custom Query diyerek herşeyi kendim tanımlamak istiyorum.
Custom ekranından sonra Field kısmından User / First Name * olacak şekilde ayarlama yapıyorum. Bu sayede tüm kullanıcılarımı listeye dökebileceğim.
Ok diyerek listeyi görelim.
Gördüğümüz gibi tüm kullanıcılarım listelendi. Şimdi export etmeyi görelim.
Oluşturduğum query’nin üzerine sağ tıklayarak export list demem yeterli. Daha sonrada bunu bir excell’e import edebilirim.
Saved query detaya çok fazla inmeden işimizi kolaylaştırabilir fakat her attiribute saved queryde gözükmez. Bunun için şimdi komut ekranından filtrelemeyi görelim.
Kullanacağımız komut Get-ADUser -filter *. Söylemek istediği şey tüm ad kullanıcılarını filtresi ne olursa olsun listele. Active Directory Module for Windows PowerShell den deneyerek ilerleyelim.
Get-ADUser -filter * -properties sAMAccountName,mail komutu bize anlayacağınız gibi kullanıcının özelliklerini, adını ve mail adresini çıkartacaktır. Görüldüğü gibi liste biraz karışık. Bu karışıklığı önlemek için komuta | select-object Name, sAMAccountName,mail ekliyorum.
Liste biraz daha anlaşılır şekle geldi. Listeyi a-z ye sıralamak için | sort-object name komutunu kullanalım.
Listemi biraz daha detaylandırarak kullanıcının enable yada disable olma durumu yada şifresinin expires olma durumunu öğrenmek istiyorum.
Listede çıkan sonuçlara bakarsak, benim ali kullanıcım disable durumdaydı, listede de enabled durumu false olarak döndürüldü. Burcu kullanıcımın hem şifresi değişmesin hemde enable durumdaydı. Gürkan kullanıcım iste enable durumda fakar şifresi değişsin olarak tanımlanmıştı. Şimdi istersek bu listeyi çok fazla uzatarak tüm bilgileri listeleyebilir, daha sonradan bu listeyi dışarıya .csv formatında çıkartabiliriz.
Attiribute’lerin komut ekranındaki karşılığını aşağıdaki listeden öğrenebilirsiniz.
Active Directory İsim Karşılık Listesini İndirmek İçin Tıklayınız
Dışarıya çıkartmak için komutun sonuna | Export-csv c:/list.csv yazmak yeterli. Fakat ad kullanıcılar türkçe karakter ile oluşturulmuş ise | Export-csv c:/list.csv -encoding “unicode” yazmak gerekecektir. Buradaki -encoding “unicode” çıkan listedeki karakterleri unicode şekilde çıkartmasını sağlayacaktır.
Gördüğümüz gibi C diskinin altında list isimli csv dosyasını export etmiş bulunmaktayız. Sonraki makalemde görüşmek dileğiyle 🙂
“Active Directory User List Export” için bir yorum