Удаление всех версий Java: Руководство по сценарию PowerShell

Если вам нужно найти пользователей Active Directory (AD) в вашем домене, команда Powershell Get-Aduser здесь, чтобы помочь. Учетные записи пользователей назначаются сотрудникам, служебным аккаунтам и другим ресурсам. Прежде чем вы это узнаете, учетные записи пользователей AD становятся сложными для управления.

Используя командлет Get-AdUser PowerShell, вы можете получить пользователей AD множеством различных способов. В этой статье вы узнаете несколько из этих способов и как использовать этот удобный командлет.

Управляйте и составляйте отчеты по Active Directory, Exchange и Microsoft 365 с помощью ManageEngine ADManager Plus. Скачайте бесплатную пробную версию!

Предварительные требования

Чтобы использовать примеры командлета Get-AdUser, описанные в этой статье, убедитесь, что у вас есть следующее:

  • На ПК с Windows, присоединенном к домену AD
  • Вы вошли как учетная запись пользователя AD
  • Установлен модуль PowerShell Active Directory

Поиск учетной записи пользователя с Identity

Команда Get-AdUser имеет только одну цель. Её существование призвано предоставить как можно больше опций для поиска пользователей домена. Если вы уже знаете имя пользователя, которое нужно найти, вы можете использовать параметр Identity.

Параметр Identity позволяет указать один из четырех различных идентификаторов.

  • distinguishedName (DN)
  • samAccountName
  • GUID
  • SID

Ниже приведены примеры поиска учетной записи пользователя с использованием различных идентификаторов. Обратите внимание, что для каждой учетной записи пользователя возвращается набор атрибутов AD.

PS> Get-ADUser -Identity abertram


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local



PS> Get-ADUser -Identity 'S-1-5-21-4117810001-3432493942-696130396-3142'


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local



PS> Get-ADUser -Identity 'CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local'


DistinguishedName : CN=Anne Bertram,OU=Marketing,DC=mylab,DC=local
Enabled           : False
GivenName         : Anne
Name              : Anne Bertram
ObjectClass       : user
ObjectGUID        : b98fd0c4-3d5d-4239-8245-b04145d6a0db
SamAccountName    : abertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3142
Surname           : Bertram
UserPrincipalName : abertram@mylab.local

Самым распространенным атрибутом для использования в параметре Identity будет атрибут samAccountName.

Фильтр Get-ADUser

Если вам нужно найти более одного пользователя домена или вы не знаете идентификатор, используйте фильтр. Для этого у вас есть несколько параметров, называемых Filter и LDAPFilter.

Каждый параметр фильтра позволяет пользователю указать условное выражение. Когда это условие выполняется, Get-AdUser возвращает учетные записи пользователей, соответствующие этому условию.

Самым распространенным параметром для фильтрации пользователей является параметр Filter. Параметр Filter позволяет создавать условия, аналогичные синтаксису фильтра командлета PowerShell Where-Object.

Параметр Filter использует синтаксис языка выражений PowerShell. Этот язык немного похож на то, что вы бы использовали с Where-Object, но не совсем. Для разбора того, как использовать этот фильтр, ознакомьтесь с этой статьей о фильтрах Active Directory и LDAP.

Ниже приведен пример использования параметра Filter. В этом примере предоставляется атрибут AD (givenName в данном случае) и задается условие. Фильтр позволяет возвращать только пользователей с givenName, равным Adam.

PS> Get-AdUser -Filter "givenName -eq 'Adam'"


DistinguishedName : CN=ADBertram,OU=Accounting,DC=mylab,DC=local
Enabled           : False
GivenName         : Adam
Name              : ADBertram
ObjectClass       : user
ObjectGUID        : 8ec5e2a8-1fda-42cb-9406-b1e6356dd457
SamAccountName    : ADBertram
SID               : S-1-5-21-4117810001-3432493942-696130396-3163
Surname           : Bertram
UserPrincipalName : ADBertram

DistinguishedName : CN=Hughes\, Adam,CN=Users,DC=mylab,DC=local
Enabled           : True
GivenName         : Adam
Name              : Hughes, Adam
ObjectClass       : user
ObjectGUID        : 96778db3-3dbd-4b83-9183-db111caa2791
SamAccountName    : ahughes
SID               : S-1-5-21-4117810001-3432493942-696130396-38201
Surname           : Hughes
UserPrincipalName :

