Използване на Get-ADUser за получаване на различна информация за потребителите на AD Domain

Get-ADUser Това е един от основните командлети на PowerShell, който можете да използвате, за да получите различна информация за потребителите на Active Directory и техните атрибути. С помощта на командлета Get-ADUser можете да получите стойността на всеки атрибут на потребителски акаунт на AD, да покажете списък на потребителите в домейна с необходимите атрибути и да ги експортирате в CSV и да използвате различни критерии, за да изберете потребители на домейна.

Командлерът Get-ADUser е достъпен от PowerShell 2.0 и е част от специалния модул Active Directory - модула Active Directory за Windows PowerShell (въведен в Windows Server 2008 R2). Командлетите RSAT-AD-PowerShell ви позволяват да извършвате различни операции върху обекти на директория AD.

забележка. Преди това трябваше да използвам различни инструменти, за да получа информация за атрибутите на потребителския акаунт на AD: конзола ADUC (включително запазени заявки за AD), vbs скриптове, програма за dsquery и т.н. Всички тези инструменти могат лесно да заменят командлета Get-ADUser..

В този пример ще покажем как да използвате командлета PowerShell Get-ADUser, за да получите информация за времето, когато потребителската парола е била последно променена, паролата изтича и други потребителски данни.

Съдържание:

  • Как да намерите потребител в AD и да покажете неговите свойства, използвайки Get-ADUser?
  • Извличане на потребители от множество ОУ, използвайки Get-ADUser
  • Получавайте имейл адреси на потребители от AD
  • Get-ADUser: експортиране на потребители на домейн в текст или CSV / Excel файл
  • Get-ADUser -Filter: Сортиране и филтриране на списъка на AD потребителите
  • Get-ADUser: различни примери за употреба

Как да намерите потребител в AD и да покажете неговите свойства, използвайки Get-ADUser?

За да използвате RSAT-AD-PowerShell модула, трябва да стартирате конзолата PowerShell с права на администратор и да импортирате модула с командата:

Импорт-модул activedirectory

В Windows Server 2012 и по-нови версии, модулът RSAT-AD-PowerShell е инсталиран по подразбиране, когато ролята на Active Directory Domain Services (AD DS) е разгърната към сървъра. За да инсталирате модула на сървър за член на домейн, изпълнете командата:

Инсталирайте-WindowsFeature -Име "RSAT-AD-PowerShell" -IncludeAllSubFeature

В настолната версия на Windows (например в Windows 10), за да работи командващият Get-AdUser, трябва да инсталирате съответната версия на RSAT и да активирате компонента в контролния панел Модул Active Directory за Windows PowerShell (Инструменти за отдалечено администриране на сървъра -> Инструменти за администриране на роли -> AD DS и AD LDS Инструменти -> AD DS Инструменти).

Можете да инсталирате AD модула от PowerShell:

Add-WindowsCapability -online -Name „Rsat.ActiveDirectory.DS-LDS.Tools ~~~~ 0.0.1.0“

Има и начин да използвате модула RSAT-AD-PowerShell, без да го инсталирате на вашия компютър. Просто копирайте основните файлове и импортирайте модула в PoSh сесия:

Импорт-модул "C: \ PS \ ADPoSh \ Microsoft.ActiveDirectory.Management.dll"
Импорт-модул "C: \ PS \ ADPoSh \ Microsoft.ActiveDirectory.Management.resources.dll"

Пълен списък на всички аргументи към командлета Get-ADUser може да се получи, както следва:

помощ Get-ADUser

За да използвате командлета Get-ADUser, не е необходимо да използвате акаунт с права на администратор на домейн. Всеки оторизиран потребител на AD домейн може да изпълнява команди PowerShell, за да получи стойностите на повечето атрибути на AD обектите (с изключение на защитените, вижте примера LAPS). Ако трябва да стартирате командата Get-ADUser от друг акаунт, използвайте параметъра Поверителност.

За да изброите всички акаунти в домейна, изпълнете командата:

Get-ADUser -филтър *

Важно е. Не се препоръчва да стартирате тази команда в AD домейни с голям брой акаунти, като възможно претоварване на контролера на домейна, който предоставя данните.

