Get-ADUser Powershell Cmdlet'i aracılığıyla Kullanıcı Yönetimi
giriiş
PowerShell'deki Get-ADUser cmdlet'i, Active Directory (AD) etki alanında bir veya daha fazla kullanıcı bulmak için birçok parametre sağlar.
Varsayılan olarak PowerShell, makinede oturum açan hesabı kullanarak çalışır. Farklı bir hesap kullanarak bir komut çalıştırmak istiyorsanız komutunuzdan önce bu anahtarı kullanarak PowerShell'i sizden kimlik bilgilerini istemeye zorlayabilirsiniz:
$cred =Get-CredentialBelirli bir Kullanıcıyı Arama
-Kimlik Parametresi
Hangi AD kullanıcısını almak istediğinizi biliyorsanız -Identity parametresini kullanın:
Get-ADUser -Identity “identifier”Tanımlayıcı için aşağıdakilerden birini belirtin:
- Ayırt Edici İsim (DN)
- SamHesapAdı
- GUID
- SID
Örnek
Get-ADUser -Identity "ABBEY.Crawford"Aramayı Belirli Bir Kuruluş Birimiyle Sınırlama
-Arama Tabanı Parametresi
Aramayı ayırt edici adı (DN) ile belirtilen belirli bir kuruluş birimiyle sınırlamak için -SearchBase parametresini kullanın:
Get-ADUser -Filter "givenname -Like 'Abbey'" -SearchBase "distinguishedName of OU"Örnek
Get-ADUser -Filter "givenname -Like 'Abbey'" -SearchBase "OU=Versacorp,DC=milkyway,DC=local"-Arama Kapsamı Parametresi
Aramayı belirli bir kuruluş birimiyle ve belirli sayıda alt kuruluş düzeyiyle sınırlamak için SearchBase ve SearchScope parametrelerini birleştirin. Örneğin, bir kuruluş birimindeki ve onun doğrudan alt kuruluş birimlerindeki kullanıcı hesaplarını bulmak için SearchScope için 1 değerini belirtin. Hem alt hem de torun kuruluş birimlerini dahil etmek için 2 değerini kullanın.
Get-ADUser -SearchBase " distinguishedName of OU " -SearchScope "2"Örnek
Get-ADUser -Filter "givenname -Like 'Abbey'" -SearchBase "OU=Versacorp,DC=milkyway,DC=local" -SearchScope "2"Belirli Kullanıcı Gruplarına Göre Filtreleme
-Filtre Parametresi
Herhangi bir tanımlayıcının tam değerini bilmiyorsanız, filtrelenecek bir özelliği ve filtre için bir değeri aşağıdaki gibi belirtebilirsiniz:
Get-ADUser -Filter “filter value”Operatörler
| Operator | Meaning | Sample expression |
| -eq | Equal to | Name -like ‘Inga’ |
| -ne | Not equal to | Country -ne ‘US’ |
| -gt | Greater than | BadLogonCount -gt ‘0’ |
| -ge | Greater than or equal | Modified -ge ’06-04-2021 12:00:00? |
| -lt | Less than | LastLogonTimeStamp -lt ’01-08-2020? |
| -le | Less than or equal | Created -le ’01-08-2020? |
| -like | Wildcard search | Mail -like ‘*@xyz.com’ |
| -notlike | Wildcard search with negation | Department -notlike ‘*’ |
| -and | And | Country -eq ‘US’ -and Department -eq ‘Operations’ |
| -or | Or | Country -eq ‘US’ -or -Country -eq ‘UK’ |
Belirli Bir Ada Sahip Kullanıcıları Bulma
Bir kullanıcıyı kendi adı veya adının bir kısmı ile aramak için -Filter parametresini -like cümleciği ve bir değerle birlikte kullanın.
Aşağıdaki örnekte, GivenName AD özniteliğini içeren Filter parametresinin kullanımı gösterilmektedir. VerilenAdı Abbey'i içeren kullanıcıları döndürür.
Get-ADUser -Filter “givenname -Like ‘Abbey’”Benzer İsimlere Sahip Kullanıcıları Bulma
Adı belirli bir dizeyle başlayan tüm kullanıcıları elde etmek için joker karakter operatörünü kullanarak önceki komutu aşağıdaki gibi değiştirebilirsiniz:
Get-ADUser -Filter "Name -like 'Abb*'" | Select Name,givenname,surname,samAccountName,distinguishedname | ftGTüm Etkin Kullanıcıları Bulma
Tüm etkin kullanıcıları görmek istiyorsanız bu cmdlet'i kullanabilirsiniz:
Get-ADUser -filter {Enabled -eq "true"} | ftEngelli Kullanıcıları Bulma
Engelli kullanıcıları bulmak, AD temizliğini kolaylaştırmak açısından oldukça değerli olabilir. Bazı şirketler Active Directory nesnelerini denetim amacıyla saklamayı tercih ettiğinden, tek bir filtreyle basit bir komut kullanan "-Filter "Enabled -eq 'false'", yüzlerce devre dışı kullanıcıyı döndürebilir. Sonuçları sınırlamak için -SearchBase filtresini belirli bir kuruluş birimiyle kullanın. Örneğin, bu cmdlet belirli bir kuruluş birimindeki tüm devre dışı bırakılmış kullanıcı hesaplarını bulacaktır:
Get-ADUser -Filter “Enabled -eq 'false'” -SearchBase "CN=Users,DC=Knox,DC=lab" -Properties * | Select Name,Enabled |ftE-posta Adresi Olan Kullanıcıları Bulma
Kendilerine atanmış posta kutusu olan tüm kullanıcıları bulmak için aşağıdaki komutu kullanın:
Get-ADUser -Filter {mail -ne "null"} -Properties Name,GivenName,mail| ft Name,GivenName,mailŞifre Son Kullanma Tarihi Ayarlanmamış Hesapları Bulma
Güvenliği güçlendirmek için, 'passwordneverexpires' özelliği true olarak ayarlanmış tüm hesapları aşağıdaki gibi bulmak isteyebilirsiniz:
Get-ADUser -Filter {passwordneverexpires -eq "true"} | Select Name, sAMAccountNameEski Kullanıcı Hesaplarını Bulma
Bazen bir süredir kullanılmayan kullanıcı hesaplarını filtrelememiz gerekebilir. Son 60 gün içinde kullanılmayan tüm kullanıcı hesaplarını şu şekilde bulabilirsiniz:
$CutoffDate = (Get-Date).AddDays(-60)
Get-ADUser -Filter "LastLogonDate -lt '$CutoffDate'" -Properties LastLogonDate | Select Name, LastLogonDateBelirli Bir Tarihte Oluşturulan Kullanıcıları Bulma
Active Directory'de belirli bir tarihte oluşturulan tüm kullanıcı hesaplarını görmek için bu komutu kullanabilirsiniz:
Get-ADUser -Filter {Created -lt '7/30/2021'} | Select NameBirden Çok Filtreyi Birleştirme
Kullanıcıları bulmaya yönelik karmaşık kriterleri tanımlamak için birden fazla filtreyi birleştirebilirsiniz.
örnek 1
Aşağıdaki komut, Satış departmanındaki tüm etkin kullanıcıları döndürecektir:
Get-ADUser -Filter "Enabled -eq 'true' -and Department -like 'Sales'" -Properties * | Select Name, Department |ftÖrnek 2
Aşağıdaki cmdlet, departman özniteliği null olmayan ve adı A harfiyle başlayan tüm kullanıcıları döndürecektir:
Get-ADUser -filter {Department -ne "null"} | Where-Object Name -like 'A*'Hangi Özelliklerin Görüntülendiğini Kontrol Etme
-Özellikler Parametresi
Varsayılan olarak Get-ADUser komutu yalnızca bir avuç parametre döndürür. Bir kullanıcının özelliklerinin genişletilmiş listesini istiyorsanız bu cmdlet'i kullanın:
Get-ADUser -Identity “Identifier” -Properties *Belirli Bir Özellikler Grubunu Görüntüleme
Alternatif olarak, bir kullanıcı için görmek istediğiniz özellikleri açıkça listeleyebilirsiniz:
Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,Enabled,mail,department,company,title,c,st,streetaddress |ftGrup Üyeliğini Görüntüleme
Bir kullanıcının üyeliğini görmek için bu cmdlet'i kullanın:
Get-ADUser -Identity Abbey.crawford -Properties memberof | Select-Object -ExpandProperty memberofE-posta Adresini Görüntüleme
Belirli bir kullanıcının e-posta adresini görmek istiyorsanız bu cmdlet'i kullanın:
Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,mail |ftKullanıcı Asıl Adını (UPN) Görüntüleme
Bir kullanıcının UPN'sini almak için bu cmdlet'i kullanın:
Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,userprincipalname |ftSAM Hesap Adını Görüntüleme
Bir kullanıcının SAM hesap adını görüntülemek için bu cmdlet'i kullanın:
Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,samAccountName |ftGörünen Ad Görüntüleniyor
Bir kullanıcının görünen adını görmek istiyorsanız (örneğin, ADUC'ta farklı olabileceğinden), bu cmdlet'i kullanabilirsiniz:
Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,displayname |ftAyırt Edici Ad Görüntüleniyor
Bir kullanıcının ayırt edici adını görmek için bu cmdlet'i kullanın:
Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,distinguishedname |ftProxy Adreslerini Görüntüleme
Bir kullanıcının proxy adreslerini görmek istiyorsanız bu cmdlet'i kullanın:
Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,proxyaddresses |ftKullanıcı Yöneticisini Görüntüleme
Bir kullanıcının yöneticisinin SAM hesap adını göstermek için bu komutu kullanın:
Get-ADUser “User Identifier” -properties * | select amAccountName, @{Name=’Manager’;Expression={(Get-ADUser($_.manager)).samaccountname}}Çalışan Kimliğini Görüntüleme
Bir kullanıcının çalışan kimliğini görmek için bu cmdlet'i kullanın:
Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,employeeid |ftTelefon Numaralarını Görüntüleme
Bir kullanıcının tüm telefon numaralarını bulmak için şu komutu kullanın:
Get-ADUser -Identity “User Identifier” -Properties * | Select *Phone*Bu değerleri tablo biçiminde görüntülemek için şu komutu kullanın:
Get-ADUser -Identity “User Identifier” -Properties * | Select Name, *Phone* | ftŞifre Son Kullanma Tarihini ve Saatini Görüntüleme
Bir hesabın parola son kullanma tarihini görmek için bu cmdlet'i kullanın:
Get-ADUser -Identity “User Identifier” -Properties msDS-UserPasswordExpiryTimeComputed | select Name, {[datetime]::FromFileTime($_.”msDS-UserPasswordExpiryTimeComputed”)}Hesap Oluşturma Tarihini Görüntüleme
AD'de bir kullanıcı hesabının ne zaman oluşturulduğunu görmek için şu komutu kullanın:
Get-ADUser -filter * -Properties Name,whencreated | ft Name,WhenCreatedSon Oturum Açma Tarihini ve Saatini Görüntüleme
Bir kullanıcının herhangi bir sistemde en son ne zaman oturum açtığını görmek istiyorsanız bu cmdlet'i kullanın:
Get-ADUser -Identity Abbey.Crawford -Properties * | Select Name,lastlogondate |ftSon Şifre Değiştirme Tarihi ve Saatinin Görüntülenmesi
Bir kullanıcının şifresini en son ne zaman değiştirdiğini görmek için bu cmdlet'i kullanın:
Get-ADUser -Identity Abbey.Crawford -properties PwdLastSet,PasswordLastSet | sort Name | ft Name,PwdLastSet,PasswordLastSetUzantı Niteliklerinin Değerlerini Görüntüleme
Kuruluşlar, kullanıcılar hakkında ek bilgi depolamak için AD uzantısı niteliklerini kullanabilir. Örneğin, O365 lisans bilgileri ExtensionAttribute1'de saklanabilir. Bu bilgiyi görmek için bu cmdlet'i kullanın:
Get-ADUser -Identity “Abbey.Crawford” -Properties * | Select sAMAccountName, extensionAttribute1Çıktıyı Sıralama
Get-ADUser komutunun çıktısını belirli bir özelliği kullanarak sıralamak için aşağıdaki komutu kullanın:
Get-ADUser -Filter * | Select Name | Sort-Object -Property NameVerileri CSV Dosyasına Aktarma
Örnek 1
Aşağıdaki komut, son 180 gün içinde oluşturulan tüm kullanıcı hesaplarını bulacak, bunları ada göre sıralayacak ve bunlar hakkında seçilen bilgileri bir CSV dosyasına aktaracaktır:
Get-ADUser -filter * -properties * | Where-Object { $_.created -gt (get-date).AddDays(-180)} | select-object Name, Created | sort Name | export-csv C:\Accounts.csv -NoTypeInformationÖrnek 2
Aşağıdaki komut, belirli bir kuruluş birimindeki tüm kullanıcıları bulur ve onlar hakkında seçilen ayrıntıları bir CSV dosyasına çıkarır:
İşte CSV dosyası:
Çözüm
Get-ADUser komutu, belirli kriterleri karşılayan bir veya daha fazla kullanıcıyı bulmanın çok yönlü bir yoludur. Hangi kullanıcı özelliklerinin görüntüleneceğini ve bilgilerin nasıl sıralanacağını kontrol edebilir ve çıktıyı bir CSV dosyasına aktarabilirsiniz.
Daha kapsamlı bir Active Directory ve Azure AD yönetim çözümüyle ilgileniyorsanız Netwrix GroupID'ye göz atın. PowerShell ile de tam uyumlu, daha gelişmiş bir yönetim kabuğu sunar.




































