
Администрирование доменов active directory
Работа скрипта PowerShell с доменами AD производиться с использованием специального провайдера пространства имен ADSI (Active Directory Service Interface) [4], входящего в поставку PowerShell. Поскольку в сети одновременно могут быть доступны контроллеры разных доменов, а в каждом домене присутствуют множество объектов, имена которых (но не полные имена) могут совпадать, для подключения к управляющему интерфейсу необходимо указать адрес объекта в следующем виде:
LDAP://[Server[:PortNumber]][/DistinguishedName]
где Server – сервер с установленной ролью контроллера домена, а DistinguishedName – уникальное имя объекта в рамках домена (сам домен также имеет уникальное имя). Уникальное имя представляет собой последовательность относительных имен (RDN), разделенных запятыми. Последовательность записывается от более «мелкого» имени к более крупным и заканчивается, как правило, доменов верхнего уровня, либо доменом «local», обозначающим интранет-домен. Каждое относительное имя относиться к одному из типов, наиболее часто используемые из которых приведены в таблице 5.
Таблица 5. Наиболее часто используемые типы RDN
Имя типа |
Описание |
DC |
Элемент имени домена (Domain Component) |
CN |
Имя общего элемента домена (Common Name). К таким элементам относятся пользователи, группы пользователей и учетные записи компьютеров, подключенных к домену. |
OU |
Организационная единица (Organizational Unit). |
Например, для подключения к домену из первого задания лабораторной работы №9 может использоваться выражение
$adsi = [ADSI]"LDAP:://DC=faculty,DC=dstu,DC=local",
а для обращения к учетной записи администратора домена
$adsi = [ADSI]"LDAP:://CN=Администратор,DC=faculty,DC=dstu,DC=local"
После подключения к какому-нибудь контейнеру (домену или организационной группе), появляется возможность создавать в нем новые элементы: вложенные организационные единицы (organizationUnit), пользовательские группы (group) или записи пользователей (user).
Например, создание нового пользователя в организационной единице «studs» может выглядеть как:
$ou = [ADSI]"LDAP://OU=studs,DC=faculty,DC=dstu,DC=local"
$user = $ou.Create("user", "CN=Pupkin.Ivan")
$user.Put("SamAccountName", "i.pupkin")
$user.Put("DisplayName", "Пупкин Иван")
$user.SetInfo()
$user.PSBase.InvokeSet("AccountDisabled", $false)
$user.SetPassword("<пароль-пользователя>")
$user.SetInfo()
Некоторые примеры наиболее востребованных команд можно найти в [5].
Задание к лабораторной работе
Создать скрипт на языке PowerShell, выполняющий действия, согласно варианту задания из таблицы 6. В основы для лабораторной работы использовать домен Active Directory развернутый при выполнении предыдущей лабораторной работы №9.
Таблица 6. Варианты заданий к лабораторной работе
№ в-та |
Задание к лабораторной работе |
1 |
Написать скрипт: а) выводящий в файлы списки групп пользователей; для каждой группы создать отдельный файл со списком студентов; б) создающий на основе текстового файла новую организационную единицу для группы, группу пользователей и пользователей внутри нее согласно списку в файле; для каждого созданного пользователя необходимо создать домашний каталог в по пути указанному в параметрах скрипта. |
2 |
Написать скрипт: а) выводящий в файл многоуровневый список организационных единиц с пользователями в каждой из них; б) для каждой организационной единицы (ОЕ) выводящий список пользователей, входящих в группу администраторов данной ОЕ. |
3 |
Создать скрипт: а) удаляющий пользовательские записи покупателей, не производивших вход (логин) более указанного количества месяцев (кол-во месяцев указывается через параметр скрипта); б) блокирующий учетные записи покупателей с пустым полем электронного адреса (e-mail). |