Použití programu Get-ADUser k získání různých informací o uživatelích domény AD

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”

Existuje také způsob, jak používat modul RSAT-AD-PowerShell, aniž by byl nainstalován na vašem počítači. Stačí zkopírovat hlavní soubory a modul importovat do relace PoSh:

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 použít rutinu Get-ADUser, nemusíte používat účet s právy správce domény. Každý oprávněný uživatel domény AD může spustit příkazy PowerShell, aby získal hodnoty většiny atributů objektů AD (s výjimkou chráněných objektů, viz příklad LAPS). Pokud potřebujete spustit příkaz Get-ADUser z jiného účtu, použijte parametr Credential.

Chcete-li zobrazit všechny účty domény, spusťte příkaz:

Get-ADUser -filter *

Je důležité. Nedoporučuje se spouštět tento příkaz v AD doménách s velkým počtem účtů, např pravděpodobně přetížení řadiče domény, který poskytuje data.

Chcete-li změnit atributy uživatele, použijte rutinu Set-ADUser.

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

Pomocí rutin Get-AdUser a Add-ADGroupMember můžete vytvořit dynamické skupiny uživatelů služby AD (v závislosti na městě, poloze nebo oddělení)..

Ú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

Tip. Chcete-li získat informace o počítačích služby Active Directory, použijte rutinu Get-ADComputer.