За да промените потребителските атрибути, използвайте командлета Set-ADUser.

По подразбиране командлетът Get-ADUser връща само 10 основни атрибута (от повече от 120 свойства на потребителския акаунт): DistinguishedName, SamAccountName, Име, SID, UserPrincipalName, ObjectClass, състояние на акаунта (Активирано: True / False според атрибута UserAccountControl) и t .d.

Изходът на командлета не съдържа информация за времето на последната промяна на паролата на потребителя.

За да изпълните заявка на конкретен контролер на домейн, се използва параметърът - сървър:

Get-ADUSer -Server DC01.winitpro.loc-tiduser tiduser

За да покажете пълна информация за всички налични атрибути на tuser, изпълнете командата:

Get-ADUser -устойчивост tuser -Properties *

Get-ADUser Cmdlet с параметър Свойства * избройте всички потребителски атрибути на AD и техните стойности.

Нека опитаме да променим параметрите на командата Get-ADUser, за да покажем само потребителските атрибути, от които се нуждаем. Можете да показвате няколко потребителски атрибута наведнъж:

  • PasswordExpired
  • PasswordLastSet
  • PasswordNeverExpires
  • lastlogontimestamp

Изпълнете командата:

Get-ADUser tuser -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires, lastlogontimestamp

Сега информацията за потребителя съдържа информация за състоянието на акаунта (Изтекъл: Вярно / Неверно), датата на промяна на паролата и часа на последното влизане в домейна (lastlogontimestamp). Представяме информацията в по-удобна таблична форма и премахваме всички ненужни атрибути с помощта на Select-Object -Property или Format-Table:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Извличане на потребители от множество ОУ, използвайки Get-ADUser

За да премахнете потребителите само от контейнер за определен домейн (OU), използвайте опцията SearchBase:

Get-ADUser -SearchBase 'OU = Москва, DC = winitpro, DC = loc' -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Ако трябва да изберете потребители от няколко ОУ наведнъж, използвайте следната конструкция:

$ OUs = "OU = Москва, DC = winitpro, DC = local", "OU = SPB, DC = winitpro, DC = loc"
$ OUs | foreach Get-ADUser -SearchBase $ _ -Filter * | изберете Име, Активирано

Получавайте имейл адреси на потребители от AD

Потребителският имейл е един от атрибутите в Active Directory. За да изброите имейл адресите на потребителите, трябва да добавите полето EmailAddress към избраните полета на командлета Get-ADUser.

Get-ADUser -filter * -properties EmailAddress -SearchBase 'OU = MSK, DC = winitpro, DC = loc' | select-object Name, имейл адрес

Списък на активни акаунти с пощенски адреси:

Get-ADUser -Filter (mail -ne "null") -and (Активирано -eq "true") -Профилности Фамилия, GivenName, поща | Select-Object Name, Фамилия, Име на име, поща | Формат-таблица

Списък на потребителите, които нямат имейл адрес:

Get-ADUser -Filter * -Properties EmailAddress | където -Property EmailAddress -eq $ null

Следващият пример ви позволява да разтоварите адресната книга на имейл адресите на компанията под формата на csv файл, който по-късно може да бъде импортиран в Outlook или Mozilla Thunderbird:

Get-ADUser -Filter (mail -ne "null") -and (Активирано -eq "true") -Профилности Фамилия, GivenName, поща | Select-Object Name, Фамилия, Име на име, поща | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $ env: temp \ mail_list.csv

Get-ADUser: експортиране на потребители на домейн в текст или CSV / Excel файл

Резултатният списък на потребители на домейни с атрибути може да бъде качен в текстов файл:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Име, PasswordExpired, PasswordLastSet, PasswordNeverExpires> C: \ temp \ users.txt

Или можете да качите AD потребители на CSV файл, който по-късно ще бъде удобно експортиран в Excel.

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | изберете Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -path c: \ temp \ user-password-expires-2019.csv -Append -Encoding UTF8

Get-ADUser -Filter: Сортиране и филтриране на списъка на AD потребителите

Използване на параметър -филтър Можете да филтрирате списъка с потребители по един или повече атрибута. Можете да посочите стойностите на определени атрибути на потребителите на Active Directory като аргументи към този параметър. Когато използвате параметъра -Filter, командлетът Get-ADUser ще изброява само потребители, които отговарят на критериите за филтриране..

