PowerShell Kullanıcı Listesi | PowerShell'de Kullanıcılar Nasıl Listelenir? (Örnekler)
PowerShell Kullanıcı Listesinin Tanımı
PowerShell Kullanıcı listesi, Windows işletim sistemindeki yerel kullanıcılar için Get-LocalUser ve aktif dizin kullanıcıları için Get-ADUsers gibi belirli cmdlet'leri kullanarak yerel Windows makinelerinden veya aktif dizin kullanıcılarından kullanıcıları almanın bir yoludur. Ayırt Edici Ad (DN), GUID, Güvenlik Tanımlayıcı (SID), Güvenlik Hesabı Yöneticisi (SAM) veya ad ve CSV'ye veya metin dosyasına aktarılabilir.
Sözdizimi
PowerShell Kullanıcı Listesinin söz dizimi aşağıda verilmiştir:
Get-LocalUser söz dizimi:
Get-LocalUser
[[-Name] <String[]>]
[<CommonParameters>]
Get-LocalUser
[[-SID] <SecurityIdentifier[]>]
[<CommonParameters>]Get-ADUser söz dizimi:
Get-ADUser
[-AuthType <ADAuthType>]
[-Credential <PSCredential>]
-Filter <String>
[-Properties <String[]>]
[-ResultPageSize <Int32>]
[-ResultSetSize <Int32>]
[-SearchBase <String>]
[-SearchScope <ADSearchScope>]
[-Server <String>]
[<CommonParameters>]
Get-ADUser
[-AuthType <ADAuthType>]
[-Credential <PSCredential>]
[-Identity] <ADUser>
[-Partition <String>]
[-Properties <String[]>]
[-Server <String>]
[<CommonParameters>]Get-ADUser
[-AuthType <ADAuthType>]
[-Credential <PSCredential>]
-LDAPFilter <String>
[-Properties <String[]>]
[-ResultPageSize <Int32>]
[-ResultSetSize <Int32>]
[-SearchBase <String>]
[-SearchScope <ADSearchScope>]
[-Server <String>]
[<CommonParameters>]
Get-ADUser sözdiziminden herhangi bir kombinasyon kümesini ve benzer şekilde Get-LocalUser hesabı için kullanabilirsiniz. Get-ADUser cmdlet'inde -Filter ve -Identity özelliğini ve Get-LocalUser cmdlet'inde -Name ve -SID özelliğini birlikte kullanamazsınız.
Yerel kullanıcı ayrıntılarını yerel veya uzak bilgisayarlardan almak için WMI veya CIMInstance sınıfı Win32_UserAccount'u da kullanabiliriz. Ayrıca cmd'deki “Net User” komutu da yerel kullanıcı listesinin alınmasına yardımcı olur.
PowerShell'de Kullanıcılar Nasıl Listelenir?
Yerel bilgisayardan veya uzak bilgisayarlardan yerel kullanıcı hesabı ayrıntılarını alan Get-LocalUser veya Active Directory etki alanından kullanıcıları alan Get-ADUser gibi Yerel komutları kullanarak PowerShell'deki kullanıcıları listelemenin çeşitli yöntemleri vardır.
Get-LocalUser komutu PowerShell 5.1'de tanıtıldı ve Microsoft.PowerShell.LocalAccounts modülünün bir parçası. Önceki PowerShell sürümünde, kullanıcıların listesini almak için yerel hesaplar modülünü indirmeniz veya Net User (hala çalışıyor) gibi cmd komutunu veya WMI yöntem sınıfı Win32_UserAccount'u kullanmanız gerekir.
Eski PowerShell sürümündeki makinelere uzaktan iletişim kuruyorsanız Get-LocalUser komutu orada çalışmaz. Etki alanı denetleyicisinde yerel kullanıcı komutlarını çalıştırdığınızda, DC'nin yerel kullanıcıları olmadığından size aktif dizin kullanıcılarını sağlayacaktır.
PowerShell Kullanıcı Listesi Örnekleri
Aşağıda verilen örnekler şunlardır:
Örnek 1: Cmd Kullanarak Yerel Kullanıcı Hesapları Listesini Alma
Kullanıcı listesini cmd'den veya PowerShell'den almak için “Net User” cmd komutunu kullanabiliriz.
net userÇıktı:
- Uzak bilgisayardan yerel kullanıcı listesini almak için PowerShell'de Invoke-Command'ı kullanın,
Invoke-Command -ComputerName LabMachine2k16 -ScriptBlock { net user}Çıktı:
Yukarıdaki çıktı uzak bilgisayar LabMachine2k16'dan alınmıştır.
Örnek #2: Wmi Yöntemini Kullanarak Yerel Kullanıcıları Alma
Kullanıcı listesini almak için WMI yöntemini veya CIM örnek yöntemi sınıfını Win32_UserAccount kullanabiliriz.
gwmi win32_UserAccount | Select Name, FullName, Caption, Domain, SID | ft -AutoSizeÇıktı:
- Uzak bilgisayardaki yerel kullanıcı ayrıntılarını almak için -BilgisayarAdı 'nı eklemeniz gerekir.
Invoke-Command -ComputerName LabMachine2k16 { gwmi win32_UserAccount} | Select Name, FullName, Caption, Domain, SID | ft -AutoSizegwmi yöntemi yerine Get-CimInstance komutunu da kullanabilirsiniz.
Çıktı dosyasını aşağıda gösterildiği gibi metne veya CSV'ye aktarabilirsiniz. Aşağıdaki örnekte çıktı UserAccounts.Csv dosyasına aktarılacaktır.
gwmi win32_UserAccount | Select Name, FullName, Caption, Domain, SID | Export-Csv C:\Temp\Useracccounts.csv -NoTypeInformationMetin dosyasına aktarmak için.
gwmi win32_UserAccount | Select Name, FullName, Caption, Domain, SID | Out-File C:\temp\UserAccounts.txtBelirli bir kullanıcıyı veya etki alanı kullanıcı listesini kontrol etmek istiyorsanız,
gwmi win32_UserAccount | where{$_.Domain -like "LabMachine2k16*"} | Select Name, FullName, Caption, Domain, SID | ft -AutoSizeÇıktı:
- Yerel hesapları yalnızca Parola özellikleriyle almak için aşağıdaki komutu kullanın:
gwmi win32_useraccount | where{$_.LocalAccount -eq $true} | Select Name, LocalAccount, PasswordChangeable, PasswordRequiredÖrnek #3: ADU Kullanıcıları Listesini Alma
Etki alanı kullanıcı listesini almak için Get-ADUser komutunu kullanabilirsiniz. Bu komutu çalıştırmak için bilgisayarınızda RSAT'ın (Uzak Sunucu Yönetim Araçları) kurulu olduğundan emin olmanız gerekir.
Get-ADUser -Filter *Yukarıdaki komut tüm kullanıcıları aktif dizin etki alanından alacaktır.
- Kullanıcıların tüm özelliklerini ortaya çıkarmak için -Property özelliğini kullanabilirsiniz.
Get-ADUser -Filter * -Properties *- Belirli özellikleri filtrelemek için,
Get-ADUser -Filter * -Properties * | Select Name, DisplayName, SamAccountName, UserPrincipalNameÇıktı:
- Hesapları Devre Dışı olan kullanıcıların listesini almak ve bunu CSV dosyasına aktarmak için aşağıdaki komutu kullanın.
Get-ADUser -Filter * | where {$_.Enabled -eq $false} | Export-Csv C:\DisabledUserAccounts.csv -NoTypeInformation- Belirli kullanıcı hesaplarının ayrıntılarını almak için,
Get-ADUser -Identity beta -Properties *-Identity parametresinde SamAccountName özelliğini kullanmanız gerekmektedir.
- Kullanıcıları belirli bir Organizasyon Biriminden (OU) almak için aşağıdaki komutu kullanın.
Get-ADUser -Filter * -Properties * | where{$_.DistinguishedName -like "*CN=Users*"} | Select Name, DisplayName, userPrincipalName, SAMAccountName- Çıkıştaki parola özellikleriyle, aktif dizin etki alanında parolasının süresi dolmuş veya hiçbir zaman sona ermeyecek şekilde ayarlanmış kullanıcıların listesini alma.
- Süresi Dolmuş Parola kullanıcı hesaplarını alır.
Get-ADUser -Filter * -Properties * | where{$_.PasswordExpired -eq $true} | Select Name, SAMAccountName, PasswordExpired, PasswordLastSet- Parolayı alır, kullanıcı hesaplarının süresi asla dolmaz.
Get-ADUser -Filter * -Properties * | where{$_.PasswordNeverExpires -eq $true} | Select Name, SAMAccountName, PasswordNeverExpiresÇözüm
Bu makalede açıklandığı gibi PowerShell, Windows bilgisayarından veya aktif dizin etki alanından Kullanıcıların listesini almak için çeşitli komutları kullanır ve bu, yöneticilere denetim ve temizleme görevleri konusunda yardımcı olur. Oluşturulan, süresi dolan ve süresi dolmak üzere olan hesapların listesi için Yöneticilere aylık olarak e-posta göndermek amacıyla görev zamanlayıcıyı kullanabilirsiniz.






