Атрибуты учетной записи windows

Подключал намедни линуксовый сервис для авторизации через AD, еле нашел описание соответствий атрибутов и их полей, да и те все на английском, что не очень удобно при русскоязычной системе, потому что хрен поймешь какие параметры за что отвечают. Чтобы каждый раз не выискивать их adexplorer’ом, решил составить таблицу основных атрибутов Active Directory.

Attribute \ Атрибут Англоязычное название Русскоязычное название Value \ Значение
OU (Organizational Unit) \ Подразделение
distinguishedName  Distinguished Name  Отличительное (уникальное) имя OU=Компания,DC=domain,DC=com
name Компания
Group \ Группа
distinguishedName  Distinguished Name Отличительное (уникальное) имя CN=Группа,OU=Компания,DC=domain,DC=com
name Группа
member Members Члены группы (какие пользователи входят в данную группу) CN=Сергей Петрович Иванов,OU=Компания,DC=domain,DC=com
User \ Пользователь
DN Distinguished Name Отличительное (уникальное) имя CN=Сергей Петрович Иванов,OU=Компания,DC=domain,DC=com
DC Domain Component Компонент(класс) доменного имени. DC=domain,DC=com
OU Organizational Unit Подразделение Компания
CN Common Name Общее имя Сергей Петрович Иванов
givenName First name Имя Сергей Петрович
name Full name Полное имя Сергей Петрович Иванов
sn (SurName) Last name Фамилия Иванов
displayName Display Name Выводимое имя Сергей Петрович Иванов
mail E-mail Электронная почта mail@domain.com
sAMAccountName User logon name (pre-Windows 2000) Имя входа пользователя (пред-Windows 2000) IvanovSP
userPrincipalName User logon name Имя входа пользователя IvanovSP@domain.com
memberOf Member Of Член групп (в какую группу входит данный пользователь) CN=Группа,OU=Компания,DC=domain,DC=com

Стоит отметить, что пользовательский displayName CN = Full name\Полное имя = namе, что можно видеть на последнем скрине.

Для более наглядного понимая приложу скрины:

general AD Attributes

account AD Attributes


Атрибут userAccountControl

Иногда надо понять включена или отключена учетная запись в AD. Или что еще с ней вообще происходит. За это отвечает атрибут userAccountControl, который является суммой нескольких свойств атрибутов. При этом, значение 512 является значением по умолчанию при всех снятых флагах на вкладке «Учетная запись» и каждый дополнительный параметр прибавляется к нему. Например, значения атрибута userAccountControl для наиболее распространенных случаев:
512 — Включена (Enabled)
514 (512+2) — Отключена (Disabled)
66048 (512+65536) — Включена, срок действия пароля не ограничен (Enabled, password never expires)
66050 (512+65536+2) — Отключена, срок действия пароля не ограничен (Disabled, password never expires)

Список основных значений атрибутов userAccountControl:

HEX DEC Описание
0x00000002 2 Учетная запись отключена
0x00000010 16 Учетная запись заблокирована
0x00000020 32 Пароль не требуется
0x00000040 64 Запретить смену пароля пользователем
0x00000080 128 Хранить пароль, используя обратимое шифрование
0x00000200 512 Учетная запись по умолчанию. Представляет собой типичного пользователя
0x00010000 65536 Срок действия пароля не ограничен
0x00040000 262144 Для интерактивного входа в сеть нужна смарт-карта
0x00400000 4194304 Без предварительной проверки подлинности Kerberos
0x00800000 8388608 Пароль пользователя истек

Подробное описание всех атрибутов

Атрибут контроля учетных записей пользователей userAccountControl является одним из важнейших атрибутов пользователя. Все администраторы Active Directory так или иначе используют этот атрибут в своей работе, но далеко не все понимают, что он из себя представляет и как работает.

Для примера возьмем самую простую, рутинную операцию — активация учетной записи. К вам обращается пользователь с жалобой на то, что его учетная запись отключена. Вы открываете оснастку Active Directory Users and Computers (ADUC), находите пользователя, открываете свойства его учетной записи и снимаете галочку «Account is disabled».

Задача выполнена, пользователь доволен. Но при чем тут userAccountControl спросите вы. А при том, что ставя галочку, вы меняете значение именно этого атрибута. Большинство свойств пользователя, представленных в этом окне, не являются самостоятельными атрибутами.  Каждое из них является битом (флагом), который может принимать значение 1 (true) или 0 (false), но все эти значения не хранятся в виде отельных атрибутов в Active Directory, а являются частью одного единственного атрибута userAccountControl.

Таким образом, UserAccountControl представляет из себя битовую маску (bitwise) длиной в 32 бита (4 байта), где каждый параметр учетной записи является битом этой маски.  Соответственно в зависимости от значений этих параметров и вычисляется общее значение userAccountControl.

Для наглядности разберем UserAccountControl по запчастям и поместим их в табличку.