Например ще изброим активираните потребителски акаунти, чието име съдържа „Дмитрий"(примерът по-долу използва множество филтър, можете да комбинирате условия, използвайки стандартни оператори за логическо сравнение на PowerShell):

Get-AdUser -Filter "(име -подобен '* Дмитрий *') -и (Активиран -eq 'True')" -Профилности * | изберете име, активирано

По желание се използва сортиране-обект Можете да сортирате списъка с потребители по конкретен атрибут. Можете също да използвате командлета, за да получите потребители. където. Тук също можете да използвате няколко критерия за филтриране наведнъж..

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires -SearchBase 'OU = Москва, DC = winitpro, DC = loc' | където $ _. име -подобен “* Дмитрий *” -и $ _. Активиран -eq $ true | sort-object PasswordLastSet | select-object Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

По този начин можете да създадете таблица с всички необходими атрибути на потребителите на Active Directory.

Get-ADUser: различни примери за употреба

На следващо място, ние даваме някои полезни опции за заявки за потребителите на Active Directory използвайки различни филтри. Можете да ги комбинирате, за да получите необходимия списък от потребители на домейни:

Списък на потребители на AD, чието име започва с римски:

Get-ADUser -filter name -подобен "Roman *"

За да изчислите общия брой на всички акаунти в Active Directory:

Get-ADUser -Filter SamAccountName -подобен "*" | Мярка-Object

Списък на всички активни (не блокирани) акаунти в AD:

Get-ADUser -Filter Enabled -eq "True" | Select-Object SamAccountName, име, фамилия, дадено име | Формат-таблица

Отпечатайте датата на създаване на потребителски акаунт в домейна:

get-aduser -Filter * -Имения на свойствата, Когато се създава | Изберете име, когато е създадено

Списък на всички потребители, които са били създадени през последните 24 часа (пример от тук):

$ lastday = ((Дата на получаване). Добавяне на дни (-1))
Get-ADUser -filter (когато е създаден -ge $ lastday)

Списък на акаунти с изтекла парола (паролата е конфигурирана в политиката на домейна):

Get-ADUser -filter Enabled -eq $ True -имения на собственост, паролаExpired | където $ _. PasswordExpired | изберете име, passwordexpired

Можете да използвате командлетите Get-AdUser и Add-ADGroupMember, за да създадете динамични потребителски групи за AD (в зависимост от град, позиция или отдел).

Задача: за списъка с акаунти, които се съхраняват в текстов файл (един акаунт на ред), трябва да получите телефона на потребителя от AD и да качите информацията в текстов csv файл (за по-нататъшно генериране на отчет в Excel).

Import-Csv c: \ ps \ usernsme_list.csv | ForEach
Get-ADUser -identity $ _. User -Properties Име, телефонNumber |
Изберете Име, телефонNumber |
Export-CSV c: \ ps \ export_ad_list.csv -Append -Encoding UTF8

Потребители, които не са променили паролата си през последните 90 дни:

$ 90_Days = (Дата на получаване) .adddays (-90)
Get-ADUser -filter (passwordlastset -le $ 90_days)

За да получите снимка на потребителя от Active Directory и да го запишете в jpg файл:

$ user = Get-ADUser winadmin -Properties thumbnailPhoto
$ user.thumbnailPhoto | Set-Content winadmin.jpg -Банк за кодиране

Списък на групите, в които се намира потребителският акаунт

Get-AdUser winadmin -Properties memberof | Изберете memberof -expandproperty memberof

Списък на потребителите от ОУ, които са членове на конкретна група за сигурност:

Get-ADUser -SearchBase 'OU = Москва, DC = winitpro, DC = loc' -Filter * -properties memberof | Where-Object ($ _. Memberof -подобен „* WKS администратори *”)

Избройте компютрите с домейни, на които е разрешено да въведе потребител (ограничение чрез атрибута LogonWorkstations):

Get-ADUser AIvanov -Properties LogonWorkstations | Име на формат-списък, LogonWorkstations

съвет. За да получите информация за компютрите с Active Directory, използвайте командлета Get-ADComputer.