Zkoušejte Toto je jeden z hlavních rutin PowerShell, které můžete použít k získání různých informací o uživatelích služby Active Directory a jejich atributech. Pomocí rutiny Get-ADUser můžete získat hodnotu libovolného atributu uživatelského účtu AD, zobrazit seznam uživatelů v doméně s potřebnými atributy a exportovat je do CSV a pomocí různých kritérií vybrat uživatele domény.
Rutina Get-ADUser je k dispozici od verze PowerShell 2.0 a je součástí speciálního modulu Active Directory, modulu Active Directory pro Windows PowerShell (zavedeného v systému Windows Server 2008 R2). Rutiny RSAT-AD-PowerShell vám umožňují provádět různé operace s objekty adresáře AD.
Poznámka:. Dříve jsem musel používat různé nástroje k získání informací o atributech uživatelských účtů AD: konzola ADUC (včetně uložených požadavků AD), skripty vbs, obslužný program dsquery atd. Všechny tyto nástroje mohou snadno nahradit rutinu Get-ADUser..V tomto příkladu ukážeme, jak pomocí rutiny PowerShell Get-ADUser získat informace o době, kdy bylo naposledy změněno heslo uživatele, platnost hesla a další data uživatele.
Obsah:
- Jak najít uživatele v AD a zobrazit jeho vlastnosti pomocí Get-ADUser?
- Získání uživatelů z více OU pomocí Get-ADUser
- Získejte e-mailové adresy uživatelů z AD
- Get-ADUser: export uživatelů domény do textového nebo CSV / Excel souboru
- Get-ADUser -Filter: Třídit a filtrovat seznam uživatelů AD
- Get-ADUser: Různé příklady použití
Jak najít uživatele v AD a zobrazit jeho vlastnosti pomocí Get-ADUser?
Chcete-li použít modul RSAT-AD-PowerShell, musíte spustit konzolu PowerShell s právy správce a modul importovat pomocí příkazu:
Adresář importního modulu
V systému Windows Server 2012 a novějších se při nasazení role služby Active Directory Domain Services (AD DS) na server ve výchozím nastavení nainstaluje modul RSAT-AD-PowerShell. Chcete-li nainstalovat modul na členský server domény, spusťte příkaz:
Install-WindowsFeature - Název "RSAT-AD-PowerShell" --IncludeAllSubFeature
Ve stolní verzi systému Windows (například v systému Windows 10), aby fungoval velitel Get-AdUser, musíte nainstalovat odpovídající verzi RSAT a povolit komponentu v Ovládacích panelech Modul Active Directory pro Windows PowerShell (Nástroje pro správu vzdáleného serveru -> Nástroje pro správu rolí -> Nástroje AD DS a AD LDS -> Nástroje AD DS).
Můžete nainstalovat AD modul z PowerShell:
Add-WindowsCapability -online -Name “Rsat.ActiveDirectory.DS-LDS.Tools ~~~~ 0.0.1.0”
Importní modul "C: \ PS \ ADPoSh \ Microsoft.ActiveDirectory.Management.dll"
Importní modul "C: \ PS \ ADPoSh \ Microsoft.ActiveDirectory.Management.resources.dll"
Úplný seznam všech argumentů k rutině Get-ADUser lze získat následujícím způsobem:
help Get-ADUser
Chcete-li zobrazit všechny účty domény, spusťte příkaz:
Get-ADUser -filter *
Ve výchozím cmdlet Get-ADUser vrací pouze 10 základních atributů (z více než 120 vlastností uživatelského účtu): DistinguishedName, SamAccountName, Name, SID, UserPrincipalName, ObjectClass, stav účtu (Enabled: True / False podle atributu UserAccountControl) at .d.
Výstup rutiny cmdlet neobsahuje informace o době poslední změny hesla uživatele.
K provedení požadavku na konkrétním řadiči domény se použije parametr - Server:Get-ADUSer -Server DC01.winitpro.loc -Tentuser identity
Chcete-li zobrazit úplné informace o všech dostupných uživatelských atributech uživatele, spusťte příkaz:
Get-ADUser - identifikátor identity -Properties *
Get-ADUser Cmdlet s parametrem Vlastnosti * seznam všech atributů uživatele AD a jejich hodnot.
Zkusme změnit parametry příkazu Get-ADUser tak, aby se zobrazovaly pouze atributy uživatele, které potřebujeme. Můžete zobrazit několik uživatelských atributů najednou:
- Passwordexpired
- PasswordLastSet
- PasswordNeverExpires
- lastlogontimestamp
Spusťte příkaz:
Get-ADUser tuser -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires, lastlogontimestamp
Nyní informace o uživateli obsahují informace o stavu účtu (vypršela: True / False), datum změny hesla a čas posledního přihlášení do domény (lastlogontimestamp). Informace prezentujeme ve výhodnější formě tabulky a odstraníme všechny nepotřebné atributy pomocí Select-Object -Property nebo Format-Table:
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Jméno, PasswordExpired, PasswordLastSet, PasswordNeverExpires
Získání uživatelů z více OU pomocí Get-ADUser
Chcete-li odebrat uživatele pouze z kontejneru určité domény (OU), použijte tuto možnost SearchBase:
Get-ADUser -SearchBase 'OU = Moskva, DC = winitpro, DC = loc' -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Jméno, PasswordExpired, PasswordLastSet, PasswordNeverExpires
Pokud potřebujete vybrat uživatele z několika organizačních jednotek najednou, použijte následující konstrukci:
$ OUs = "OU = Moskva, DC = winitpro, DC = local", "OU = SPB, DC = winitpro, DC = loc"
$ OUs | foreach Get-ADUser - SearchBase $ _ -Filter * | vyberte Jméno, Povoleno
Získejte e-mailové adresy uživatelů z AD
E-mail uživatele je jedním z atributů ve službě Active Directory. Chcete-li zobrazit e-mailové adresy uživatelů, musíte do vybraných polí cmdlet Get-ADUser přidat pole EmailAddress..
Get-ADUser -filter * -programy EmailAddress -SearchBase 'OU = MSK, DC = winitpro, DC = loc' | select-object Name, EmailAddress
Seznam aktivních účtů s poštovními adresami:
Get-ADUser -Filter (mail -ne "null") - a (Enabled -eq "true") - Příjmení, příjmení, pošta | Select-Object Name, příjmení, GivenName, mail | Tabulka formátů
Seznam uživatelů, kteří nemají e-mailovou adresu:
Get-ADUser -Filter * -Properties EmailAddress | kde -Property EmailAddress -eq $ null
Následující příklad umožňuje uvolnit adresář e-mailových adres společnosti ve formě souboru CSV, který lze později importovat do aplikace Outlook nebo Mozilla Thunderbird:
Get-ADUser -Filter (mail -ne "null") - a (Enabled -eq "true") - Příjmení, příjmení, pošta | Select-Object Name, příjmení, GivenName, mail | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $ env: temp \ mail_list.csv
Get-ADUser: export uživatelů domény do textového nebo CSV / Excel souboru
Výsledný seznam uživatelů domény s atributy lze nahrát do textového souboru:
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Jméno, PasswordExpired, PasswordLastSet, PasswordNeverExpires> C: \ temp \ users.txt
Nebo můžete nahrát uživatele AD do souboru CSV, který bude později pohodlně exportován do Excelu.
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | vyberte Jméno, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv-cesta c: \ temp \ user-password-expires-2019.csv -Append -Encoding UTF8
Get-ADUser -Filter: Třídit a filtrovat seznam uživatelů AD
Pomocí parametru -Filtr Seznam uživatelů můžete filtrovat podle jednoho nebo více atributů. Jako argumenty tohoto parametru můžete určit hodnoty určitých atributů uživatelů služby Active Directory. Při použití parametru -Filter zobrazí rutina Get-ADUser pouze uživatele, kteří odpovídají kritériím filtru..
Například uvedeme seznam povolených uživatelských účtů, jejichž jméno obsahuje „Dmitry"(níže uvedený příklad používá vícenásobný filtr, podmínky můžete kombinovat pomocí standardních operátorů logického porovnání PowerShell):
Get-AdUser -Filter "(název-jako" * Dmitry * ") - a (povoleno - ekv." True ")" - vlastnosti * | vyberte jméno, povoleno
Volitelně pomocí třídit objekt Seznam uživatelů můžete třídit podle konkrétního atributu. K načtení uživatelů můžete také použít rutinu. kde. Zde můžete také použít několik kritérií filtrování najednou..
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires -SearchBase 'OU = Moscow, DC = winitpro, DC = loc' | kde $ _. name-like "* Dmitry *" - a $ _. Enabled -eq $ true | sort-object PasswordLastSet | Název objektu select, PasswordExpired, PasswordLastSet, PasswordNeverExpires
Můžete tedy sestavit tabulku s potřebnými atributy uživatelů služby Active Directory.
Get-ADUser: Různé příklady použití
Dále dáváme některé užitečné možnosti dotazů pro uživatele služby Active Directory pomocí různých filtrů. Můžete je zkombinovat a získat potřebný seznam uživatelů domény:
Seznam uživatelů služby AD, jejichž jméno začíná na Roman:
Get-ADUser -filter name-like "Roman *"
Výpočet celkového počtu všech účtů ve službě Active Directory:
Get-ADUser -Filter SamAccountName-like "*" | Measure-Object
Seznam všech aktivních (neblokovaných) účtů v AD:
Get-ADUser -Filter Enabled -eq "True" | Vyberte objekt SamAccountName, Name, Surname, GivenName | Tabulka formátů
Vytiskněte datum vytvoření uživatelského účtu v doméně:
get-aduser -Filter * - Název produktu, Když je vytvořen | Vyberte jméno, kdyžVytvořeno
Seznam všech uživatelů, kteří byli vytvořeni za posledních 24 hodin (příklad odtud):
$ lastday = ((Get-Date) .AddDays (-1))
Get-ADUser -filter (při vytvoření -ge $ minulý den)
Seznam účtů s vypršeným heslem (heslo je nakonfigurováno v zásadách domény):
Get-ADUser -filter Enabled -eq $ True -properties name, passwordExpired | kde $ _. PasswordExpired | vyberte jméno, passwordexpired
Úkol: pro seznam účtů uložených v textovém souboru (jeden účet na řádek) musíte získat telefon uživatele z AD a nahrát informace do textového souboru CSV (pro další generování sestav v Excelu).
Import-Csv c: \ ps \ usernsme_list.csv | ForEach
Get-ADUser -identity $ _. User -Properties Name, phoneNumber |
Vyberte Jméno, telefonní číslo |
Exportovat CSV c: \ ps \ export_ad_list.csv -Append -Encoding UTF8
Uživatelé, kteří nezměnili své heslo za posledních 90 dní:
$ 90_Days = (Get-Date) .adddays (-90)
Get-ADUser -filter (passwordlastset -le $ 90_days)
Chcete-li získat fotografii uživatele ze služby Active Directory a uložit ji do souboru jpg:
$ user = Get-ADUser winadmin -Properties thumbnailPhoto
$ user.thumbnailPhoto | Set-Content winadmin.jpg - Kódovací bajt
Seznam skupin, ve kterých je uživatelský účet
Get-AdUser winadmin -Vlastnosti člena | Vyberte člena --expandandperpertyofof
Seznam uživatelů z OU, kteří jsou členy konkrétní skupiny zabezpečení:
Get-ADUser -SearchBase 'OU = Moskva, DC = winitpro, DC = loc' -Filter * -properties memberof | Where-Object ($ _. Členové typu „* WKS admins *“)
Uveďte seznam doménových počítačů, do kterých má uživatel povolení (omezení prostřednictvím atributu LogonWorkstations):
Get-ADUser AIvanov -Properties LogonWorkstations | Název seznamu formátů, LogonWorkstations