Bit Decimal Hex Binary Flag
0 1 0x00000001 0000 0000 0000 0000 0000 0000 0000 0001 SCRIPT
1 2 0x00000002 0000 0000 0000 0000 0000 0000 0000 0010 ACCOUNTDISABLE
2 4 0x00000004 0000 0000 0000 0000 0000 0000 0000 0100
3 8 0x00000008 0000 0000 0000 0000 0000 0000 0000 1000 HOMEDIR_REQUIRED
4 16 0x00000010 0000 0000 0000 0000 0000 0000 0001 0000 LOCKOUT
5 32 0x00000020 0000 0000 0000 0000 0000 0000 0010 0000 PASSWD_NOTREQD
6 64 0x00000040 0000 0000 0000 0000 0000 0000 0100 0000 PASSWD_CANT_CHANGE
7 128 0x00000080 0000 0000 0000 0000 0000 0000 1000 0000 ENCRYPTED_TEXT_PWD_ALLOWED
8 256 0x00000100 0000 0000 0000 0000 0000 0001 0000 0000 TEMP_DUPLICATE_ACCOUNT
9 512 0x00000200 0000 0000 0000 0000 0000 0010 0000 0000 NORMAL_ACCOUNT
10 1024 0x00000400 0000 0000 0000 0000 0000 0100 0000 0000
11 2048 0x00000800 0000 0000 0000 0000 0000 1000 0000 0000 INTERDOMAIN_TRUST_ACCOUNT
12 4096 0x00001000 0000 0000 0000 0000 0001 0000 0000 0000 WORKSTATION_TRUST_ACCOUNT
13 8192 0x00002000 0000 0000 0000 0000 0010 0000 0000 0000 SERVER_TRUST_ACCOUNT
14 16384 0x00004000 0000 0000 0000 0000 0100 0000 0000 0000
15 32768 0x00008000 0000 0000 0000 0000 1000 0000 0000 0000
16 65536 0x00010000 0000 0000 0000 0001 0000 0000 0000 0000 DONT_EXPIRE_PASSWORD
17 131072 0x00020000 0000 0000 0000 0010 0000 0000 0000 0000 MNS_LOGON_ACCOUNT
18 262144 0x00040000 0000 0000 0000 0100 0000 0000 0000 0000 SMARTCARD_REQUIRED
19 524288 0x00080000 0000 0000 0000 1000 0000 0000 0000 0000 TRUSTED_FOR_DELEGATION
20 1048576 0x00100000 0000 0000 0001 0000 0000 0000 0000 0000 NOT_DELEGATED
21 2097152 0x00200000 0000 0000 0010 0000 0000 0000 0000 0000 USE_DES_KEY_ONLY
22 4194304 0x00400000 0000 0000 0100 0000 0000 0000 0000 0000 DONT_REQ_PREAUTH
23 8388608 0x00800000 0000 0000 1000 0000 0000 0000 0000 0000 PASSWORD_EXPIRED
24 16777216 0x01000000 0000 0001 0000 0000 0000 0000 0000 0000 TRUSTED_TO_AUTH_FOR_DELEGATION
25 33554432 0x02000000 0000 0010 0000 0000 0000 0000 0000 0000
26 67108864 0x04000000 0000 0100 0000 0000 0000 0000 0000 0000 PARTIAL_SECRETS_ACCOUNT
27 134217728 0x08000000 0000 1000 0000 0000 0000 0000 0000 0000
28 268435456 0x10000000 10 000 000 000 000 000 000 000 000 000
29 536870912 0x20000000 100 000 000 000 000 000 000 000 000 000
30 1073741824 0x40000000 1 000 000 000 000 000 000 000 000 000 000
31 2147483648 0x80000000 10 000 000 000 000 000 000 000 000 000 000

Всего 32 значения, хотя как можно заметить, используются далеко не все. Вот описание тех что используются:

