Редактор атрибутов Active Directory (Attribute Editor) это встроенный графический инструмент для редактирования любых свойств объектов AD (пользователей, компьютеров, групп, сервисных учетных записей). С помощью редактора атрибута вы можете получить и изменить значения атрибутов объектов AD, которые недоступны в свойствах на стандартных вкладках объектов в консоли ADUC.
Встроенный 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
Попробуйте открыть свойства любого пользователя в 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+).
Чтобы отобразить расширенный редактор атрибутов, вам нужно включить в меню ADUC опцию View -> Advanced Features (Вид -> Дополнительные компоненты).
Теперь еще раз откройте свойства пользователя и обратите внимание, что появилась отдельная вкладка Attribute Editor. Если перейти на нее, перед вами откроется тот самый редактор атрибутов пользователя AD. Здесь в таблице представлен список всех атрибутов пользователя AD и их значения. Вы можете щелкнуть на любом атрибуте и изменить его значение. Например, изменив значение атрибута department, вы увидите, что сразу изменилось наименование департамента в свойствах пользователя на вкладке Organization.
Из редактора атрибутом можно скопировать значение поля distinguishedName (в формате
CN=Sergey A. Ivanov,OU=Users,OU=Msk,DC=winitpro,DC=ru
— уникальное имя объекта в AD), CN (
Common Name
), узнать дату создания учётной записи (whenCreated) и т.д.
Внизу окна редактора атрибутов AD присутствует кнопка Filter. По умолчанию в окне атрибутов отображаются только непустые атрибуты (включена опция Show only attributes that have values / Отображать только атрибуты со значениями). Если вы отключите эту опцию, в консоли будут показаны все атрибуты класса User. Также обратите внимание на опцию Show only writable attributes. Если включить ее, вам станут доступны только те атрибуты, на редактирование которых вам делегированы полномочия (если у вас нет прав на изменение атрибутов данного пользователя, список атрибутов будет пуст).
Также вы можете вывести только обязательные атрибуты объекта Filter -> Mandatory (для пользователя это
cn
,
objectCategory
,
objectClass
,
sAMAccountName
) или только дополнительные (необязательные атрибуты) – Filter -> Optional.
Для большинства атрибутов AD имеется встроенная функция декодирования значений. Например:
- можно найти информацию о последнем входе пользователя в домен — атрибут lastLogonTimestamp (как вы видите, в консоли редактора атрибутов, время отображается в нормальном виде, но если щелкнуть по нему, вы увидите, что на самом деле время хранится в виде timestamp);
- состояние учетной записи хранится в атрибуте userAccountControl. Вместо битовой маски вы видите более удобное представление. Например,
0x200 = (NORMAL_ACCOUNT)
вместо цифры 512; - однако фото пользователя в AD (атрибут thumbnailPhoto) не отображается, и хранится в бинарном виде.
Не отображается вкладка Attribute Editor через поиск Active Directory
Основной недостаток редактора атрибутов AD, он не открывается в свойствах объекта, если вы нашли его через поиск (почему так сделано — я не понимаю). Для использования Attribute Editor вы должны развернуть в дереве AD контейнер (Organizational Unit, OU), в котором находится объект, найти в списке нужный объект и открыть его свойства (все это довольно не удобно).
Для себя я нашел небольшой лайфхак, который позволяет открыть редактор атрибутов пользователя, найденного через поиск в консоли ADUC.
Итак:
- С помощью поиска найдите нужного пользователя;
- Перейдите на вкладку со списком групп пользователя (Member of);
- Откройте одну из групп (желательно, чтобы в ней было как можно меньше пользователей);
- В свойствах группы перейдите на вкладку с членами группы (Member) и закройте (!) окно свойств пользователя;
- Теперь в списке членов группы щелкните по своему пользователю и перед вами откроется окно свойств пользователя со вкладкой Attribute Editor.
Также вы можете открыть редактор атрибутов пользователя без его ручного выбора в дереве AD через сохраненные запросы в консоли ADUC.
Либо вы можете использовать консол Active Directory Administrative Center (
dsac.msc
), в котором вкладка редактора атрибутов пользователя (компьютера) доступна даже через поиск (вкладка Extension).
Вместо 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 как редактор атрибутов пользователей/компьютеров, поэтому нужно подключиться к Default naming context.
Перед вами появиться ваша древовидная структура контейнеров и OU в AD. Здесь вы можете открыть свойства найти нужного объект Active Directory. Перед вами появится окно редактора атрибутов объекта. Здесь вы можете просмотреть или изменить значения свойств пользователя/компьютера/группы.
А можно атрибут userSharedFolder вывести в окно свойств пользователя в отдельной вкладке например?
Не представляю как это сделать. А зачем эо вам? Может быть есть более простой путь?
Конечно же наверное уже не актуальная информация, но может кому-то пригодится для решения каких-либо задач. У нас в офисе присутствует система умной защищённой печати MyQ. Конечно же это не единственная в своём роде, но имеем такую. Эта система интегрируется с Active Directory и как раз был выбран атрибут userSharedFolder с целью хранения местоположения сетевой папки для сканирования по протоколу smb. У каждого отдела своя сетевая папка для сканирования. Вначале я хотел вывести этот атрибут в стандартное окно свойств пользователя, но потом отказался от этой идеи и написал пару скриптов на vbs, которые парсят по заданию файлик от excell и сами прописывают этот атрибут исходя из принадлежности сотрудника к отделу. Конечно же это похоже на какой-то «извращенский костыль», но просто на тот момент хотелось в целях самообразования пощупать скриптами файлы excell.
Добрый день!
Подскажите как можно массово почистить определенные атрибуты у пользователей AD?
Попробовал из PowerShell командлетом Set-ADUser, но столкнулся с некоторыми трудностями.
-clear работает не со всеми атрибутами, тогда я обнулил те атрибуты, которые не очищались, например -office $null, но вот с атрибутом ipphone не могу ничего придумать. С ним у меня работает только -remove @{ipphone=»1234″}, при этом требуется явно указать значение, которое уже записано. Вот такая вот незадача.
Буду весьма признателен за дельный совет.
-clear
Как сделать отдельную вкладку для ведения employeeID в ADUC ?
Насчет отдельной вкладки — незнаю, где-то видел такое, но как реализовали не понятно. Почему бы не редактировать employeeID через Attribute Editor?
Добрый день. Подскажите, а как можно сделать на стороне AD автоматическую синхронизацию атрибутов группы: member (в котором перечислены DN) и memberUid? Так чтобы в memberUid добавлялись или удалялись sAMAccountName всех кто есть в атрибуте member. И это надо применять не к конкретной группе, а ко всем группам в AD.
Автоматически только через PowerShell скрипт, который бы по расписанию будет заполнять атрибут memberUid для всех доменных групп.
Т.е. получаем список всех групп в домене:
$groups = get-adgroup
Потом для каждой группы в домене получаем список sAMAccountName пользователей
Через цикл foreach ($group in $groups)
$users= Get-ADGroupMember -Identity $ouu -Recursive | Select-Object sAMAccountName
и еще один foreach ($user in $users)
Set-ADGroup -Identity $group -Add @{memberUid = «$user.sAMAccountName»}
Есть еще вариант с подвешиванием триггера на событие groupe change на DC, но не очень такое…
спасибо за подсказку. подумал, покопался в интернетах. решил сделать через планировщик. пару раз в сутки запускаю скрипт:
Import-Module ActiveDirectory -ErrorAction SilentlyContinue
$groups = @()
$group1 = Get-ADObject -Filter {objectclass -like "group"} -SearchBase "OU=VINS Users,DC=vins-avto,DC=local"
$group2 = Get-ADObject -Filter {objectclass -like "group"} -SearchBase "OU=VINS Service Users,DC=vins-avto,DC=local"
$groups = $group1.DistinguishedName + $group2.DistinguishedName
foreach ($group in $groups) {
$members = (Get-ADGroupMember -Identity $group).sAMAccountName
Set-ADGroup -Identity $group -Clear "memberUid"
Set-ADGroup -Identity $group -Add @{"memberUid"=$members;}
}
Добрый день.
Хотелось бы получить комментарий по возможности создания атрибута пользователя, который может принимать не единичное значение, а множественное значения, к примеру, некоторый набор из списка текстовых значений, например, «Образование» — «МГУ_2000», «ЛГУ_2005», «MBA_Vien_2012» и т.д.) — по типу Multi-Valued Text, Multi-Valued Choice для свойств классификации ресурсов.
Заранее признателен за ответ
Нужно создать новый атрибут в схеме AD. при создании нужно включить опцию Multi-Valued. Дальше вы можете наполнять его как угодно.
_https://docs.microsoft.com/en-us/windows/win32/ad/defining-a-new-attribute
Добрый день, проблема следующая при переносе AD с физического сервера на вм hyper- v перестали писаться логи в атрибут о локальном входе пользователя.
Создал и распространил vbs скрипт через GPO
Set WshNetwork = WScript.CreateObject(«WScript.Network»)
Set objSysInfo = CreateObject(«ADSystemInfo»)
strUserDN = objSysInfo.UserName
Set objUser = GetObject(«LDAP://» & strUserDN)
objUser.Put «physicalDeliveryOfficeName», WshNetwork.ComputerName
objUser.SetInfo
при входе обычного пользователя (не имеющего прав админа домена и т д) в систему соответственно отрабатывает скрип с ошибкой отказано в доступе
— Исключение при вызове «SetInfo» с «0» аргументами: «Отказано в доступе
если правильно понимаю необходимо предоставить пользователю на редактирование атрибутов
Подскажите как можно это исполнить
выполнил следующие действия посредством делегирования
1. Запускаем на нужной OU мастер делегирования
2. выбираем нужную группу для делегирования
3. в делегируемых задачах выбираем «Coздaть ocoбую зaдaчу для дeлeгиpoвaния»
4. в типах объектов — «тoлькo cлeдующими oбъeктaми в этoй пaпкe:» и ставим галку «User объектов»
5. в Разрешениях ставим галки «Общие» и «Разрешение для свойств», в списке разрешений выбираем нужные поля
ошибка та же нет доступа
А можно ли автоматически очищать значение определенного атрибута при перемещении УЗ пользователя в определенный контейнер (OU)?
Только скриптами