Рубрика:
Администрирование /
Администрирование
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Александр Емельянов
Управляем Active Directory из командной строки
Всего пару десятков лет назад мониторы компьютеров были монохромными, а ресурсами рабочих станций и серверов повелевал черный экран с мигающим курсором. Сегодня GUI десктопных, да и серверных, операционных систем поражает глаз разнообразием красок и количеством графических средств управления. Тем не менее командная строка все еще является мощнейшим инструментом, обеспечивающим гибкость управления ресурсами. Служба каталогов в этом плане не является исключением.
Конец прошлого века и начало нынешнего ознаменовались бурным развитием сферы информационных технологий. Участников действа прекрасно знают многие, даже не имеющие отношения к IT-отрасли, люди. Большое количество софтверных компаний выпускает готовые решения для управления сетевой инфраструктурой с интуитивно понятным графическим интерфейсом. Такие игроки рынка, как Systemtools Software (выпускающая продукт под названием Hyena), например, могут в некоторой степени составить конкуренцию в этом плане компании Microsoft. Однако существуют фундаментальные вещи, которые до сих пор помогают IT-специалистам с успехом решать задачи различной сложности. Одной из них является командная строка Windows, речь о которой будет вестись ниже. Сразу стоит оговориться, что я ограничу область рассмотрения утилитами, помогающими осуществлять наблюдение и управление ресурсами службы каталогов.
Разговор о средствах консольного управления будет полезен в свете готовящегося выхода новой серверной платформы от Microsoft – Server Core, которая не имеет графических средств управления. Тем более что Microsoft пошла дальше. Используемый в новой платформе интерпретатор Power Shell, разработанный в первую очередь для системных администраторов, имеет свой собственный синтаксис и значительно расширенные возможности администрирования из консоли (подробнее о PowerShell читайте на стр. 44-50 журнала). Таким образом, в Windows Server 2008 инструменты управления командной строки получат дальнейшее развитие.
Большинство утилит, которые будут описаны, работают с объектами службы каталогов, а именование этих объектов осуществляется по определенным стандартам. Поэтому вполне уместным будет посвятить несколько строк правилам именования объектов Active Directory.
Схема Active Directory
Схема службы каталогов – это набор классов. Учетные записи пользователей, компьютеров, группы, общие ресурсы – все это классы объектов. Каждый объект имеет определенный набор атрибутов. Например, для учетных записей это имя, фамилия сотрудника, имя входа в домен и другая информация. Конкретно взятый объект, например, учетная запись пользователя Иван Иванов, называется экземпляром класса. Атрибуты и классы определяются независимо, поэтому один атрибут может быть связан с несколькими классами. Каждый атрибут класса имеет свой синтаксис – набор символов, которые могут использоваться в описании атрибута.
Существуют также объекты контейнерного типа. Они могут содержать в себе другие объекты и, как правило, используются для объединения объектов, имеющих одинаковые атрибуты.
Что в имени тебе моем…
Опишем принятые в службе каталогов форматы имен.
UPN (User Principal Name) – формат имени, схожий с адресом электронной почты (описанным в RFC 822); такое именование может использоваться для входа пользователя в домен (например, ivanov@domain.com).
Следующее в рассмотрении – имена в формате LDAP (Lightweight Directory Access Protocol, облегченная версия протокола X.500 для доступа к каталогу). Каждый объект службы каталогов имеет свое, так называемое уникальное имя (DN, Distinguished Name). Стандарт такого именования описан в RFC 1779 и определяет однозначное нахождение объекта в каталоге. В свою очередь в RFC 2247 описано отображение пространства имен DNS службы каталогов в формате LDAP. Таким образом, пользователь Иван Иванов, принадлежащий группе Managers организационной единицы Office домена domain.com, может иметь следующее DN:
cn=Ivanov, cn=Managers, ou=Office, dc=domain, dc=com;
здесь cn – Common Name, простое имя объекта; ou – Organizational Unit, организационная единица; dc – Domain Component, домен, которому принадлежит объект.
Относительное уникальное имя объекта (RDN, Relative Distinguished Name) идентифицирует непосредственно сам объект относительно объекта-контейнера, которому он принадлежит. Здесь RDN объекта Ivanov будет выглядеть как cn=Ivanov, а для родительского объекта Managers – cn=Managers. RND является атрибутом объекта и хранится в каталоге вместе с объектом. Вместе с этим каждый объект имеет атрибут, который является указателем на объект-родитель. Таким образом, имеется возможность создания RDN для любого объекта в каталоге.
Аналогично с уникальными именами для однозначного определения местоположения объекта в каталоге можно использовать так называемое каноническое имя. Оно схоже с URL страницы или объекта на веб-сервере и для указанного выше примера выглядит следующим образом:
domain.com/Office/Managers/Ivanov
Есть еще одна вещь, которая однозначно определяет объект в каталоге, – глобальный уникальный идентификатор (GUID, Global Unique Identifier). Это 128-разрядное число, которое является обязательным атрибутом любого объекта. GUID присваивается объекту при его создании, является уникальным и не может измениться ни при каких обстоятельствах. Мы можем переместить объект в схеме, при этом изменится уникальное имя объекта, но его идентификатор останется прежним.
Утилиты для поиска, добавления и модифицирования объектов
Операционные системы Windows Server 2003 и Windows XP имеют встроенный набор утилит для осуществления операций над объектами службы каталогов из командной строки. Это утилиты, начинающиеся с латинских букв ds (синтаксис всех команд можно посмотреть, введя в качестве параметра /?):
- dsquery – ищет объект по заданным условиям;
- dsget – получает свойства объекта;
- dsadd – добавляет объект;
- dsmod – изменяет атрибуты объекта;
- dsmove – перемещает объект внутри домена;
- dsrm – служит для удаления объектов из каталога.
Каждая утилита командной строки работает с определенным набором объектов службы каталогов. В таблице указано, c каким объектом может работать утилита, а с каким нет.
Утилиты ds* и объекты, с которыми они могут работать
Объект
|
dsquery
|
dsget
|
dsadd
|
dsmod
|
dsmove
|
dsrm
|
User
|
+
|
+
|
+
|
+
|
+
|
+
|
Contact
|
+
|
+
|
+
|
+
|
+
|
+
|
Group
|
+
|
+
|
+
|
+
|
+
|
+
|
Computer
|
+
|
+
|
+
|
+
|
+
|
+
|
OU
|
+
|
+
|
+
|
+
|
+
|
+
|
Server
|
+
|
+
|
–
|
+
|
+
|
+
|
Site
|
+
|
+
|
–
|
–
|
+
|
+
|
Subnet
|
+
|
+
|
–
|
–
|
+
|
+
|
Partition
|
+
|
+
|
–
|
+
|
+
|
+
|
Quota
|
+
|
+
|
+
|
+
|
+
|
+
|
Некоторые команды имеют систему подкоманд, в которых явным образом указывается, с каким объектом вы будете работать, а также перечень параметров. Рассмотрим запрос к службе каталогов.
>dsquery computer -name buh*
Результатом выполнения данного запроса будет список имен компьютеров в домене, начинающихся с buh. Например:
"cn=buh01,cn=computers,dc=domain,dc=com"
"cn=buh02,cn=computers,dc=domain,dc=com"
"cn=buhgalter,ou=buhgalters,dc=domain,dc=com"
|
Как видите, результаты выводятся в формате DN.
Синтаксис подкоманд dsquery на первый взгляд может показаться сложным, хотя большинство параметров одинаково, а различаются они лишь расширениями, специфичными для заданного типа объекта.
Рассмотрим пример применения утилит dsadd и dsmod (в отличие от dsquery и dsget и наряду с dsmove и dsrm они вносят изменения в Active Directory):
>dsadd user "cn=Ivanov,cn=Users,dc=domain,dc=com" -pwd *
Команда создает пользователя с именем пред-Windows 2000 Ivanov в группе Users домена domain.com. При этом будут запрошены пароль и его подтверждение, потому как в параметре -pwd указана звездочка.
Может сложиться ситуация, когда введенный пароль не будет удовлетворять требованиям безопасности вашего домена (см. настройки политики паролей объекта GPO для домена). В этом случае учетная запись будет создана заблокированной и останется таковой до тех пор, пока вы не смените пароль на такой, который будет отвечать политикам вашего домена.
>dsmod user "cn=Ivanov,cn=Users,dc=domain,dc=com" -upn ivanov@domain.com
Данная команда добавляет логин пользователя в формате UPN.
Утилиту dsquery можно использовать конвейером с другими утилитами, и тогда в качестве входных данных для них будет браться результат команды dsquery. Приведу пример:
>dsquery user -name Ivanov | dsmod user -disabled yes
Dsmod в этом случае отключает учетную запись пользователя Ivanov, получая в качестве входных параметров результат выполнения запроса dsquery. В итоге вход в домен с использованием этой учетной записи будет невозможен.
Помимо встроенных средств Windows Server 2003 и Windows XP существует также ряд утилит, выпущенных сторонними разработчиками – экспертами в области Active Directory. Одним из них является Джо Ричардс – автор целого ряда утилит для мониторинга и управления службой каталогов. Мы рассмотрим лишь две из них. Желающие могут подробнее ознакомиться с остальными на сайте Джо (www.joeware.net).
Первая утилита, adfind, фактически является расширенным аналогом стандартной dsquery (скорее даже «солянкой» из dsquery, dsget, ldp и других полезных вещей) и позволяет осуществлять различные запросы к каталогу. Для установки нужно лишь скачать архив с программой и распаковать ее в системный каталог \Windows\system32. Для более подробного ознакомления с параметрами закидываем файл справки в текстовый документ:
>adfind -?? > c:\adfind_help.txt
От стандартных команд, формирующих запросы к каталогу, ее отличает следующее:
- она позволяет выполнять запросы любой сложности;
- полученные с ее помощью результаты запроса можно отсортировать, используя специальные ключи;
- она позволяет увидеть удаленные объекты;
- используя специальный ключ, можно увидеть параметры выполнения запроса, что в свою очередь способствует анализу эффективности конкретного запроса.
Рассмотрим простой пример ее применения. Пусть нам нужно найти все компьютеры, имена которых начинаются с buh в организационной единице buhgalteria домена domain.com:
>adfind –b "ou=buhgalteria,dc=domain,dc=com" -f "(&(objectcategory=computer)(name=buh*))"
Здесь мы указываем область поиска и параметры искомого объекта.
Вторая утилита от Джо Ричардса, admod, является расширенным аналогом стандартной dsmod (точнее некой смесью dsmod + dsmod + dsrm). В отличие от стандартных команд admod может работать с любыми объектами каталога. Нетрудно догадаться, что с ее помощью можно изменять, перемещать, переименовывать, удалять объекты, используя соответствующие параметры. Также эта утилита позволяет восстанавливать объекты после удаления, однако эта функция действует только в доменах Windows 2003.
Стоит отметить, что результаты запроса команды adfind могут быть использованы в качестве входных параметров команды admod.
Утилиты диагностики неисправностей службы каталогов и сетевой среды
Помимо начального планирования, разворачивания и настройки службы каталогов администраторы должны обеспечивать работоспособность и правильное взаимодействие всех компонентов Active Directory. Для решения задач отслеживания и устранения неисправностей существует ряд утилит, которые при обнаружении некорректной работы какого-либо компонента должны быть запущены в первую очередь. Такие инструменты входят в состав Support Tools (находятся на диске с операционной системой) и Resource Kit Tools (их вы найдете на сайте компании Microsoft).
Dcdiag
Эта утилита, входящая в состав Support Tools, позволяет провести диагностику контроллеров домена на предмет обнаружения ошибок в работе служб. Запустить ее можно как с компьютера под управлением Windows XP (при этом указав в параметрах целевой контроллер домена), так и непосредственно на самом контроллере. При запуске без ключей будет выведен результат 27 тестов, предназначение каждого из которых можно узнать, запустив dcdiag с ключом /?. Однозначно можно сказать, что эта утилита является одной из важнейших для администраторов службы каталогов.
Netdiag
«Инструмент», также входящий в состав Support Tools, служит скорее для диагностики проблем в сети, чем напрямую относится к средствам для выявления и устранения неполадок в работе службы каталогов. При его запуске будет проведен ряд проверок, таких как проверка DNS, тест доступности контроллера домена, проверка конфигурации IP-адреса, проверка LDAP, основного шлюза и таблиц маршрутизации и другие важные тесты.
GPOtool
Одна из утилит Resource Kit, которая служит для проверки целостности объектов групповых политик. В предыдущей статье [1] были рассмотрены групповые политики. Напомню, что каждый объект GPO состоит из двух частей – контейнера и шаблона групповой политики. Контейнер хранится в каталоге и содержит параметры объекта GPO, шаблон хранится в папке \Windows\sysvol\ и содержит настройки безопасности, административные политики, скрипты и приложения, которые публикуются при помощи групповых политик. Если версии контейнера и шаблона групповой политики по каким-то причинам не совпадают либо один из них поврежден, групповая политика применена не будет.
Repadmin
Одним из важнейших процессов при функционировании службы каталогов является репликация. Утилита из состава Support Tools, позволяющая увидеть, что происходит при репликации, и выявить возможные причины неполадок.
NTDSutil
Это контекстный инструмент, предназначенный для работы с базой данных службы каталогов, а также для управления ролями FSMO (Flexible Single-Master Operation, одиночный хозяин операций) и удаления метаданных, неправильно вышедших из состава службы каталогов контроллеров домена. С ее помощью можно, например, принудительно захватить роли FSMO, которые принадлежали вышедшему из строя контроллеру домена. Но в этом случае нужно быть уверенным, что этот контроллер уже не вернется к работе, иначе возникнут проблемы в работе службы каталогов, так как некоторые роли FSMO требуют уникальности обладателя в рамках домена. Использование утилиты требует от администратора четкого понимания происходящего, иначе действия, произведенные с помощью NTDSutil, могут повлечь за собой неприятные последствия.
Заключение
В рамках журнальной статьи описать все инструменты командной строки, предназначенные для повседневной работы со службой каталогов. Тем более что подход каждого администратора к управлению индивидуален. Здесь вам предложены те базовые утилиты, которые будут полезны, если вы имеете дело с Active Directory. Нетрудно догадаться, что многие из команд могут использоваться в пакетных файлах для автоматизации процесса управления службой каталогов. Это во многом может облегчить выполнение повседневных рутинных задач.
Для детального ознакомления с инструментами командной строки используйте базу знаний Microsoft TechNet, а также веб-блоги специалистов по внедрению и поддержке службы каталогов.
- Емельянов А. Групповые политики в доменах Active Directory. //«Системный администратор», №7, 2007 г. – С. 4-9.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|