Подробный гайд: Где искать атрибут employeeID в Active Directory?

Подробный гайд по атрибуту employeeID в Active Directory: где искать, как просматривать и изменять через ADUC, PowerShell, ADSI Edit, ограничения длины и индексация.

2026.09.01                


Подробный гайд: Где искать атрибут employeeID в Active Directory?Подробный гайд: Где искать атрибут employeeID в Active Directory?

1. Что такое employeeID?

employeeID — это стандартный атрибут в схеме Active Directory, предназначенный для хранения уникального идентификатора сотрудника (например, табельного номера, кадрового номера или кода из HR-системы). Он определён для классов объектов user, contact и inetOrgPerson. Атрибут часто используется при синхронизации с системами управления персоналом (HR), в скриптах автоматизации и для интеграции с другими приложениями.




2. Характеристики атрибута

Параметр Значение
LDAP-имя employeeID
Отображаемое имя Employee-ID (в русской локали — «Код сотрудника»)
OID 1.2.840.113556.1.4.35
Синтаксис Directory String (Unicode String)
Количество значений Однозначный (single-valued)
Максимальная длина 16 символов (rangeUpper = 16)
Индексация по умолчанию Не индексирован (searchFlags = 0)
Доступность Windows 2000 Server и выше

Важно:

Из-за ограничения длины в 16 символов атрибут подходит не для всех идентификаторов. Если требуется хранить более длинные значения, используют расширение схемы (custom attributes) или атрибут extensionAttribute1-15.


3. Где искать employeeID в графическом интерфейсе

3.1. Active Directory Users and Computers (ADUC)

  1. Откройте оснастку Active Directory Users and Computers (dsa.msc).
  2. В меню выберите View → Advanced Features (Вид → Дополнительные компоненты). Без этого шага вкладка редактора атрибутов будет недоступна.
  3. Найдите нужного пользователя (или контакт), откройте его свойства двойным щелчком.
  4. Перейдите на вкладку Attribute Editor (Редактор атрибутов). В русской версии может называться «Редактор атрибутов».
  5. В списке атрибутов найдите employeeID. Значение отображается в столбце «Value».
  6. Чтобы изменить значение, выберите строку и нажмите Edit (Изменить), введите новый идентификатор и подтвердите.

Если вкладки Attribute Editor нет, убедитесь, что включены Advanced Features, и что вы смотрите свойства именно пользователя (не группы или компьютера).


3.2. ADSI Edit (adsiedit.msc)

Для низкоуровневого доступа к объектам каталога:

  1. Запустите ADSI Edit (adsiedit.msc).
  2. Подключитесь к нужному разделу (например, Default naming context).
  3. Найдите объект пользователя в дереве.
  4. Щёлкните правой кнопкой мыши → Properties.
  5. В списке атрибутов найдите employeeID (обязательно отметьте «Show only attributes that have values» или прокрутите список).
  6. Для редактирования выберите атрибут и нажмите Edit.

4. Поиск и просмотр через PowerShell

Модуль Active Directory для PowerShell — наиболее удобный способ массового просмотра и изменения.


4.1. Получение значения для одного пользователя

Get-ADUser -Identity "ivanov" -Properties employeeID | Select-Object Name, SamAccountName, employeeID

4.2. Получение списка всех пользователей с заполненным employeeID

Get-ADUser -Filter * -Properties employeeID | Where-Object { $_.employeeID -ne $null } | Select-Object Name, SamAccountName, employeeID

4.3. Поиск пользователя по конкретному employeeID

Если атрибут не индексирован, поиск выполняется полным перебором, что может быть медленно в больших доменах. Рекомендуется добавить индекс (см. раздел 7).

Get-ADUser -Filter "employeeID -eq '12345'" -Properties employeeID

4.4. Изменение значения

Set-ADUser -Identity "ivanov" -Replace @{employeeID="12345"}

или

Set-ADUser -Identity "ivanov" -EmployeeID "12345"   # параметр доступен в некоторых версиях модуля

5. Другие инструменты командной строки

5.1. DSQuery / DSGet (устаревшие, но работают)

Поиск пользователя по employeeID напрямую не поддерживается, но можно получить значение для конкретного пользователя:

dsquery user -name "Ivanov Ivan" | dsget user -samid -employeeid

5.2. Ldifde / Csvde для экспорта

Экспорт всех пользователей с атрибутом employeeID в файл:

csvde -f employees.csv -r "(&(objectClass=user)(employeeID=*))" -l "DN,employeeID,sAMAccountName"

5.3. LDP.exe

  • Подключитесь к серверу и контексту именования.
  • Выполните поиск с фильтром (employeeID=*), запросив атрибут employeeID.



6. Где хранится значение физически?

Атрибут хранится в базе данных Active Directory (NTDS.DIT) как часть объекта пользователя. Он реплицируется между контроллерами домена в соответствии с обычной топологией репликации (в пределах домена — на все DC, в глобальном каталоге — если атрибут включён в Partial Attribute Set; по умолчанию employeeID не входит в глобальный каталог, поэтому поиск в GC по этому атрибуту невозможен без изменения схемы).


7. Практические рекомендации

7.1. Уникальность

Active Directory не проверяет уникальность employeeID автоматически. Если требуется уникальность, необходимо реализовать проверку в скриптах или процессах.


7.2. Индексация

Если планируется часто искать пользователей по employeeID в больших доменах, рекомендуется добавить индекс на этот атрибут. Это ускорит поиск.


Добавление индекса через PowerShell:

$schemaPath = (Get-ADRootDSE).schemaNamingContext
$attr = Get-ADObject -Identity "CN=Employee-ID,CN=Schema,CN=Configuration,$schemaPath" -Properties searchFlags
$newFlags = $attr.searchFlags -bor 1   # 1 = INDEX
Set-ADObject -Identity $attr.DistinguishedName -Replace @{searchFlags=$newFlags}

После этого индекс будет построен автоматически.


7.3. Использование в синхронизации

Атрибут employeeID часто используется как сопоставляемый идентификатор при синхронизации между AD и HR-системами (например, Microsoft Identity Manager, Azure AD Connect). Убедитесь, что формат идентификатора соответствует ограничению в 16 символов.


7.4. Отображение в других оснастках

В обычной вкладке «General» свойств пользователя employeeID не отображается. Для отображения в пользовательских формах можно использовать расширения ADUC или сторонние инструменты.


8. Важно

Атрибут employeeID — простой и удобный способ хранения табельного номера сотрудника в Active Directory. Он доступен для чтения и записи стандартными средствами AD, но требует включения Advanced Features в графической оснастке или использования PowerShell/ADSI для полноценной работы. При проектировании решений учитывайте ограничение длины (16 символов) и отсутствие индекса по умолчанию.


Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

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