Основные атрибуты Active Directory
Подключал намедни линуксовый сервис для авторизации через AD, еле нашел описание соответствий атрибутов и их полей, да и те все на английском, что не очень удобно при русскоязычной системе, потому что хрен поймешь какие параметры за что отвечают. Чтобы каждый раз не выискивать их adexplorer’ом, решил составить таблицу основных атрибутов Active Directory.
Таблица основных пользовательских атрибутов 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@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е, что можно видеть на последнем скрине.
Для более наглядного понимая приложу скрины:
Атрибут 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)
Источник
Встроенный редактор атрибутов объектов Active Directory в ADUC
21.05.2021
itpro
Active Directory
комментариев 10
Редактор атрибутов Active Directory (Attribute Editor) это встроенный графический инструмент для тонкого редактирования свойств объектов AD (пользователей, компьютеров, групп). Именно из редактора атрибута вы сможете получить и изменить значения атрибутов объектов AD, которые недоступны в свойствах объекта в консоли ADUC.
Использование Attribute Editor в консоли Active Directory Users and Computer
Итак, чтобы воспользоваться редактором атрибутов AD вам нужно установить оснастку dsa.msc (или ADUC — Active Directory Users and Computer).
Попробуйте открыть свойства любого пользователя в AD. Как вы видите доступны несколько вкладок с атрибутами пользователя. Основные из них:
- Общие (General) – основные свойства пользователя, которые задаются при создании учетной записи в AD (имя, фамилия, телефон, email и т.д.);
- Адрес (Address);
- Учетная запись (Account) – имя учетной записи (samAccountName, userPrincipalName). Здесь можно указать список компьютеров, на которых разрешено работать пользователю (LogonWorkstations), опции: пароль не истекает, пользователь не может сменить пароль, включена ли учетная запись и ее срок действия и т.д.;
- Профиль (Profile) – можно настроить путь к профилю пользователя (в сценариях с перемещаемыми профилями); скрипт, выполняемый при входе, домашнюю папку, сетевой диск;
- Телефоны (Telephones);
- Организация (Organization) – должность, департамент, компания пользователя, имя менеджера.
В этом окне вам доступен только базовый набор свойств пользователя, хотя в классе 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. Если включить ее, вам станут доступны только те атрибуты, на правку которых вам делегированы полномочия (если у вас нет полномочий на изменение атрибутов данного пользователя, список атрибутов будет пуст).
Для большинства атрибутов AD имеется встроенная функция декодирования значений. Например:
- можно найти информацию о последнем входе пользователя в домен — атрибут lastLogonTimestamp (как вы видите в консоли редактора атрибутов время отображается в нормальном виде, но если щелкнуть по нему, вы увидите, что на самом деле время хранится в виде timestamp);
- состояние учетной записи хранится в атрибуте userAccountControl. Вместо битовой маски вы видите более удобное представление. Например, 0x200 = (NORMAL_ACCOUNT) вместо цифры 512;
- однако фото пользователя в AD (атрибут thumbnailPhoto) не отображается, и хранится в бинарном виде;
Не доступна вкладка Attribute Editor через поиск Active Directory
Основной недостаток редактора атрибутов AD, он не открывается в свойствах объекта, если вы нашли его через поиск (почему так сделано — я не понимаю). Для использования Attribute Editor вы должны в дереве AD развернуть контейнер (OU), в котором находится объект, найти в списке нужный объект и открыть его свойства (все это дико не удобно).
Для себя я нашел небольшой лайфхак, который все-таки позволяет открыть редактор атрибутов пользователя, найденного через поиск в консоли ADUC.
- С помощью поиска найдите нужного пользователя;
- Перейдите на вкладку со списком групп пользователя (Member of);
- Откройте одну из групп (желательно, чтобы в ней было как можно меньше пользователей);
- В свойствах группы перейдите на вкладку с членами группы (Member) и закройте (!) окно свойств пользователя;
- Теперь в списке членов группы щелкните по своему пользователю и перед вами откроется окно свойств пользователя со вкладкой Attribute Editor.
Также вы можете открыть редактор атрибутов пользователя без его ручного выбора в дереве AD через сохраненные запросы в консоли ADUC.
Либо вы можете использовать Active Directory Administrative Center, в котором вкладка редактора атрибутов пользователя (компьютера) доступна даже через поиск (вкладка 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 пользователи и компьютеры атрибуты
Здравствуйте товарищи! Рад, что вы вновь заглянули на IT блог pyatilistnik.org. Я уже неоднократно вам рассказывал, о разных вещах посвященных активному каталогу (Active Directory), но так и не касался, довольно повседневной функциональности в виде редактора атрибутов AD. Сегодня я исправлю, этот недочет и мы с вами разберем. Что из себя представляет редактор атрибутов Active Directory, как его открыть, что он вам даст в вашей работе и как позволит эффективно его использовать. Думаю для многих инженеров или системных администраторов будет очень полезно, освежить знания в данной области.
Что такое редактор атрибутов Active Directory
И так ранее мы с вами установили Active Directory, и разобрались со всеми понятиями активного каталога, из которых мы выяснили, что администратор, получает информацию о всех объектах схемы в виде красивого графического интерфейса, например, оснастки ADUC, а вот контроллеры домена и другие компьютеры, получают информацию об объектах в виде языка LDAP, который лежит в основе Active Directory.
В итоге можно дать вот такое определение редактору атрибутов Actvie Directory — это дополнительная надстройка в графической утилите управления объектами активного каталога, позволяющая в удобном для человека редакторе, внести изменения в нужные атрибуты схемы, а так же проверить и посмотреть остальные значения в неизменяемых атрибутах.
Приведу простой пример использования редактора атрибутов:
- Необходимо узнать distinguished name
- Задать automapping для почты пользователю с правами только на чтение
Примеров может быть очень много, так как атрибутов огромное количество. ниже давайте разберемся, где все это можно посмотреть.
Как открыть редактор атрибутов Active Directory
Для того, чтобы открыть редактор атрибутов, можно воспользоваться четыремя методами:
- использование оснастки Active Directory пользователи и компьютеры
- использование Active Directory Administrative Center
- использование ADSI Edit редактора
- использование оболочки powershell
Ниже я хочу подробно рассмотреть, где и как редактировать атрибуты в данных инструментах.
Просмотр и редактирование атрибутов Active Directory в оснастке ADUC
Заходим в меню «Пуск», в котором находим пункт «Active Directory Пользователи и компьютеры» либо откройте окно «Выполнить» и введите служебное название dsa.msc. (Полный список названий служебных сокращений Windows, читайте по ссылке слева)
У вас откроется ADUC. Если вы зайдет в свойства любой учетной записи, в моем примере это Барбоскин Геннадий, то обнаружите, что редактор атрибутов в списке вкладок отсутствует. Чтобы его отобразить сделайте следующие действия.
Открываете вкладку «Вид», в меню находите пункт «Дополнительные компоненты», включаем его.
После чего, вкладка редактора атрибутов отобразиться в свойствах учетной записи объекта Active Directory.
Вот так вот выглядит редактор атрибутов Active Directory. У вас в виде списка будут перечисляться атрибуты и их значения. Если они доступны для редактирования, то вы их можете изменить, с помощью специальной кнопки. Сразу бросаются в глаза знакомые значения:
- CN (Common Name) — Отображаемое имя
- LastLogon — время логирования
- Discription — Описание
В момент изменения будет открыт редактор строковых или целочисленных атрибутов.
По умолчанию Active Directory в редакторе атрибутов, отображает, только атрибуты со значениями, то есть не пустые. Для того, чтобы увидеть все атрибуты, вам необходимо применить фильтр, через соответствующую кнопку. Снимите галку «Отображать только атрибуты со значениями». Так же можно более тонко настроить фильтрацию и задать, например, показывать, только атрибуты доступные для записи (изменения вручную) или только системные. Я вам советую посмотреть все варианты и проверить, что каждый из них отображает. Переходим к ADSI Edit.
Редактирование атрибутов Active Directory в ADSI Edit
Напомню, что ADSI Edit — это служебная оснастка, которая позволяет подключаться к различным разделам базы данных Active Directory (Ntds.dit). Открыть «Редактор ADSI», можно также из меню «Пуск» на контроллере домена, либо так же через окно «Выполнить» (Сочетание клавиш WIN и R). Введите adsiedit.msc.
Далее в оснастке, кликните правым кликом по «Редактирование ADSI» и выберите «Подключение к»
Для того, чтобы зайти в редактор атрибутов, выберите пункт «Выберите известный контекст именования». Подключаемся к стандартному, идущему по умолчанию.
Перед вами будет привычная вам структура из контейнеров и организационных подразделений. Переместитесь в нужное расположение и откройте свойства нужного вам объекта Active Directory.
Вы попадете на вкладку «Редактор атрибутов», который мы с вами уже видели в оснастке «Пользователи и компьютеры». Можете производить редактирования. Перейдем к третьему методу, использование Active Directory Administrative Center.
Редактирование атрибутов Active Directory в Центр администрирования Active Directory
Третий метод просмотра атрибутов у объектов AD, заключается в использовании оснастки «Центр администрирования Active Directory» (Active Directory Administrative Center). Открываем его через пуск или набрав команду в окне «Выполнить» dsac.exe.
Если кто-то не в курсе, то Центр администрирования Active Directory — это оснастка построенная на оболочке power shell, все что вы тут выполняете, делается в фоновом режиме именно этим языком, плюс вы всегда на выходе графических манипуляций, получите полную команду, как это делалось бы в power shell. Переходим в нужное расположение объекта.
Открываем его свойства, переходим на вкладку «Расширения» и перед вами будет, знакомый редактор атрибутов AD. Вот так вот его запрятали. Хочу отметить, что начиная с Windows Server 2012 R2, компания Microsoft старается продвигать все работы с объектами Active Directory именно в этой утилите и оснастке power shell и это понятно, у последнего возможностей в разы больше, чем у GUI собратьев. Поэтому, кто еще пока с ним не знаком, будет очень полезно начать именно с оснастки «Центр администрирования Active Directory», которая имеет подсказки, как все сделать через оболочку power shell.
Редактирование атрибутов Active Directory в Power Shell
На текущий момент самой актуальной версией power shell является 5-я, и компания Microsoft каждый год расширяет возможности данного языка на несколько сотен командлетов, помогая автоматизировать все, что вы хотите и удовлетворить потребности людей любящих операционные системы семейства Linux, например, CentOS. Чтобы посмотреть атрибуты пользователя, нам поможет командлет Get-ADUser и для того, чтобы изменить атрибут Set-ADUser.
Открываете power shell от имени администратора, первым делом необходимо выполнить импортирование модуля Active Directory, для того, чтобы вам подгрузились команды, отвечающие за доступ и получение информации с контроллеров домена, это можно делать на любой рабочей станции, у которой установлена операционная система не ниже Windows 7.
Вводим команду: Import-Module activedirectory. После чего запросим информацию о пользователе Барбоскине.
Как видите атрибутов Active Directory не так много вывелось, добавим ключик -Properties *
В итоге вывод оказался очень информативным.
Более подробно про вывод командлета Get-ADUser читайте на сайте Microsoft. Теперь давайте изменим, например, для пользователя Барбоскин его домашнюю страницу, для этого пишем:
Set-ADUser -Identity barboskin.g -HomePage ‘http://pyatilistnik.org’
Как видите операционная система Windows позволяет вам редактировать и взаимодействовать с редактором атрибутов Active Directory разными методами, каждый вы будите использовать в разных ситуациях, для единичных изменений, вероятнее всего ADUC, для автоматизации, это будет несомненно power shell. Наверняка, есть еще и сторонний софт, но зачем он нужен, когда все идет из коробки.
Источник
Настройка атрибутов учетных записей пользователей
Любой системный администратор знает, что самыми распространенными задачами, выполняемыми в доменных службах Active Directory являются задачи, связанные с управлением принципалами безопасности, такими как учетные записи пользователей. В одной из предыдущих статей я описывал способы создания пользовательских учетных записей. Но все мы прекрасно понимаем, что создание учетной записи пользователя – это лишь первый шаг всего жизненного цикла пользователей в домене Active Directory. После создания учетной записи пользователя, вам еще нужно отконфигурировать атрибуты объекта пользователя в зависимости от требований вашей организации, а также, возможно, настроить определенные свойства учетной записи. Насколько вы знаете, при создании пользовательской учетной записи средствами графического интерфейса, а именно, при помощи оснастки «Active Directory – пользователи и компьютеры», вы заполняете такие атрибуты объекта пользователя, как имя пользователя, фамилию, имя входа, а также пароль. При создании объекта одни атрибуты являются обязательными, а другие – опциональными. Объект пользователя может содержать свыше 250 атрибутов, как созданных операционной системой, так и созданных системным администратором. Из всех атрибутов объектов учетных записей пользователей, существуют всего шесть обязательных атрибутов:
- cn. Атрибут, который используется для отображения свойств имени. Это поле должно быть уникальным во всем домене, и заполняется автоматически;
- instanceType. Текущий атрибут указывает экземпляр объекта пользователя, который будет использоваться в качестве шаблона для нового объекта пользователя;
- objectCategory. Данный атрибут определяет категорию схемы Active Directory. Например, CN=Person,CN=Schema,CN=Configuration,DC=BIOPHARMACEUTIQUE,DC=COM;
- objectClass. Этот атрибут определяет класс объекта;
- objectSid. Определяет идентификатор безопасности объекта, который назначается автоматически;
- sAMAccoountName. Задает имя учетной записи SAM пользователя. Максимальная длина описания – 256 знаков. Конфигурируется данный атрибут непосредственно на основе данных, обеспечиваемых при создании учетной записи пользователя.
В этой статье вы узнаете о некоторых атрибутах, а также научитесь изменять атрибуты средствами графического интерфейса.
Изменение атрибутов на вкладках свойств учетной записи пользователя
В большинстве случаев, дополнительные свойства пользовательских учетных записей конфигурируются при помощи оснастки «Active Directory – пользователи и компьютеры». Для изменения объекта пользователя откройте диалоговое окно свойств учетной записи. В данном диалоговом окне, атрибуты объекта пользователя распределяются по нескольким обширным категориям на различных вкладках. Большинство атрибутов объекта пользователя вполне понятны. Рассмотрим шесть основных вкладок, которые в первую очередь подлежат изменениям с соответствующими атрибутами:
- Вкладка «Общие». Данная вкладка содержит свойство имени, которое настраивается при создании объекта пользователя, а также его основное описание и контактные данные. На данной вкладке вы моете отконфигурировать девять атрибутов объекта пользователя, а именно: имя пользователя (атрибут givenName), фамилию (атрибут sn), инициалы (атрибут initials), выводимое имя (атрибут displayName), описание объекта (атрибут description), номер комнаты (атрибут physicalDeliveryOfficeName), контактный номер телефона (атрибут telephoneNumber), адрес электронной почты (атрибут mail), а также адрес веб-сайта пользователя (атрибут wWWHomePage). Кроме того, на данной вкладке вы можете указать дополнительный телефонный номер, который указывается атрибутом otherTelephone. Также вы можете указать дополнительный веб-сайт, определяемый атрибутом url. Если вы добавите более двух номеров телефона или веб-сайтов, они будут записываться в последние атрибуты через точку с запятой;
Рис. 1. Вкладка «Общие» диалогового окна свойств объекта пользователя
Рис. 2. Вкладка «Адрес» диалогового окна свойств объекта пользователя
Рис. 3. Вкладка «Учетная запись» диалогового окна свойств объекта пользователя
Рис. 4. Вкладка «Профиль» диалогового окна свойств объекта пользователя
Рис. 5. Вкладка «Телефон» диалогового окна свойств объекта пользователя
Рис. 6. Вкладка «Организация» диалогового окна свойств объекта пользователя
Просмотр и изменение атрибутов, не отображаемых в свойствах объектов пользователей
Как вы заметили, при помощи графического интерфейса, а именно диалогового окна свойств объекта пользователя оснастки «Active Directory – пользователи и компьютеры» можно отредактировать большинство атрибутов пользователя. Но некоторые атрибуты при помощи основного набора вкладок свойств пользователя у вас настроить не получится, так как они не отображены в графическом интерфейсе. У вас может возникнуть вопрос: для чего же тогда нужны такие атрибуты, которые невозможно так просто настроить? Такие атрибуты могут использоваться различными приложениями для хранения дополнительных данных о пользователях, причем, некоторые из этих параметров могут для вашей организации оказаться очень полезными. Для того чтобы просмотреть все атрибуты, которые принадлежат конкретному пользователю, вам нужно в диалоговом окне свойств текущего пользователя перейти на вкладку «Редактор атрибутов». По умолчанию данная вкладка не отображена и для того чтобы она отобразилась, вам нужно в меню «Вид» самой оснастки установить флажок на опции «Дополнительные компоненты». Редактор атрибутов отображает все системные атрибуты для текущего объекта. Помимо вкладки свойств объекта пользователя, любые атрибуты вы можете просмотреть и изменить при помощи таких инструментов, как оснастки ADSIEdit.msc и утилиты Ldp.exe. Например, если вам нужно знать, когда пользователь в последний раз выполнял вход, который не отображается на основных вкладках диалогового окна свойств пользователя. Для этого вы можете перейти на вкладку «Редактор атрибутов», найти там атрибут lastLogonTimestamp, где и будет указано последнее выполнение входа в сеть (например, если пользователь вошел в систему в 11:40:26 18 декабря 2011 года, значение будет равняться «129371388262579662»). Для того чтобы изменить выбранный вами атрибут, нажмите на кнопку «Изменить» и в отобразившемся диалоговом окне внесите изменения в выбранный вами атрибут. С помощью кнопки «Фильтр» вы можете отфильтровать вывод системных атрибутов в таком виде, как вам будет удобнее с ними работать. Вы можете просмотреть обязательные атрибуты, установив соответствующий флажок, дополнительные атрибуты, только те атрибуты, в которых указаны значения, а также атрибуты, доступные для записи. Кроме этого вы можете просматривать обратные ссылки и построенные атрибуты.
Рис. 7. Вкладка «Редактор атрибутов» диалогового окна свойств объекта пользователя
Обратными ссылками называются атрибуты, которые образуются в результате ссылок на объект из других объектов. Рассмотри простой пример: при добавлении пользователя в группу изменяется многозначный атрибут группы member, в который добавляется отличительное имя пользователя, называемое прямой ссылкой. В свою очередь, в объекте пользователя, при ссылке на пользователя атрибутом member группы, атрибут memberOf обновляется автоматически.
Построенные атрибуты формируются в результате вычисления в Active Directory. Некоторые атрибуты не хранятся как часть объекта пользователя и не поддерживаются динамически, а высчитываются только при необходимости. Например, существует атрибут tokenGroups, представляющий собой список SID всех групп, к которым принадлежит пользователь, включая вложенные группы. В этом случае, Active Directory должна просчитать действующее членство пользователя в группах, что повлечет за собой выполнение нескольких циклов. Так как для получения построенных атрибутов необходима дополнительная обработка, по умолчанию на вкладке «Редактор атрибутов» такие атрибуты не отображаются.
В том случае, если вам нужно отредактировать одинаковые атрибуты для большого количества объектов, вы можете использовать различные сценарии с использованием утилит командной строки или командлетов Windows PowerShell. Для изменения атрибутов, которые отображены на вкладках свойств объектов пользователей оснастки «Active Directory – пользователи и компьютеры» и могут быть общими для нескольких объектов одновременно, вы можете выделить объекты одного класса (например, пользователей) при помощи клавиши Ctrl, нажать на них правой кнопкой мыши и из контекстного меню выбрать опцию «Свойства». В данном случае, вы можете редактировать лишь определенные атрибуты на пяти вкладках: «Общие», «Учетная запись», «Адрес», «Профиль» и «Организация». Например, вы можете изменять те же атрибуты на вкладке «Организация» для нескольких пользователей, как и для конкретного пользователя, как показано на следующей иллюстрации:
Рис. 8. Изменение атрибутов для нескольких пользователей одновременно
Заключение
В этой статье вы узнали о возможностях настройки атрибутов для объектов учетных записей пользователей. Были рассмотрены шесть вкладок диалогового окна свойств учетной записи, которые принято модифицировать в первую очередь. Также вы познакомились с возможностями вкладки редактора атрибутов, которая по умолчанию не отображается и немного узнали о фильтрации атрибутов и об одновременном изменении нескольких атрибутов одного класса.
Источник
Упрощаем жизнь администратору, ассоциируем имя пользователя и имя компьютера в автоматическом режиме в каталоге AD
Добрый день, хабр!
Наверное, у всех системных администраторов была проблема определения имени компьютера пользователя. То есть мы знаем имя сотрудника, но какой у него компьютер, без понятия. И, зачастую, попытка заставить пользователя определить имя компьютера вызывает мучение. Они вместо этого называют имя пользователя, mail, номер телефона, все что угодно, только не имя компьютера. А попытка объяснить пользователю где находится информация о системе вызывает баттхерт сотрудника и лютую ненависть. Можно, конечно, было бы написать какую-нибудь утилитку, позволяющая отображать имя компьютера на рабочем столе или где-нибудь еще на видном месте, но для этого надо каждый раз объяснять где находится эта информация. Немного упрощает задачу, но не решает ее полностью. Тем более что я склоняюсь к тому, что пользователю и во все положено не знать имя компьютера, на котором он сидит. В результате было решено сделать определение имени компьютера современным, удобным, правильным и, главное, автоматическим.
Примерно так может выглядеть подключение к компьютеру. При чем оснастку даже не обязательно открывать с помощью административной учетной записи. Для тех, кому интересно как все это работает и как это сделать в вашей инфраструктуре, добро пожаловать под кат.
Для выполнения описанного, вы должны понимать что такое AD, понимать хотя бы примерно структуру объектов в AD, понимать работу скриптов, а также любить котиков.
Общий принцип
Скрипт, запущенный из под пользователя определяет имя компьютера, на котором он работает, и от своего имени текущего пользователя записывает значение атрибута в самом себе в каталоге AD. Далее администратор уже волен сам решать что делать с этим значением атрибута. Я в этой статье приведу пример PowerShell скриптов и пример добавления пункта контекстного меню в оснастку Active Directory Users and Computers (далее ADUC).
Создаем атрибут
Многие не шли далеко и не мудрили, используя общедоступные для записи, например параметр «Веб страница» пользователя по-умолчанию доступен для записи самим собой. Однако мне эта идея не понравилась, хотелось создать специализированный атрибут для пользователя, который не имел бы двойного назначения и не требовал компромисса. А то кто знает, как в будущем сложится ситуация и потребует использование этого атрибута, а он уже занят…
Итак, для того, чтобы создать новый атрибут в схеме нужно сначала добавить оснастку. На компьютере с установленным пакетом удаленного администрирования, либо на контроллере домена, нужно запустить с правами локального администратора regsvr32 schmmgmt.dll. Сложно сказать почему эта оснастка по-умолчанию не зарегистрирована, видимо чтобы по незнанию не напортачили. Но тем не менее мы ее можем добавить, зарегистрировав DLL. После этого открываем оснастку Схема Active Directory и идем в раздел Attributes. Создаем новый атрибут. Тут, конечно, я должен предупредить, что атрибуты это не место для экспериментов и создаются они один раз и навсегда, удалить атрибут или переименовать невозможно. Это предупреждение есть во всех местах, где имеет место добавление атрибута, но все же 🙂 Для добавления нового атрибута также потребуются права Администратора схемы. Если ваш административный пользователь имеет права Администратор предприятия, то это больше, чем достаточно.
Для добавления нового атрибута потребуется ввести OID. Это уникальный идентификатор объекта. Почитать про него можно в гугле, углубляться не буду, но скажу что он должен быть уникальный. Пересечение OID недопустимо и если его вбить любым, то есть вероятность, что будут нерешаемые проблемы в будущем. OID обычно начинается с 1.2.840.113556 и далее циферки. Я особенно не заморачивался и т.к. третье число (840) это код страны, а четвертое это код компании (Microsoft), я ввел код несуществующей страны 800 и сгенерировал 2 случайных числа через точку. Список стран можно посмотреть здесь. На самом деле, по хорошему, в этом случае необходимо обратиться в ITU-T и запросить уникальный OID, но мне ответ так и не пришел и я не стал залезать в бутылку и создал на основе случайных чисел. Потом я нашел скрипт, который генерирует относительно уникальный идентификатор, но было уже поздно :))
В общем, с OID решили. Дальше нам нужно указать syntax атрибута. В моей конфигурации это Unicode String. Также, конечно, нужно имя атрибута. В этом примере я буду использовать имя LabelComputer, в рабочей конфигурации лучше придумать что-нибудь получше.
После того как мы создали атрибут, нам нужно его добавить в класс. Выбираем класс user и в закладе Attributes добавляем наш новый атрибут. Теперь пользователь с нужными правами будет иметь право записывать этот атрибут в пользователе. По-умолчанию эти правом владеет Account operator или выше. Но нас интересует ситуация, когда пользователь сам бы мог редактировать этот атрибут. Для подобных целей существует пользователь с именем SELF, который олицетворяем самого себя. Нам нужно дать права для всех пользователей пользователю SELF записывать атрибут LabelComputer. Т.к. наследование еще ни кто не отменял, переходим на столько высоко, на сколько это нужно и изменяем права. Я предлагаю изменить права на весь домен, для нас это будет dc=contoso,dc=com, входим в настройки безопасности объекта домен в оснастке ADUC. Входим в закладку разрешения и нажимаем кнопку Advanced. Добавляем права для пользователя SELF и разрешаем ему читать и записывать атрибут LabelComputer. Атрибут в списке, кстати, появляется не сразу после его создания. Должно пройти некоторое время от создания атрибута до того момента, как мы сможем видеть его в списке назначения прав и в свойствах атрибутов пользователя.
Маркировка
В итоге мы создали атрибут, права назначили. Переходим к рабочему этапу, нужно добавить имя компьютера в значение атрибута.
Для этого используется VBscript. Как показывает практика, Microsoft не пытается делать PowerShell заменой VBS. А жаль. Для таких задач VBS оказывается быстрее и универсальнее.
Скрипт, записывающий данные в текущего пользователя:
Скрипт прост и примитивен. Скрипт и модель впрочем, можно расширить, сохранять не только компьютер, а, например, и время для актуальности, но в данном примере я не буду касаться этого.
Скрипт с помощью групповой политики назначаем на запуск во время Logon. Но не только. Возможна ситуация, когда человек залогинен на двух компьютерах, хочется чтобы информация все равно была актуальна, даже в этом случае. Для этого добавляем выполнение скрипта в планировщик со срабатыванием по событию разблокировки компьютера.
В этом случае, даже если логин был выполнен на нескольких компьютерах, актуальным будет записан тот компьютер который был разблокирован последним. Есть только одно разочарование. Этот метод работает исключительно на Vista+ компьютерах. То есть в XP нельзя в планировщике поставить такой триггер. И к великому сожалению, VBS тоже не позволяет определить, заблокирован ли компьютер или нет. Иначе можно было бы запускать скрипт раз в 15 минут с проверкой заблокирован ли компьютер или нет. В VBS можно только по субъективным признакам определять, например, по записям в евент логе Security, но тогда, как минимум, потребуется дать обычному пользователю права на просмотр этого журнала. Это неудобно, плохо применимо да и вообще XP становится все меньше, эту группу компьютеров можно игнорировать, для них будет достаточно Logon скрипта.
Т.к. нам хочется помечать не каждый вход, а только тот, который локальный, нам нужно исключить запуск Logon скрипта на терминальных и других серверах, не относящихся к локальным компьютерам. Я этого достигал включением замыкании групповой политики в режиме слияние и применением объекта групповой политики к области персональных компьютеров, серверов, в которой, нет. Метод, соглашусь, достаточно плохой и растрачивающий ресурсы, лучше использовать замыкание групповой политики только тогда, когда это точно надо, а не для всех компьютеров. Но, возможно, это будет следующим этапом улучшения. Тем не менее, таким образом мы четко ограничиваем на каких именно компьютерах будет выполняться нужная нам групповая политики с Logon скриптом и настройками планировщика.
Пример PowerShell скрипта для сбора данных
Главная задача выполнена. Мы начинаем видеть, что в пользователях начинает появляться информация о текущем компьютере.
Теперь нам надо что-то с этими данными сделать. Например, сделать удобную табличку с тем, какие пользователи на каких компьютерах сидят. Или увидеть у каких пользователей нет значения в атрибуте, несмотря на недавний вход в систему, чтобы проследить, выполняются ли групповые политки в системе, например, либо в пользователе почему-то не хватает прав для записи значения атрибута в своего пользователя. Такое бывает, если у пользователя отключено наследование прав, к примеру.
Я написал 3 PowerShell скрипта, помогающих работе.
Поиск пользователей без значений
Этот скрипт делает красивую таблицу, в которой будут показываться только пользователи, отображаемое имя, логин и дату последнего входа в систему. Тут мы сможешь посмотреть подозрительных пользователей и потом попытаться понять, почему же несмотря на недавний заход в систему, имя компьютера до сих пор отсутствует.
Все компьютеры с метками
Этот скрипт похож на предыдущий, но показывает список помеченных пользователей. Позволяет прикинуть относительное количество помеченных пользователей.
Поиск имя компьютера по пользователю
Ну и, непосредственно, поиск. Like поиск происходит по всем основным параметрам пользователя. Возвращает таблицу найденного.
По всем скриптам, вывод можно делать не в Format-Table, а в Export-CSV и создавать сразу CSV файл и анализировать его уже в каком-нибудь табличном редакторе.
<<картинка с Леонардо Ди Каприо из фильма Начало>>
Добавление пункта в оснастку
Скрипты это красиво, но хочется большей автоматизации. И захотелось, чтобы при нажатии в контекстном меню происходило автоматическое подключение к компьютеру программой для удаленного управления DameWare. Безусловно, можно запускать любую удобную программу, можно таким образом удаленно перезагружать, например, машину, если надо. Тем не менее рассмотрим пример с DameWare.
Настройки контекстного меню оснастки ADUC находятся не локально, как может сначала показаться, а, опять же, в каталоге AD. Для того, чтобы добавить новый пункт, необходимо воспользоваться редактором конфигурации AD, утилитой ADSI Edit. Необходимо подключиться к конфигурации AD.
Требуемый атрибут для изменения находится в объекте
CN=user-Display,CN=419,CN=DisplaySpecifiers,CN=Configuration,DC=contoso,DC=com. При том CN=419 это, как не сложно догадаться, язык. Если нужно поменять параметр для англоязычной оснастки ADUC, то CN=419 нужно поменять на CN=409.
Добавляем в adminContextMenu пункт. Первое это, на сколько я понимаю, сортировочный номер, второе это непосредственно имя и третье это, собственно, адрес объекта для выполнения. Параметры разделяются запятыми. После перезапуска ADUC для объектов user в контекстном меню появится новосозданный пункт. Скрипт будет запускаться от прав пользователя, от имени которого оснастка и была запущена. Всего при запуске программы из контекстного меню ADUC скрипту или программе передается 2 значения в параметрах, это DN объекти и типа объекта. Нам интересен только первый параметр, по которому мы находим имя пользователя в скрипте.
Этот скрипт запускает программу Damware с учетными данными contoso\LocalAdmin. Этот пользователь заранее был добавлен в список локальных администраторов на компьютерах пользователей. По сути, параметры -u:, -p: и -d: можно исключить и тогда DameWare будет запускаться от имени текущего пользователя. Если у вас есть права локального администратора на компьютерах пользователя, то так будет проще.
В дальнейшем хотелось бы развить эту тем перевести телефонию отдела технической поддержки на программные SIP телефоны и адаптировать всю схему работы под программу таким образом, чтобы при входящем звонке производились все нужные выборки и у сотрудника на экране сразу появлялась вся информация о звонящем. И наступит счастье!
Несмотря на то, что никакие уникальные знания здесь не описаны, надеюсь, что как минимум, примеры скриптов помогут начинающим админам в понимании этой области 🙂 Все это можно продолжать улучшать, добавить новые атрибуты, добавлять метку не только пользователю, но и компьютеру добавлять Timestamp, сохранять последние компьютеры и т.п. В каждой компании могут найтись свои потребности.
Источник