По умолчанию список доступных полей (колонок) для любого контейнера (OU) в консоли ADUC (Active Directory Users and Computers) ограничен заранее предопределенным списком столбцов, которые можно добавить из меню консоли. Однако объекты Active Directory обладают большим количеством других атрибутов, которые отсутствуют в списке доступных колонок. В этой заметке мы покажем, как добавить произвольный атрибут Active Directory в качестве колонки оснастки ADUC.
Список доступных для отображения колонок консоли Active Directory Users and Computers можно увидеть, перейдя в меню View -> Add / Remove column. Допустим, мы хотим, чтобы в консоли дополнительно отображалось поле с версией установленной операционной системы и Service Pack.
Информация о версии ОС и установленном сервис паке у объектов типа Computer хранится в атрибутах operatingSystem и operatingSystemServicePack.
Чтобы добавить дополнительные столбцы в оснастку ADUC:
- Запустите утилиту AdsiEdit.msc (Для выполнения данной операции понадобятся права Schema Admin.)
- Щелкните ПКМ по ADSI Edit и выберите пункт Connect to
- В выпадающем списке Select a well known Naming Context выберите Configuration и нажмите OK
- Если вы используете англоязычную консоль ADUC, перейдите в раздел CN=DisplaySpecifiers -> CN=409 и дважды щелкните по CN=default-Display.Примечание. При использовании ADUC с отличными языками консоли, имя контейнера CN будет отличаться. Так, для русскоязычной консоли CN=419, для немецкой CN=407 и т.п.
- Найдите атрибут extraColumns и щелкните на кнопку Edit.Совет. Если атрибут extraColumns не отображается в списке, щелкните по кнопке Filter и снимите галку с опции отображения только непустых атрибутов.
- Формат строки добавления дополнительных столбцов следующий:
<ldapdisplayname>,<column header>,<default visibility>,<width>,<unused>.
. Для нашего примера это могут быть такие значения:operatingSystem,Operating System,0,150,0
operatingSystemServicePack,Service Pack,0,100,0
- Добавляем данные строки и сохраняем изменения.
Проверим, что же получилось.
Закройте и откройте консоль ADUC, чтобы изменения применились и выберите произвольный сохраненный запрос. Откроем меню View -> Add / Remove column. Теперь в списке доступных столбцов появятся два наших атрибута: Operating System и Service Pack. Добавим их в список отображаемых столбцов.
Дополнительные столбцы теперь отображаются, но только в режиме запросов (Saved Queries) и стандартных OU. Для OU, которые были созданы вручную, изменения не действуют. Дело в том, что параметры других представлений консоли ADUC хранятся в других контейнерах конфигурации. Так, например:
- CN=organizationalUnit-Display – настройка представления для всех OU (objectClass= organizationalUnit)
- CN=container-Display – настройка представления для специализированных контейнеров (Users и Computers)
Таким образом, чтобы добавить произвольный столбцы в представление обычных контейнеров (OU), нужно внести аналогичные изменения в атрибут extraColumns в CN=DisplaySpecifiers, CN=409, CN=organizationalUnit-Display (CN=419 для русской консоли). Мы видим, что значение extraColumns по-умолчанию не содержит значений. Как и ранее, добавим две строки для operatingSystem и operatingSystemServicePack.
Перезапускаем консоль ADUC и проверяем.
Как мы видим, теперь стали доступны только наши столбцы и три столбца по-умолчанию Name, Type и Description. Дело в том, что значения атрибута extraColumns не наследуются. Это означает, чтобы отобразить и другие стандартные столбцы, нам придется вручную скопировать список значений атрибута extraColumns из объекта CN=default-Display, которые мы хотим сделать доступными в этом представлении, в атрибут extraColumns объекта CN=organizationalUnit-Display
Аналогичным образом можно добавить любой атрибут в качестве дополнительного столбца оснастки ADUC.
Подскажите пожалуйста, можно ли также отображать разрядность ОС? Чтобы было указано, например, x86 или x64? И как это сделать, а то я не нашел подходящий атрибут? Спасибо))).
Проще всего получать разрядность ОС через лого скрипт и писать его в любой из расширенных атрибутов AD с помощью Set-ADComputer (см. пример https://winitpro.ru/index.php/2019/08/13/set-adcomputer-powershell/)
Хотелось бы узнать, как делегировать права на добавление новых полей для конкретной группы пользователей(Например для тех. поддержки)
неправильно сформулировал вопрос, имелось в виду, что поля уже добавлены, но не отображаются у конкретной группы