Другой вариант фильтрации – LDAPFilter, который не будет рассматриваться в данной статье. Для получения дополнительной информации о LDAPFilter и его синтаксисе ознакомьтесь с этой статьей о фильтрах Active Directory и LDAP.

Использование Get-AdUser по OU

Предоставляя идентификатор или фильтр, PowerShell возвращает всех пользователей в домене, соответствующих критериям. Он не ограничивается по OU. Вам нужно будет настроить “фильтр” для Get-AdUser, чтобы фильтровать по OU, используя Get-Aduser -SearchBase <OU>.

Использование параметра SearchBase позволяет начать поиск учетной записи пользователя в определенном OU. Параметр SearchBase принимает дистинктивное имя (DN) OU.

Например, вы можете найти всех пользователей в OU MyUsers, как показано ниже. Использование Filter равного * означает сопоставление всех учетных записей пользователей.

PS> Get-ADUser -Filter * -SearchBase 'OU=MyUsers,DC=domain,DC=local'

Возможно, вам нужно найти учетные записи пользователей только в одном контейнере OU и исключить все дочерние контейнеры OU. В этом случае вы можете использовать параметры SearchBase и SearchScope. Параметр SearchScope определяет глубину поиска в иерархии OU.

Например, если вы хотите найти все учетные записи пользователей в OU и всех его дочерних контейнерах OU, вы используете значение 1 для параметра SearchScope. Если вы хотите выполнить поиск по всем дочерним и внуковским контейнерам OU, вы используете значение 2.

В приведенном ниже примере ищутся учетные записи пользователей в контейнере OU MyUsers и всех его дочерних контейнерах OU.

PS> Get-ADUser -Filter * -SearchBase 'OU=MyUsers,DC=domain,DC=local' -SearchScope 2

Использование альтернативных учетных данных

По умолчанию команда Get-AdUser выполняется от имени текущего пользователя. Однако вы также можете указать альтернативные учетные данные с помощью параметра Credential.

Для аутентификации с использованием альтернативных учетных данных создайте объект PSCredential с помощью команды Get-Credential, как показано ниже:

PS> $cred = Get-Credential
PS> Get-AdUser -Filter * -Credential $cred

Дополнительную информацию о учетных данных можно найти в статье Использование cmdlet PowerShell Get-Credential и другие вопросы по учетным данным.

Параметр свойств команды PowerShell Get-AdUser

При выполнении команды Get-AdUser вы увидите, что возвращается только несколько атрибутов. Вы также заметите, что даже когда вывод передается в Select-Object -Property *, все атрибуты все равно не возвращаются.

Для получения атрибутов пользователей AD с помощью PowerShell используйте параметр Property. Этот параметр принимает один или несколько атрибутов, разделенных запятыми, для отображения в выводе.

Ниже приведен пример использования Get-AdUser для поиска всех свойств всех учетных записей пользователей с givenName равным Adam. Вывод усечен, но вы увидите другие знакомые атрибуты, такие как адрес электронной почты, свойства пароля и многое другое здесь.

PS> Get-AdUser -Filter "givenName -eq 'Adam'" -Properties *


AccountExpirationDate                :
accountExpires                       : 9223372036854775807
AccountLockoutTime                   :
AccountNotDelegated                  : False
AllowReversiblePasswordEncryption    : False
AuthenticationPolicy                 : {}
AuthenticationPolicySilo             : {}
BadLogonCount                        : 0
badPasswordTime                      : 0
badPwdCount                          : 0
CannotChangePassword                 : False
CanonicalName                        : mylab.local/Accounting/ADBertram
........

Управляйте и отчитывайтесь о деятельности в Active Directory, Exchange и Microsoft 365 с помощью ManageEngine ADManager Plus. Загрузите бесплатную пробную версию!

Краткое описание

Командлет Get-ADUser – это удобная команда для поиска учетных записей пользователей AD, создания отчетов и многое другое. Это отличный способ извлечь пользователей AD из домена. Для получения подробной информации о Get-AdUser и всех его параметрах ознакомьтесь с справочным содержанием, запустив команду Get-Help Get-AdUser.

Для множества других примеров использования Get-AdUser ознакомьтесь с сообщением в блоге Active Directory Scripts Galore: Come and Get It!.

Source:
https://adamtheautomator.com/get-aduser/