Главная > Default > Управление Active Directory #1: инструменты командной строки DS

Управление Active Directory #1: инструменты командной строки DS

Управление Active Directory – не просто работа, а целое искусство, требующее, помимо академических знаний об ее архитектуре, навыки проектирования согласно бизнес-требованиям организации в ИТ-инфраструктуре и умения автоматизировать рутинные операции с целью минимизации допущения ошибок.

В рамках данного поста я рассмотрю управление объектами AD из командной строки.

В Windows Server 2008 существуют следующие инструменты командной строки для управления AD:
Dsadd – создание объекта в каталоге;
Dsget – возврат указанных атрибутов объекта;
Dsmod – модификация указанных атрибутов объекта;
Dsmove – перемещение объекта;
Dsrm – удаление объекта и его дочерних объектов;
Dsquery – выполнение запроса на основе параметров и возврат списков объектов с такими параметрами.

Большинство команд DS имеют 2 модификатора: тип и имя DN объектов.  К примеру, для создания учетной записи пользователя Ivan Ivanov в подразделении Finances, используется команда:

dsadd user “cn=Ivan Ivanov,ou=Finances,dc=contoso,dc=com”

console-ad-1

В данном случае модификатор user указывает на тип создаваемого объекта (User, он же Пользователь), имя DN – Ivan Ivanov. Так как имя пользователя содержит пробел, то имя DN целиком заключается в кавычки.

Для выполнения манипуляций с атрибутами объектов используются Dsquery, Dsget и Dsmod. Например, отыщем всех пользователей AD, имя которых начинается с Ivan:

dsquery user –name Ivan*

console-ad-2

Dsquery возвратила нам имя DN объекта Ivan Ivanov.

Модифицируем ему атрибут Office, содержащий номер кабинета, в котором сидит сотрудник:

dsmod user “cn=Ivan Ivanov,ou=Finance,dc=contoso,dc=com” –office 555

console-ad-3

Заполненные атрибуты объектов AD могут существенно упростить управление AD, послужив критериями поиска объектов и их модификации. Команды DS поддерживают конвейеризацию входных данных. Это позволяет использовать результаты выполнения Dsquery или Dsget в качестве входных данных.

Чтобы стало понятнее, я приведу пример.

Скажем, вы управляете территориально-распределенным доменом с большим количеством филиалов. Для создания списков рассылки, отдел кадров просит вас предоставить им адреса электронной почты всех сотрудников, например, тамбовского и воронежского филиалов. Сбор такой информации вручную может занять довольно много времени, да и мало кого вдохновит. Но если при создании учетных записей пользователей в AD тамбовские и воронежские администраторы сразу же заполняли атрибуты объектов пользователей, то это будет для вас пустяковым делом на одну минуту.

Я не стал заполнять лабораторную среду большим количеством объектов и их атрибутами, чтобы можно было выполнять поиск с такими условиями. Однако, запросить для примера номера кабинетов, в которых сидят пользователи с именем Ivan, в ней можно:

dsquery user –name Ivan* | dsget user –office

Все просто, не правда ли?

Для закрепления материала, рассмотрим мини-сценарий:
1. Просмотрим список учетных записей пользователей, имена которых начинаются с Ivan;
2. создадим новый OU под названием Tr;
3. перенесем учетную запись пользователя Ivan Ivanov в OU Tr;
4. удалим OU Tr вместе со всеми дочерними объектами;
5. Еще раз просмотрим список учетных записей пользователей, имена которых начинаюся с Ivan.

Я создал в корне диска сценарий командной строки scenario.cmd следующего содержания:

dsquery user -name Ivan*
dsadd ou "ou=Tr,dc=contoso,dc=com"
dsquery user -name "Ivan Ivanov" | dsmove -newparent "ou=Tr,dc=contoso,dc=com"
dsrm -subtree -noprompt -c ou=Tr,dc=contoso,dc=com
dsquery user -name Ivan*

Его выполнение происходило так:

console-ad-4

Как видите, выполнение шага 5 выдало пустой результат. Это значит, что сценарий отработал верно.

Таким образом мы убедились в том, что управление объектами AD может быть довольно простым занятием, а инструменты командной строки позволяют не только успешно решать административные задачи, но и максимально автоматизировать их.

Default ,

  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.