SCRIPT — будет выполняться сценарий входа.
ACCOUNTDISABLE — учетная запись пользователя отключена.
HOMEDIR_REQUIRED — требуется домашняя папка.
LOCKOUT — учетная запись заблокирована.
PASSWD_NOTREQD — пароль не требуется. Этот флаг позволяет иметь полностью функционирующую учетную запись с пустым паролем, вне зависимости от действующей доменной политике паролей.
PASSWD_CANT_CHANGE — пользователь не может изменить пароль. На самом деле этот флаг регулируется разрешениями на объект пользователя, подробнее можно посмотреть здесь https://learn.microsoft.com/en-us/windows/win32/adsi/modifying-user-cannot-change-password-ldap-provider
ENCRYPTED_TEXT_PASSWORD_ALLOWED — указывает, будет ли AD хранить пароль в обратимом формате шифрования (Store password using reversible encryption), т.е. может ли пароль быть расшифрован. По умолчанию пароли хранятся в виде хеша, с использованием необратимого шифрования, т.е невозможно получить исходный пароль зная его хэш (за исключением использования полного перебора).
TEMP_DUPLICATE_ACCOUNT — учетная запись для пользователя, основная учетная запись которого находится в другом домене. Эта учетная запись предоставляет пользователю доступ к этому домену, но не к доменам, которые доверяют этому домену. Иногда его еще называют локальной учетной записью пользователя.
NORMAL_ACCOUNT — учетная запись пользователя по умолчанию.
INTERDOMAIN_TRUST_ACCOUNT — разрешение на доверие учетной записи для системного домена, который доверяет другим доменам.
WORKSTATION_TRUST_ACCOUNT — учетная запись компьютера под управлением рабочей станции Microsoft Windows NT 4.0, Microsoft Windows NT 4.0 Server, Microsoft Windows 2000 Professional или Windows 2000 Server, который является членом этого домена.
SERVER_TRUST_ACCOUNT — учетная запись компьютера для контроллера домена, который является членом этого домена.
DONT_EXPIRE_PASSWD — Срок действия пароля для учетной записи не ограничен (Password never expires). Этот флаг делает пароль пользователя бессрочным, вне зависимости от политики паролей в домене.
MNS_LOGON_ACCOUNT — это учетная запись для входа в MNS. Набор мажоритарных узлов ((Majority Node Set, MNS) представляет собой многосерверную конфигурацию с общей шиной хранения или без нее и кворумом, распределенным по всем серверам. Учетные записи входа в MNS можно использовать для настройки многоузлового кластера без использования общего жесткого диска.
SMARTCARD_REQUIRED — если этот флаг установлен, пользователь должен войти в систему с помощью смарт-карты.
TRUSTED_FOR_DELEGATION — если этот флаг установлен, учетная запись, под которой выполняется служба (учетная запись пользователя или компьютера) является доверенной для делегирования Kerberos. Любая такая служба может олицетворять клиента, запрашивающего службу. Чтобы включить службу для делегирования Kerberos, необходимо установить этот флаг в свойстве userAccountControl учетной записи службы.
NOT_DELEGATED — если этот флаг установлен, контекст безопасности пользователя не делегирован службе, даже если учетная запись службы настроена как доверенная для делегирования Kerberos.
USE_DES_KEY_ONLY — ограничить этот субъект использованием стандартных типов шифрования данных (DES).
DONT_REQUIRE_PREAUTH — эта учетная запись не требует предварительной проверки подлинности Kerberos для входа в систему.
PASSWORD_EXPIRED — срок действия пароля пользователя истек.
TRUSTED_TO_AUTH_FOR_DELEGATION — учетная запись включена для делегирования. Этот параметр позволяет службе, которая выполняется под учетной записью, использовать удостоверение клиента и выполнять проверку подлинности от имени этого пользователя на других удаленных серверах в сети. Этот параметр чувствителен к обеспечению безопасности, поэтому учетные записи, для которых он включен, должны строго контролироваться.
PARTIAL_SECRETS_ACCOUNT — учетная запись является контроллером домена только для чтения (RODC).

Как вычисляется текущее значение userAccountControl

Предположим у нас есть стандартная учетная запись пользователя (NORMAL_ACCOUNT) с бессрочным паролем (DONT_EXPIRE_PASSWORD). Берем оба значения в двоичном виде и проводим над ними операцию побитового ИЛИ (Bitwise OR):

00000000001000000000
00010000000000000000
00010000001000000000 = 66048 (Dec) = 0x10200 (Hex)

Этот пример я привел лишь для понимания того, что userAccountControl  — это битовая маска, и все операции над ней проводятся побитно. В обычном случае можно просто сложить два десятичных значения:

512 + 65536 = 66048

Как посмотреть значение userAccountControl

Проще всего посмотреть текущее значение атрибута userAccountControl с помощью оснастки ADUC. Для этого надо включить отображение расширенных опций (Advanced features),

Включение отображения расширенных опций

найти нужную учетную запись, перейти на вкладку редактора атрибутов (Attribute Editor) и найти атрибут userAccountControl. Как видите, он отображается в шестнадцатеричном виде и к нему прилагается название включенных флагов.

Если же выбрать атрибут и раскрыть его, то значение будет показано уже в десятичном виде.

Можно узнать значение userAccountControl и с помощью PowerShell. Например:

Get-ADUser ivanov_ii -Properties * | select Name,userAccountControl

Просмотр значения userAccountControl в PowerShell

Как видите, стандартный командлет возвращает только десятичное значение атрибута, без расшифровки флагов. Но это можно легко исправить с помощью найденного мной на просторах интернета скрипта вот такого содержания:

Function ConvertUserAccountControl ([int]$UAC)
{
$UACPropertyFlags = @(
"SCRIPT",
"ACCOUNTDISABLE",
"RESERVED",
"HOMEDIR_REQUIRED",
"LOCKOUT",
"PASSWD_NOTREQD",
"PASSWD_CANT_CHANGE",
"ENCRYPTED_TEXT_PWD_ALLOWED",
"TEMP_DUPLICATE_ACCOUNT",
"NORMAL_ACCOUNT",
"RESERVED",
"INTERDOMAIN_TRUST_ACCOUNT",
"WORKSTATION_TRUST_ACCOUNT",
"SERVER_TRUST_ACCOUNT",
"RESERVED",
"RESERVED",
"DONT_EXPIRE_PASSWORD",
"MNS_LOGON_ACCOUNT",
"SMARTCARD_REQUIRED",
"TRUSTED_FOR_DELEGATION",
"NOT_DELEGATED",
"USE_DES_KEY_ONLY",
"DONT_REQ_PREAUTH",
"PASSWORD_EXPIRED",
"TRUSTED_TO_AUTH_FOR_DELEGATION",
"RESERVED",
"PARTIAL_SECRETS_ACCOUNT"
"RESERVED"
"RESERVED"
"RESERVED"
"RESERVED"
"RESERVED"
)

return (0..($UACPropertyFlags.Length) | where {$UAC -bAnd [math]::Pow(2,$_)} | foreach {$UACPropertyFlags[$_]}) -join ” | ”
}

Эта функция получает на входе текущее значение userAccountControl в десятичном виде, а на выходе возвращает все включенные флаги (биты). С ее помощью мы можем вывести все флаги, вот примерно так:

Get-ADUser petrov_p -Properties * | fl Name,userAccountControl,@{Label="Flags";Expression={ConvertUserAccountControl($_.userAccountControl)}}

Просмотр значения флагов userAccountControl в PowerShell

Еще одна распространенная ситуация — когда требуется найти всех пользователей с каким то конкретным флагом, например всех у кого срок действия пароля не истекает. Тут есть два пути.

Путь первый — можно просто искать всех пользователей с определенным значением userAccountControl, в случае с бессрочным паролем это будет 66048. Соответственно берем это значение и добавляем его в обычный фильтр:

Get-ADUser -Properties * -Filter {userAccountControl -like 66048} | select Name, userAccountControl

Поиск пользователей по общему значению userAccountControl

или в LDAP-фильтр, кому как больше нравится:

Get-ADUser -Properties * -LdapFilter "(userAccountControl=66048)" | select Name, userAccountControl

Поиск пользователей по общему значению userAccountContro с помощью LDAP-фильтра

В большинстве ситуаций этого нехитрого фильтра вполне хватает. Но все таки не надо забывать, что userAccountControl включает в себя много разных флагов, и вполне может быть так, что кроме бессрочного пароля у пользователя включен еще какой нибудь из них. И в этом случае этот пользователь под фильтр не попадет, поскольку значение userAccountControl у него будет отличаться.

И тут нам поможет путь самурая второй — правила сопоставления, которые можно использовать для побитового сравнения числовых значений. Правила сопоставления имеют следующий синтаксис:

<attribute name>:<matching rule OID>:=<value>

Здесь attribute name — LDAPDisplayName имя атрибута, matching rule OID — идентификатора объекта правила (OID), value — значение, используемое для сравнения. Имейте в виду, что в этой строке нельзя использовать пробелы. Значение должно быть десятичным числом, оно не может быть шестнадцатеричным числом или константным именем.

Вот правила, которые можно использовать для поиска.

Идентификатор OID правила сопоставления Идентификатор строки Описание
                   1.2.840.113556.1.4.803 LDAP_MATCHING_RULE_BIT_AND Совпадение обнаруживается только в том случае, если все биты из атрибута соответствуют значению. Это правило эквивалентно побитовому И (bitwise AND)
                    1.2.840.113556.1.4.804 LDAP_MATCHING_RULE_BIT_OR Совпадение обнаруживается, если какие-либо биты из атрибута соответствуют значению. Это правило эквивалентно побитовому ИЛИ (bitwise OR)

С помощью этих правил мы можем найти значение для конкретного флага, вне зависимости от остальных. Вот так будет выглядеть команда для всех пользователей с неистекающим паролем:

Get-ADUser -Properties * -LdapFilter "(userAccountControl:1.2.840.113556.1.4.804=65536)" | select Name, userAccountControl

Как видите, результат отличается от предыдущего поиска. В выборку попала учетная запись гостя, поскольку у нее включена еще пара опций. Это в тестовой среде, в бою разница была бы гораздо больше.

использование правил для поиска пользователей

Как изменить значение userAccountControl

Некоторые флаги userAccountControl можно изменять из оснастки ADUC, путем установки галочек. Для примера возьмем многострадальную 🙂 учетную запись ivanov_ii и поставим ему галку ″Password never Expires″.

Теперь проверим, значение атрибута. Изначально у него было значение 512 (NORMAL_ACCOUNT), теперь добавилось 65536 (DONT_EXPIRE_PASSWORD). Итого 66048  или 0x10200 в шестнадцатеричном виде.

Можно зайти с другой стороны и изменить значение userAccountControl напрямую, из редактора атрибутов. Возьмем получившееся значение 66048 и добавим к нему 2, тем самым отключив аккаунт.

Возвращаемся обратно к свойствам пользователя и видим, что галка ″Account is disabled″ установлена.

Можно менять значение userAccountControl и с помощью PowerShell. Так командлет Set-ADUser позволяет изменять некоторые флаги.

Для примера берем все ту же учетную запись ivanov_ii и возвращаем ее в исходное состояние. Затем устанавливаем ей флаг DONT_EXPIRE_PASSWORD командой:

Set-ADUser ivanov_ii -PasswordNeverExpires $true

изменение userAccountControl с помощью Set-ADUser

Как и оснастка ADUC, командлет Set-ADUser  может изменять не все флаги, по крайней мере явно. Но зато с его помощью можно менять значение userAccountControl напрямую. Добавим учетной записи флаг PASSWD_NOTREQD такой командой:

Set-ADUser ivanov_ii -Replace @{userAccountControl=66080}

прямое изменение userAccountControl с помощью Set-ADUser

Ну и начиная с 5 версии PowerShell для редактирования userAccountControl добавлен специальный командлет Set-ADAccountControl, который умеет менять почти все имеющиеся флаги. Возьмем его и уберем все лишнее с учетной записи:

Set-ADAccountControl -Identity ivanov_ii -PasswordNeverExpires $false -PasswordNotRequired $false

прямое изменение userAccountControl с помощью Set-ADAccountControl

Есть у userAccountControl флаги, которые невозможно изменить в принудительном порядке. Так например если вы захотите установить флаг LOCKOUT, т.е. заблокировать пользователя, то у вас ничего не выйдет. Команда отработает, никаких ошибок не выдаст, но значение атрибута останется неизменным.

неуспешная попытка изменения

Скажу больше, даже если учетная запись пользователя действительно заблокирована, то значение userAccountControl останется неизменным. Дело в том, что флаг LOCKOUT был выпилен еще в Windows Server 2003 и заменен атрибутом msDS-User-Account-Control-Computed. При этом его описание до сих пор присутствует в официальной документации Microsoft.

Отдельно стоит упомянуть о флаге PASSWD_CANT_CHANGE. Этот флаг запрещает пользователю самостоятельно сменить свой пароль. Но если вы поставите галку ″User cannot change password″  в графической оснастке или проделаете эту операцию с помощью PowerShell, то значение userAccountControl никак не изменится. Дело в том, что эта операция не меняет значение атрибута, а вносит изменения в список доступа (Access Control List, ACL) пользователя. Если точнее, то ставится запрет на изменения пароля для объекта SELF, т.е. самого пользователя.

Конечно в документации есть небольшое уточнение на этот счет, но лично мне в целом непонятно, при чем тут вообще userAccountControl.

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

Approved By

Anuraag Singh  

Published On

May 27th, 2024

Reading Time

7 Minutes Reading

When working with Windows Active Directory IT admin must need to view user attributes, as it provides a next-level insight into the behavior, structure, and status of the object in question, which here is the user itself. With this list in their possession, the admins can conduct necessary changes in the AD environment with ease. Moreover, it also serves as a historical record that other admins in the future can refer to and take guidance from. Not to mention, the organization itself becomes more in tune with the Active Directory service they are using.

Attribute analysis is done to make sure that the new users being added to the AD replicate the previously present entities. Given its importance, let’s jump straight to the most well-known method to view them.

Table of Content

  • How to Get the Active Directory Attributes List Using ADUC?
  • How to View User Attributes in Active Directory With Active Directory Admin Center?
  • Some Limitations of Attribute Checking Via ADUC and ADAC
  • How to See User Attributes in Active Directory With PowerShell Scripts?
  • Script Free Way to Find Active Directory Attributes List
  • Conclusion

How to Get the Active Directory Attributes List Using ADUC?

The basic answer on how to check user attributes in Active Directory is the ADUC portal. It is not wrong to assume that Active Directory Users and Computers snap-in is present in almost all AD environments. Therefore, it becomes the go-to place for admins to seek out information on their Windows AD. Let us see how to use it.

  • Search for ADUC on your workstation and open it.
  • Expand the list view from the left pane and go to Users.
  • Select the user whose attributes you wish to see.
  • A window opens, giving you a subset of the information.

However, it is important to mention that the default attributes only show you a piece of preliminary information about the user object. For minor tasks or a quick overview, this is sufficient. Moreover, if administrators want a detailed overview, they must do it via the Attribute Editor.

As this is hidden in the default view, admins have to backtrack and toggle the Advanced Features option under the View option of the main menu ribbon of ADUC.

After that, repeat the same process to open the User Properties window. This time, you see an expanded set of tabs in the same window. Select the Attribute Editor tab and scroll through or type the initial letter of the attribute you wish to see.

see active directory attributes list with aduc advanced features

Apart from ADUC, there is also another powerful GUI-based solution built into Active Directory. You don’t have to go anywhere else; we have the instructions to use it right here. Simply hop on to the next part.

How to View User Attributes in Active Directory With Active Directory Admin Center?

  • Search for ADAC (use the full form) and open the first option. Once the window is available, scroll till you see the global search option.
  • Type the name of the user object whose attributes you want to view and press enter.
  • Choose the object from the list view.
  • In the object details section select Extensions
  • In the Extensions dashboard click on Attribute Editor.

ADAC User Attributes View

The above two simple GUI methods may seem good at first but they are not usable in every case. This is due to some inherent disadvantages. So let us see what these disadvantages are.

Some Limitations of Attribute Checking Via ADUC and ADAC

  • Sometimes the Attribute Editor tab of the Properties page may be blank. To fix it click on the Filter option and mark the Mandatory and Optional Attributes options. Other than that, you can use the same filter tool to trim the list down to the Attributes that have a preset value.
  • The Attribute Editor option present in both ADUC’s and ADAC’s options is rather powerful for the task we are using it for. So there is a risk that inexperienced administrators might make unwarranted changes.
  • Another limitation is that many of these attributes are stuck on a view-only screen. Meaning admins can’t share the results of their search with interested parties like the organization’s executives. They have to manually type out all the information they see. The lack of a copy option also makes it difficult for the admin to assign the same attributes to any new user object they want to make.
  • Even the attributes that can be edited or copied are present in a variety of formats. Ranging from hexadecimal to the 64-bit FileTime format for date attributes. Making them unpresentable without extra time spent editing and reformatting.

The ADUC and ADAC are not the only way to see user properties, we also have some scripting methods that admins can apply.

How to See User Attributes in Active Directory With PowerShell Scripts?

To use the Command Line do the following:

Press Windows + R Key and type cmd in the run box. On the command line type the following query

net user %username% /domain

Here you get a toned-down list of the attributes of a currently logged-in user.

Instead of a command line, you may as well utilize the PowerShell module. Two PowerShell commands get the job done.

The first one is to get the Active Directory attribute list of a single user:

get-aduser -Identity guest -Properties *

PowerShell Output 1

The second one is there to make a CSV output of all users:

get-aduser -Filter * -Properties * | export-csv -path C:\Users\Administrator\Desktop\export-all.csv

PowerShell output 2

However, using the scripts poses the following difficulties.

  • Your organization may have locked or disabled viewing via PowerShell commands.
  • Although commands appear simple, they may not work.
  • Moreover, like the previous method, even with these scripts, you are directly interacting with the AD. So there is a chance that you may end up changing the ad objects from their default setup.
  • As in a script, it is even more difficult to guess the changes so novice admins are better off skipping the scripts.

So let us see an alternative approach to viewing the user object data that works from outside of your AD.

Script Free Way to Find Active Directory Attributes List

Attributes are nothing but specific properties that point out the status of an object. In the case of a user object, it may be as simple as finding out what OU a user is in or checking which accounts are locked in the AD. That’s why administrators can trust the GUI-based SysTools Active Directory Reporting Software for all their AD information gathering.

Download Now Purchase Now

It is fine-tuned to display the most notable attributes with a variety of filtering options. The steps to use the tool are as follows:

Step 1. Open the tool after using the default administrator credentials.

Type administrator

Step 2. Press the REGISTER DOMAIN CONTROLLER button.

Register Domain Controller button

Step 3. Type a Domain Friendly Name and IP address.

Register Domain Controller screen

Step 4. Fill in the Admin ID and Password, then hit Save and Continue.

Save Credentials

Step 5. Go to Report Screen Select the All category under User Workload.

Report tab multiple options

Step 6. Hit the Preview button and toggle its options to find the best viewing style.

Preview

Step 7. To get the User level data, hit Download and choose CSV.

Download CSV

Step 8. Save the CSV in a suitable location and view it in any appropriate app.

View CSV

Note: While working with Winodws Active Directory, events like AD merger, restructure, etc, it creates an urgent need of migration. Additionally, it is always crucial to utilise a reliable approach to peform these task without any error.  As it can result in business disruption and data loss scenraio. For such migration event in AD, SysTools offers one of its kind Active Directory Migration Tool. It ensure data security and easily migrate AD objects from one domain to another.

Conclusion

In this write-up, we gave admins the complete guide on how to check user attributes in Active Directory setup. With this, they are now in complete control of all the information present on the AD. Moreover, if the manual methods of attribute audit seem problematic, they can always go for the automated solution discussed above.

By Mohit Jha

With 5+ years of experience, Mohit is a Microsoft Certified expert known for his cloud migration, cyber security, and digital forensics expertise. He specializes in Microsoft 365, Exchange Server, and Azure AD migration, ensuring seamless transitions for organizations worldwide. His multifaceted role as a meticulous tech writer, diligent researcher, and astute editor underscores his commitment to delivering cutting-edge digital forensics and cloud migration strategies.

View all of Mohit Jha’s posts.

Редактор атрибутов Active Directory (Attribute Editor) это встроенный графический инструмент для редактирования любых свойств объектов AD (пользователей, компьютеров, групп, сервисных учетных записей). С помощью редактора атрибута вы можете получить и изменить значения атрибутов объектов AD, которые недоступны в свойствах на стандартных вкладках объектов в консоли ADUC.

Содержание:

  • Встроенный Attribute Editor в консоли Active Directory Users and Computer
  • Не отображается вкладка Attribute Editor через поиск Active Directory
  • Редактирование атрибутов Active Directory с помощью ADSI Edit

Встроенный Attribute Editor в консоли Active Directory Users and Computer

Чтобы воспользоваться редактором атрибутов AD, вам нужно установить MMC оснастку dsa.msc (ADUC / Active Directory Users and Computer), которая входит в состав средств администрирования RSAT для Windows (Remote Server Administration Tools). Для установки компонентов нужно выполнить следующую PowerShell команду:

  • В Windows 10/11:
    Add-WindowsCapability –online –Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0
  • В Windows Server 2022/2019/2016/2012R2 установка ролей и компонентов выполняется с помощью командлета Install-WindowsFeature:
    Install-WindowsFeature RSAT-ADDS

Встроенный редактор атрибутов Active Directory доступен в консоли ADUC, начиная с Windows Server 2008 R2.

Попробуйте открыть свойства любого пользователя в AD. Как вы видите основные атрибуты пользователя разделены на несколько вкладок. Основные из них:

  • Общие (General) – основные свойства пользователя, которые задаются при создании учетной записи в AD (имя, фамилия, телефон, email и т.д.);
  • Адрес (Address);
  • Учетная запись (Account) – имя учетной записи (samAccountName, userPrincipalName). Здесь можно указать список компьютеров, на которых разрешено работать пользователю (LogonWorkstations), опции: пароль не истекает, пользователь не может сменить пароль, включена ли учетная запись и ее срок действия и т.д. Здесь же можно разблокировать пользователя, если его учетная запись заблокирована из-за неверно введенного пароля;
  • Профиль (Profile) – можно настроить путь к профилю пользователя (в сценариях с перемещаемыми профилями ); скрипт, выполняемый при входе, домашнюю папку, сетевой диск;
  • Телефоны (Telephones);
  • Организация (Organization) – должность, департамент, компания пользователя, имя менеджера;
  • Remote Control – настройки теневого подключения к сессии пользователя в Windows;
  • Sessions таймауты (лимиты) для RDP/RDS подключений;
  • Member Of – список групп пользователя.

Чтобы изменить значение одного из атрибутов пользователя, просто измените значение в поле и сохраните изменения, нажав клавишу Apply или OK.

В окне редактора атрибутов вам доступен только базовый набор свойств пользователя, хотя в классе User в AD гораздо больше атрибутов (200+).

свойства пользвоателя в консоли Active Directory

Чтобы отобразить расширенный редактор атрибутов, вам нужно включить в меню ADUC опцию View -> Advanced Features (Вид -> Дополнительные компоненты).

ADUC View - data-lazy-src=

Теперь еще раз откройте свойства пользователя и обратите внимание, что появилась отдельная вкладка Attribute Editor. Если перейти на нее, перед вами откроется тот самый редактор атрибутов пользователя AD. Здесь в таблице представлен список всех атрибутов пользователя AD и их значения. Вы можете щелкнуть на любом атрибуте и изменить его значение. Например, изменив значение атрибута department, вы увидите, что сразу изменилось наименование департамента в свойствах пользователя на вкладке Organization.

Attribute Editor в консоли AD

Из редактора атрибутом можно скопировать значение поля distinguishedName (в формате
CN=Sergey A. Ivanov,OU=Users,OU=Msk,DC=winitpro,DC=ru
— уникальное имя объекта в AD), CN (
Common Name
), узнать дату создания учётной записи (whenCreated) и т.д.

Здесь же можно скопировать точные названия/значения атрибутов объектов для использования в ваших PowerShell скриптах.

Внизу окна редактора атрибутов AD присутствует кнопка Filter. По умолчанию в окне атрибутов отображаются только непустые атрибуты (включена опция Show only attributes that have values / Отображать только атрибуты со значениями). Если вы отключите эту опцию, в консоли будут показаны все атрибуты класса User. Также обратите внимание на опцию Show only writable attributes. Если включить ее, вам станут доступны только те атрибуты, на редактирование которых вам делегированы полномочия (если у вас нет прав на изменение атрибутов данного пользователя, список атрибутов будет пуст).

Фильтр в редакторе атрибутов пользвоателя AD - Show only attributes that have values

Также вы можете вывести только обязательные атрибуты объекта Filter -> Mandatory (для пользователя это
cn
,
objectCategory
,
objectClass
,
sAMAccountName
) или только дополнительные (необязательные атрибуты) – Filter -> Optional.

Для большинства атрибутов AD имеется встроенная функция декодирования значений. Например:

Не отображается вкладка Attribute Editor через поиск Active Directory

Основной недостаток редактора атрибутов AD, он не открывается в свойствах объекта, если вы нашли его через поиск (почему так сделано — я не понимаю). Для использования Attribute Editor вы должны развернуть в дереве AD контейнер (Organizational Unit, OU), в котором находится объект, найти в списке нужный объект и открыть его свойства (все это довольно не удобно).

Для себя я нашел небольшой лайфхак, который позволяет открыть редактор атрибутов пользователя, найденного через поиск в консоли ADUC.

Итак:

  1. С помощью поиска найдите нужного пользователя;
  2. Перейдите на вкладку со списком групп пользователя (Member of);
  3. Откройте одну из групп (желательно, чтобы в ней было как можно меньше пользователей);
  4. В свойствах группы перейдите на вкладку с членами группы (Member) и закройте (!) окно свойств пользователя;
    свойства пользователя AD - список групп

  5. Теперь в списке членов группы щелкните по своему пользователю и перед вами откроется окно свойств пользователя со вкладкой Attribute Editor.
    attribute editor ad через поиск

Также вы можете открыть редактор атрибутов пользователя без его ручного выбора в дереве AD через сохраненные запросы в консоли ADUC.

сохраненный запрос в консоли AD

Либо вы можете использовать консол Active Directory Administrative Center (
dsac.msc
), в котором вкладка редактора атрибутов пользователя (компьютера) доступна даже через поиск (вкладка Extension).

Active Directory Administrative Center редактор атрибутов

Вместо Attribute Editor для просмотра и редактирования всех атрибутов пользователей, групп и компьютеров можно использовать командлеты PowerShell:

Просмотр значений всех атрибутов объектов:

  • Пользователя:
    Get-ADUser username -Properties *
  • Компьютера:
    Get-ADСomputer computername -Properties *
  • Группы:
    Get-ADGroup groupname -Properties *

Чтобы изменить атрибуты объектов в AD соответственно используются командлеты
Set-ADUser
,
Set-ADComputer
и
Set-ADGroup
.

Редактирование атрибутов Active Directory с помощью ADSI Edit

Консоль служебного редактора ADSI Edit (Active Directory Service Interface Edit) представляет собой более низкоуровневое средство для управления и редактирования объектов и атрибутов в LDAP каталогах (в том числе в разделах базы данных Active Directory — NTDS.dit). Консоль ADSI Edit можно использовать для редактирования атрибутов, объектов и разделов каталога, которые не доступны через стандартные MMC оснастки Active Directory, исправления ошибок Active Directory и различных объектов служб использующих AD для хранения конфигурации (Exchange, SCCM).

Чтобы запустить консоль ADSI Edit, выполните команду Win + R ->
adsiedit.msc
.

При первом запуске MMC консоли вам будет предложено выбрать контен наименования Active Directory, к которому нужно подключиться (Actions -> Connect to). Доступны следующие разделы:

  • Default naming context
  • Configuration
  • RootDSE
  • Schema

adsi edit подключение к active directory

В нашем примере мы будем использовать консоль ADSI как редактор атрибутов пользователей/компьютеров, поэтому нужно подключиться к Default naming context.

Перед вами появиться ваша древовидная структура контейнеров и OU в AD. Здесь вы можете открыть свойства найти нужного объект Active Directory. Перед вами появится окно редактора атрибутов объекта. Здесь вы можете просмотреть или изменить значения свойств пользователя/компьютера/группы.

редактор атрибутов объектов ad в консоли adsiedit.msc

Будьте особо внимательными при редактировании разделов схемы и атрибутов объектов через ADSI Edit. Эта утилита позволяет писать изменения напрямую в базу данных, схему и конфигурацию AD, и обходить простейшие проверки и ограничения, которые есть в других MMC консолях. Рекомендуем создать резервную копию AD перед внесением изменений с помощь базы с помощью adsiedit.msc.

In this guide, you will learn how to enable the Attribute Editor in Active Directory, it is disabled by default. In addition, I’ll show you how to view user attributes with ADUC, PowerShell, and the AD Pro Toolkit.

Table of Contents:

  • How to View User Attributes using ADUC
  • Get All User Attributes Using the AD Pro Toolkit (GUI TOOL)
  • Get All User Attributes with PowerShell

How to View User Attributes using Active Directory Users and Computers (ADUC)

Use the steps below to enable the Attribute Editor and view user attributes in Active Directory.

Step 1. Open ADUC

active directory users and computer console

Step 2. Click on View and enable Advanced Features

advanced features

When you enable advanced features this option will stay enabled, meaning you do not need to enable it each time you open ADUC.

Step 3. Open the Attribute Editor

With the advanced features enabled, you can open a user account and click the Attribute Editor. This will display all the attributes for this user account.

active directory attribute editor

There will be many attributes that are blank, this is normal. If you want to see only the attributes that have values click on filter and select Show only attributes that have values.

show only attributes that have values

This will greatly reduce the number of attributes displayed for the user. I personally like to display all attributes including the blank ones as I often need to check the value for specific user attributes.

There are a few different ways you can get all user attributes with the AD Pro Toolkit.

Note: The toolkit does not get all attributes, it has been configured to list the most commonly used attributes. Currently, it will get over 40 user attributes. More can be added upon request.

Step 1. Run All Users Report

Click on User Reports – All Users

Step 2. Add or Remove User Attributes

To add or remove user attributes to the report click the columns button at the top.

The AD Pro Toolkit includes over 200 pre-built reports.

  • User Reports
  • Computer Reports
  • Group Policy Reports
  • Group Reports
  • OUs
  • Security Reports

Try the Toolkit for FREE in your domain, Download Free Trial.

Get All User Attributes with PowerShell

By default, the get-aduser cmdlet will only return 10 user attributes.

get user attributes with powershell

To view all user attributes with PowerShell you need to use the Properties parameter.

Here is an example command.

get-aduser -Identity robert.allen -properties *
display all attributes with powershell

The above command will return 111 user attributes. This number might be different in your domain depending on if the schema has been modified or extended.

To count the number of attributes use the below command.

$user= get-aduser robert.allen -properties *;
$user | Get-Member -MemberType Property,AliasProperty | Measure-Object

I hope you found this guide useful. If you have questions or comments post them below.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Где находятся картинки windows интересное
  • Open windows clipboard windows 7
  • Windows 10 login without password
  • Как восстановить записку в windows 10
  • Check usb version windows