Глава 7. Управление объектами Active Directory

Я начинал свою карьеру в качестве веб разработчика. Я всё ещё помню свой самый первый рабочий день. Это была некая компания разработчик программного обеспечения с 20 инженерами. Я не знал ничего об Active Directory (AD) тогда. В свой самый первый день, после процедуры инструктажа, мой управляющий указал мне мой стол. Затем он сообщил мне мои имя пользователя и пароль для регистрации. Итак, я включил свой компьютер и набрал свои имя пользователя и пароль для входа в систему. Затем на экране появилось сообщила, что я обязан установить некий новый пароль. Я набрал самый сложный пароль, который только смог придумать, как меня и проинструктировал управляющий. После этого я зарегистрировался и приступил к работе. Это было достаточно загруженное утро. После быстрого перерыва поздно в полдень, я вернулся обратно к своему месту чтобы продолжить работу. Я набрал свой сложный пароль для входа в систему, однако получил отказ. Я попытался снова, но с тем же самым результатом. Я продолжил попытки и через несколько проб достиг сообщения о блокировании учётной записи. Я испытал некую разновидность паники, поскольку такое случилось со мной впервые. Я показал это сидящему рядом со мной парню и он посоветовал мне поговорить с системным администратором. Я проследовал в серверное помещение и рассказал о своей ситуации с учётной записью администратору. Затем он зарегистрировался в удалённой машине и открыл на своём экране какой- то вид консоли. Затем он раскрыл несколько папок в каком- то дереве папок и выбрал что- то с моим именем. После нескольких щелчков он открыл небольшой блок и попросил меня ввести новый пароль. Какая магия! Спустя несколько лет (когда я сменил профессию), я осознал, что это была консоль Microsoft управления пользователями и компьютерами Active Directory (Active Directory Users and Computers - ADUC - Microsoft Management Console - MMC). В самом начале вся эта теория об объектах и атрибута была для меня Греческим языком. Однако когда я начал применять консоли управления объектами Active Directory (AD), я начал разбираться. Невозможно пояснить AD без этих инструментов, которые управляют объектами AD в качестве визуальных компонентов инфраструктуры AD.

Как уже пояснялось в Главе 1, Основы Active Directory, все вещи, которые нам требуется представлять в AD создаются и сохраняются в качестве объектов. Это могут быть пользователи, компьютеры, принтеры или группы. Атрибуты применяются для описания таких объектов. Это аналогично тому способу, коим мы применяем характеристики для описания персоны или вещи. Имеются разнообразные инструменты и методы, которые мы можем применять для добавления, изменения или удаления объектов из имеющейся базы данных AD.

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

В этой главе мы рассмотрим следующее:

  • Инструменты и методы для управления объектами AD

  • Создание, изменение и удаление объектов в AD

  • Поиск объектов в AD

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

Инструменты и методы для управления объектами

Существуют различные инструменты и методы, которые мы можем применять для управления объектами AD. Когда вы устанавливаете на сервер AD DS, это также делает возможным и доступ к этим инструментам управления. Также имеются и сторонние производители, которые также выпускают инструменты управления AD. Однако в этой главе я буду применять только встроенные инструменты Windows Server.

Центр администрирования Windows

Windows Admin Center (Центр администрирования Windows) является самым последним инструментом управления серверами Microsoft. Это инструмент управления на основе веб- интерфейса, которое вы можете применять для управления экземплярами Windows Server, ПК Windows 10, кластерами и гиперконвергентными системами в инфраструктуре. Также мы можем применять этот инструмент для управления серверами AD и объектами AD. Прежде чем мы рассмотрим его, давайте изучим ту архитектуру, которая стоит за Центром администрирования Windows.

 

Рисунок 7-1


Архитектура Центра администрирования Windows

Будучи развёрнутым, Центр администрирования Windows может быть доступен откуда угодно пока размещены на своих местах необходимые правила межсетевого экрана. Центр администрирования Windows обладает легковесной установкой и может устанавливаться в клиентах Windows 10 и любых прочих управляемых хостах. Он также обладает ролями шлюза, которые могут применяться для управления Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012 и ПК Windows 10 при помощи PowerShell и WMI поверх WinRM. Центр администрирования Windows бесплатный продукт и он не требует никакого дополнительного лицензирования. Если это необходимо, Центр администрирования Windows может быть установлен в виртуальной машине Azure. Центр администрирования Windows также способен интегрироваться со множеством служб Azure, например, Azure AD, Azure Site Recovery и Azure Backup.

Я не намерен здесь пояснять как устанавливать Центр администрирования Windows, поскольку как это осуществлять зависит от всех дополнительных требований вашей компании, которыми вы можете обладать. Дополнительные сведения относительно развёртывания, планирования и установки можно найти на https://bit.ly/3xhs5bb. Вы не можете устанавливать Центр администрирования Windows в Контроллере домена. Это должен быть сервер участника и он не обязательно должен быть присоединённым к домену.

После того как Центр администрирования Windows установлен, зарегистрируйтесь в его портала и установите необходимое нам расширение AD. По умолчанию оно не установлено:

 

Рисунок 7-2


Расширения Центра администрирования Windows

Затем, воспользовавшись учётной записью Администратора домена добавьте в Центр администрирования Windows Контроллер домена. Когда этот сервер подключён, проследуйте в свойства этого сервера и кликните по Active Directory:

 

Рисунок 7-3


Управление ролью AD Центра администрирования Windows

Мы можем приступать к управлению объектами AD посредством поиска объекта с применением варианта Search:

 

Рисунок 7-4


Поиск пользователей AD при помощи Центра администрирования Windows

После того как объект отфильтрован, мы можем просмотреть свойства его учётной записи воспользовавшись опцией Properties:

 

Рисунок 7-5


Изменение объекта пользователя при помощи Центра администрирования Windows

Помимо этого, у нас также имеется возможность запрещать объект, удалять объект или сбрасывать значение пароля для объекта:

 

Рисунок 7-6


Запрет, удаление или сброс пароля для объекта при помощи Центра администрирования Windows

Также при помощи Центра администрирования Windows вы можете создавать пользователя, группу или Подразделение организации (organizational unit OU):

 

Рисунок 7-7


Архитектура Центра администрирования Windows

Если вы уже пребываете в гибридной среде, для регистрации в Центре администрирования Windows вы можете применять учётные записи AD Azure. Это поможет вам предоставлять практику SSO и разрешает прочие уровни защиты, применяя такие решения как MFA. Для выполнения этого вам потребуется зарегистрировать Центр администрирования Windows в Azure. Дополнительные сведения об этом процессе доступны в https://bit.ly/30S4XV7.

Центр администрирования Active Directory

ADUC MMC является наиболее часто применяемым инструментом для управления средами AD. Этот инструмент также был встроен в саму систему начиная с самых ранних версий AD и продолжает присутствовать в ней до самого последнего времени. Начиная с AD DS 2008 R2, Microsoft ввёл ADAC (Active Directory Administrative Center, Центр администрирования AD), который строится поверх PowerShell. Он предоставляет расширенный графический интерфейс, который можно применять действенным образом для управления объектами AD. В AD DS 2012 Microsoft ввёл Представление истории (History View) PowerShell, который позволяет администраторам изучать связанные с AD команды PowerShell. ADAC применяется реже по сравнению с ADUC MMC. Этот инструмент поставляется совместно с ролью AD DS и он не требует никаких дополнительных настроек.

Для доступа к основной консоли ADAC вы можете набрать dsac.exe из командной строки PowerShell или в блоке Run:

 

Рисунок 7-8


ADAC

Наш предыдущий снимок экрана показывает получаемый по умолчанию интерфейс ADAC и его компоненты, которые можно применять для управления объектами AD:

  • Планку хлебных крошек (Breadcrumb bar): Применяется для навигации напрямую в различные контейнеры. Чтобы перейти к конкретному контейнеру, вам потребуется воспользоваться его названием. Также можно применять и другой обходной путь поиска отличительного названия контейнера:

     

    Рисунок 7-9


    Планка хлебных крошек в ADAC

    Применение варианта Manage позволяет нам добавлять в свою панель навигации узлы навигации. В целом, это аналогично добавлению закладок на определённые контейнеры.

  • Список управления: В этом разделе мы можем обнаружить некий перечень контейнеров, содержащихся в этих контейнерах объектов, результаты поиска объекта и многое другое. Отображаемые в этом разделе сведения будут изменяться на основе выбираемых в панели навигации вариантов.

  • Панель предварительного просмотра: Этот раздел отображает резюме для выбранных вами в Списке управления объектов. Такое резюме содержит определённые значения атрибутов, например, описание объекта, его название DNS и имя пользователя, а также время последнего изменения этого объекта:

     

    Рисунок 7-10


    Навигация узлов в ADAC

  • Панель навигации: Она аналогична панели навигации знакомого вам ADUC MMC. C её помощью вы можете перемещаться в различные контейнеры в своём домене. Её также можно применять для обновления установленных уровней функциональности домена и леса и включения корзины AD. Применяя данную панель навигации мы можем добавлять в свой каталог такие объекты как User, Group, Organizational Unit или Computer:

     

    Рисунок 7-11


    Добавление объектов в ADAC

    Данная панель навигации также перечисляет варианты Global Search, которые можно применять для локализации объектов AD в вашем каталоге. После того как проведённый поиск вернёт вам некий объект, он также предоставит варианты для осуществления административных задач:

     

    Рисунок 7-12


    Глобальный поиск ADAC

  • Панель задач: Эта Панель задач перечисляет все административные задачи, ассоциируемые с выбранным вами объектом, например, перемещение объектов, сброс паролей, свойства и удаление. Этот список административных задач будет меняться на основании типа рассматриваемого объекта.

  • Панель истории PowerShell: ADAC построен на основе технологии интерфейса командной строки PowerShell, поэтому все выполняемые в ADAC задачи исполняются как команды PowerShell. В этой панели перечисляются все выполнявшиеся команды PowerShell. Инженеры могут копировать эти команды и повторно их применять или дорабатывать их дальше для управления объектами AD через PowerShell напрямую. Это также позволяет нам находить команды, когда это требуется.

Когда вы открываете ADAC впервые, вы не обнаружите панель истории PowerShell в расширенном режиме, как это показано на снимке экрана ниже. Вам требуется кликнуть по блоку WINDOWS POWERSHELL HISTORY чтобы раскрыть его:

 

Рисунок 7-13


История PowerShell ADAC

ADAC также делает возможным управление объектами и в прочих доменах. Его также можно открыть при помощи Server Manager | Tools | Active Directory Administrative Center. Когда домены имеют односторонние или двусторонние доверительные отношения между собой, это позволяет нам добавлять их в ту же самую консоль ADAC. Для этого вам требуется пройти в Планку хлебных крошек и кликнуть по Manage | Add Navigation Nodes, а затем кликнуть по Connect to other domains... в полученном окне:

 

Рисунок 7-14


Подключение к прочим узлам

Следующим преимуществом ADAC является окно расширенных свойств объекта. Если вы пользовались ранее ADUC MMC, вы уже можете знать, что для того чтобы просмотреть свойства объекта вам требуется преодолеть множество различных закладок. Однако с помощью окна расширенных свойств объекта ADAC мы можем просматривать множество сведений в единственном окне. Когда это потребуется, вы сможете легко перемещаться в различные разделы.

Используя то же самое окно, мы можем запускать относящиеся к этим объектам задачи. Но это не всё, оно позволяет нам также изменять сами разделы на странице свойств как мы пожелаем:

 

Рисунок 7-15


Административные задачи

Возможности ADAC можно суммировать следующим образом:

  • Создание учётных записей пользователей (user), групп (group) и компьютеров (computer), а также организационных элементов (OU, organizational unit)

  • Управление учётными записями пользователей, групп, компьютеров и OU

  • Удаление учётных записей пользователей, групп, компьютеров и OU

  • Управление объектами из прочих имеющих доверительные отношения доменов

  • Фильтрация объектов при помощи запросов

В своём следующем разделе мы намерены рассмотреть наиболее часто применяемый инструмент для управления объектами AD.

ADUC MMC

ADUC MMC является наиболее широко применяемым инструментом управления объектами AD. Этот инструмент доступен начиная с AD DS 2000 и, с годами, не изменялся существенно в отношении того как он выглядит и как в нём работать. Эта MMC поступает вместе с ролью AD DS и также может устанавливаться с помощью RSAT (Remote Server Administration Tools) который можно устанавливать в любом компьютере.

Его можно открыть с помощью dsa.msc из приглашения PowerShell или из блока Run в меню Start:

 

Рисунок 7-16


ADUC

Давайте пройдёмся по основным разделам этой консоли:

  • Полоса меню: Она содержит различные варианты меню. Большинство этих упомянутых в меню вариантов можно также исполнить при помощи иконок ниже полосы меню или в панели Actions.

  • Дерево консоли: Данное дерево консоли перечисляет установленную структуру компонентов AD и помогает нам перемещаться по контейнерам и отыскивать объекты.

  • Панель управления: Отображает все объекты внутри выбранного в соответствующем дереве консоли контейнера. Она способна отображать различные Типы объектов, например User Group или Device. Её содержимое будет изменяться в зависимости от выбранного контейнера.

  • Панель действий: Панель Actions содержит основные административные задачи, относящиеся к выбранным объектам AD. Например, когда выбран объект пользователя, панель действий перечислит такие административные задачи, как перемещение объекта, его удаление, сброс его пароля и запрет его учётной записи.

Здесь мы не будем рассматривать его функции, так как он является наиболее часто применяемым инструментом для любого администратора. Но я намерен перечислить некоторые из основных функциональных возможностей:

  • Расширенные свойства: По умолчанию, MMC не будет перечислять все те свойства контейнеров и объектов, которые относятся к расширенному системному администрированию. Чтобы получить доступ к этим возможностям, вам требуется включить их при помощи View | Advanced Features.

  • Сохранённые запросы: Применяя эту MMC мы можем создавать индивидуальные запросы для фильтрации объектов AD и сохранять эти запросы для повторного исполнения в последующем. Это сберегает администраторам время чтобы не тратить время на навигацию по контейнерам в поисках объектов.

    Чтобы создать некий запрос, кликните правой кнопкой по Saved Queries и выберите New Query. В этом окне вы можете построить некий запрос при помощи возможности Define Query...:

     

    Рисунок 7-17


    Работа с запросами

  • Доступ к различным доменам: Когда некий домен имеет доверительные взаимоотношения с прочими доменами, ту же самую консоль можно применять для доступа к ним и управления их объектами:

     

    Рисунок 7-18


    Доступ к различным доменам

Основные возможности ADUC MMC можно суммировать следующим образом:

  • Добавление, изменение и удаление пользователей (user), групп (group), компьютеров (computer), а также организационных элементов (OU, organizational unit)

  • Управление объектами в различных доменах (требует двусторонних или односторонних доверительных отношений)

  • Построение запросов для фильтрации объектов

  • Поиск объектов в каталогах

  • Изменение свойств объектов

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

Администрирование объектов Active Directory посредством PowerShell

PowerShell предоставляет бо́льший контроль над функциями и операциями системы Windows. PowerShell к тому же упрощает процесс настройки управления службой/ ролью. Команда в одну строку порой способна заменить 10 - 15 кликов в неком графическом интерфейсе. AD DS поставляется совместно с Active Directory Module for Windows PowerShell, который можно применять для управления AD DS, AD LDS (Active Directory Lightweight Directory Services) и объектами. Объектами AD DS всё ещё можно управлять через приглашение Командной строки, однако PowerShell предоставляет расширенный, централизованный контроль над компонентами и службами AD.

Любой сервер, в котором выполняются роли служб AD DS или AD LDS имеет по умолчанию модуль AD PowerShell. Его также можно включить в неком настольном компьютере или сервере участник путём установки RSAT.

[Замечание]Замечание

Если инструменты RSAT устанавливаются на компьютеры с запущенным в них PowerShell 2, вам придётся запустить Import-Module ActiveDirectory перед тем как применять команды для управления AD.

Создание, изменение и удаление объектов в AD

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

Создание объектов в AD

Абсолютно все типы объектов имеют свой собственный набор атрибутов. Когда вы создаёте объекты, вам требуется предоставлять для этих атрибутов значения. Некоторые из них обязательны, а некоторые нет. На основании опыта работы и предпочтений компании, в установленные типы объектов могут потребоваться добавления некоторых индивидуальных атрибутов.

Создание объектов пользователя

Для создания некого объекта пользователя в AD мы можем воспользоваться командлетом PowerShell New-ADUser. Вы можете просмотреть полный синтаксис данной команды совместно с допустимыми типами данных, применив такую команду:


Get-Command New-ADUser -Syntax
		

Чтобы создать некую новую учётную запись пользователя при помощи PowerShell, минимальным значением, которое вам потребуется передать будет -Name. Это создаст некую отключённую учётную запись пользователя и вы сможете позднее определять значения прочих атрибутов.

Вот некий образец, который может быть применён для создания какой- то учётной записи пользователя:


New-ADUser -Name "Talib Idris" -GivenName "Talib" -Surname "Idris" -SamAccountName "tidris" -UserPrincipalName "tidris@rebeladmin.com" -Path "OU=Users,OU=Europe,DC=rebeladmin,DC=com" -AccountPassword(Read-Host -AsSecureString "Type Password for User") -Enabled $true
		

Данная команда обладает следующими параметрами:

  • -Name: Этот параметр определяет значение полного имени.

  • -GivenName: Данный параметр задаёт первое имя.

  • -Surname: Этот параметр определяет фамилию.

  • -SamAccountName: Параметр, определяющий регистрационное имя пользователя.

  • -UserPrincipalName: Данный параметр задаёт UPN (User Principal Name, Основное имя пользователя) для значения учётной записи пользователя.

  • -Path: Определяет значение пути OU. Устанавливаемым по умолчанию местоположением является CN=Users,DC=rebeladmin,DC=com. Когда значение -Path не задано, будет создан соответствующий объект в установленном по умолчанию контейнере.

  • -AccountPassword: Позволяет для исполнителя ввести некий пароль для создаваемого пользователя и сама система преобразует его в подходящий тип данных.

  • -Enabled: Определяет будет ли состояние учётной записи этого пользователя включено или отключено.

    [Совет]Совет

    Вы можете создать некую учётную запись пользователя с минимальным числом атрибутов, например, с именем и UPN. Позднее вы можете задать некий пароль и включить эту учётную запись. Учётная запись пользователя не может быть включена без пароля. Для задания пароля вы можете применять командлет Set-ADAccountPassword -Identity, а для включения учётной записи вы можете воспользоваться командлетом Enable-ADAccount -Identity.

Вместо того чтобы выполнять множество команд при создании большого числа объектов, мы можем создать какой- то файл CSV (Comma-Separated Values, с разделяемыми запятой значениями), который содержит сведения для атрибутов и воспользоваться им для создания учётных записей одним махом.

Для демонстрации я воспользуюсь следующим файлом CSV:

 

Рисунок 7-19


Файл CSV со значениями атрибутов пользователей

Я воспользовался данными для некоторых атрибутов через такой файл CSV, а некоторые общие значения будут переданы посредством следующего сценария:


Import-Csv "C:\ADUsers.csv" | ForEach-Object {
$upn = $_.SamAccountName + "@rebeladmin.com" 
New-ADUser -Name $_.Name `
 -GivenName $_."GivenName" `
 -Surname $_."Surname" `
 -SamAccountName $_."samAccountName" `
 -UserPrincipalName $upn `
 -Path $_."Path" `
 -AccountPassword (ConvertTo-SecureString "Pa$$w0rd" -AsPlainText -force) -Enabled $true
}
		

В этом сценарии применяется командлет Import-Csv для импорта того файла CSV, который я создал на своём предыдущем шагу. Я также определил значение UPN, -UserPrincipalName, воспользовавшись $upn= $_.SamAccountName + "@rebeladmin.com". В самом конце я задал некий общий пароль для всех создаваемых учётных записей при помощи -AccountPassword (ConvertToSecureString "Toronto@1234" -AsPlainText -force).

Пройдя этот раздел, мы теперь знаем как создавать объекты пользователей при помощи PowerShell. В своём следующем разделе мы намерены изучить как создавать объекты компьютера в неком AD при помощи PowerShell и инструментов графического интерфейса.

Создание объектов компьютера

Когда некий компьютер или сервер- участник присоединяются к какому- то домену, это создаёт объект компьютера в AD.

Такой объект компьютера может быть создан до его добавления в домен. Это не добавит данное устройство в домен, однако этим можно пользоваться с присоединением отключённого домена и присоединением к домену RODC.

Для создания объекта компьютера, мы можем воспользоваться командлетом New-ADComputer. Для просмотра полного синтаксиса этой команды воспользуйтесь следующим:


Get-Command New-ADComputer -Syntax
		

Тем атрибутом, при помощи которого вы можете создать некий объект компьютера является -Name:


New-ADComputer -Name "REBEL-PC-01" -SamAccountName "REBEL-PC-01" -Path "OU=Computers,OU=Europe,DC=rebeladmin,DC=com"
		

В нашем предыдущем примере выполненная команда создаст объект компьютера REBEL-PC01 в OU=Computers,OU=Europe,DC=rebeladmin,DC=com OU. Если вы не определяете такой путь, будет создан соответствующий объект в установленном по умолчанию контейнере компьютера, CN=Computers, DC=rebeladmin, DC=com.

Нам очень редко требуется массовое создание объектов компьютера. Если это потребуется, мы можем сделать это при помощи метода CSV, аналогичного созданию объектов пользователя.

[Замечание]Замечание

Я не намерен здесь обсуждать администрирование объектов групп, так как оно подробно рассматривается в Главе 8, Управление пользователями, группами и устройствами.

Объекты User и Computer также можно создать с помощью ADAC или ADUC. В таком случае нам придётся следовать за мастером для задания значений и атрибутов:

 

Рисунок 7-20


Создание нового пользователя при помощи ADAC

Наш следующий снимок экрана показывает мастер создания объекта Computer с помощью ADUC:

 

Рисунок 7-21


Создание объекта Computer

В этом разделе мы рассмотрели как создавать объекты компьютера при помощи различных инструментов (ADAC, ADUC и PowerShell). Когда дело доходит до управления объектами AD, нам также приходится время от времени изменять атрибуты объекта. В своём следующем разделе мы намерены рассмотреть изменение объекта AD с помощью PowerShell.

Изменение объектов в AD

Когда мы создаём объекты, мы определяем значения для атрибутов. После того как мы создали объекты, могут возникать ситуации, при которых нам потребуется изменять значения этих атрибутов или добавлять значения пустующих атрибутов.

Для изменения и добавления значений атрибутов мы можем использовать командлет Set-ADUser для уже имеющихся объектов AD пользователя:


Set-ADUser tidris -OfficePhone "0912291120" -City "London"
		

В своём предыдущем образце команды для своего пользователя tidris мы добавили значения -OfficePhone и -City.

Может случиться, что нам потребуется изменить имеющееся значение какого- то атрибута:


Set-ADUser tidris -OfficePhone "0112291120"
		

В своей предыдущей команде я заменил некое имеющееся значение новым.

Во всех вышеупомянутых командах я задал точную учётную запись конкретного пользователя, но это не практично, когда вам нужно сделать это для большого числа учётных записей. Для выполнения этого нам требуется сочетать командлет Set-ADUser c командлетом Get-ADUser. Это позволит нам вначале выполнить поиск объектов, а затем доставить в них изменения:


Get-ADUser -Filter * -SearchBase 'OU=Users,OU=Europe,DC=rebeladmin,DC=com' | Set-ADUser -City "London"
		

В приведённой выше команде мы нашли все объекты пользователей, расположенные в OU=Users,OU=Europe,DC=rebeladmin,DC=com и установили значением City London.


Get-ADUser -Filter {City -like "London"} | Set-ADUser -City "Kingston"
		

В предыдущем примере я нашёл всех тех пользователей в своём каталоге, которые имеют определённым значением London для City и изменил его на Kingston.

Сочетание запроса поиска с изменением объекта экономит кучу времени ручной работы и не является чем- то что мы можем просто выполнить при помощи инструментов графического интерфейса.

Значения объектов компьютера также можно добавлять/ изменять аналогичным образом. Для этого нам требуется применять командлет Set-ADComputer:


Set-ADComputer REBEL-PC-01 -Description "Sales Computer"
		

Наша предыдущая команда устанавливает значение объекта Description для компьютера с названием REBEL-PC-01.

Этот командлет также можно сочетать с запросом поиска при помощи командлета Get-ADComputer:


Get-ADComputer -Filter {Name -like "REBEL-PC-*"} | Set-ADComputer -Location "M35 Building"
		

В нашей предыдущей команде выполнялся поиск компьютеров с названием REBEL-PC и устанавливалось значение их местоположения M35 Building.

В графических инструментах ADAC и ADUC GUI имеется по- существу лишь двойной клик мышью и изменение текущих значений атрибутов. Там также допускается множественный выбор объектов и изменение конкретного значения атрибута одним махом.

[Замечание]Замечание

У нас нет возможности изменения уникальных значений атрибутов при множественном выборе. Например, мы не можем изменять имена пользователей для множества учётных записей. Однако, при помощи множественного выбора объектов, мы можем изменять определённые значений для общих атрибутов, например, City и Department.

Удаление объектов в AD

Для удаления некого объекта пользователя AD мы можем воспользоваться командлетом Remove-ADUser. Полные сведения относительно его синтаксиса можно выдать такой командой:


Get-Command Remove-ADUser -Syntax
		

При использовании этого командлета, для задания необходимой учётной записи нам требуется применять параметр -Identity. Мы можем применять отличительное название, GUI, SID или соответствующее значение SamAccountName для идентификации необходимой учётной записи. Когда это среда LDS, нам также требуется задать параметр раздела этого объекта:


Remove-ADUser -Identity "dzhang"
		

В своей предыдущей команде мы удалили объект пользователя AD с названием dzhang из текущего каталога. Перед удалением этого объекта будет выдан запрос на подтверждение операции.

Данный командлет также можно сочетать с поисковым запросом для поиска необходимого объекта перед его удалением:


Get-ADUser -Filter {Name -like "Test1*"} | Remove-ADUser
		

В своей предыдущей команде мы отыскали того пользователя, у которого имя начинается с Test1 во всём каталоге и затем удалили его.

Командлет Remove-ADComputer можно применять для удаления объектов компьютеров из текущего каталога:


Remove-ADComputer -Identity "REBEL-PC-01"
		

Наша предыдущая команда удалила объект компьютера REBEL-PC-01 из текущего каталога. Мы также можем сочетать её с запросом поиска:


Get-ADComputer -Filter * -SearchBase 'OU=Computers,OU=Europe,DC=rebeladmin,DC=com' | Remove-ADComputer
		

В нашей предыдущей команде мы отыскали объекты компьютеров в определённом OU и затем удалили найденные из общего каталога.

Инструменты ADAC и ADUC также можно использовать для удаления объектов из некого каталога. Их также можно применять с функцией поиска для определения местоположения особых объектов с последующим их удалением.

Поиск объектов в AD

База данных NTDS AD способна содержать более двух миллиардов объектов. Итак, насколько просто мы можем локализовать конкретный объект AD. Наиболее распространённый способ определение местоположения некого объекта в AD состоит в применении ADAC или ADUC и просмотре всех контейнеров. По мере роста общего числа объектов, становится достаточно сложным определять локализацию объектов в AD. В данном разделе мы намерены рассмотреть более действенные способы нахождения местоположения объектов в некой среде AD.

ADAC обладает расширенными возможностями запросов и фильтрации. Так как он применяется через графический интерфейс, это помогает нам быстрее делать выборку результатов по сравнению в PowerShell.

В его списке управления имеется блок фильтрации в самом верхнем разделе (после того как вы кликните по соответствующему названию домена в его панели навигации). Его представление не изменяется по мере того как вы перемещаетесь по своим контейнерам. Это помогает вам быстро фильтровать необходимые для отображения сведения в соответствующем списке управления. Однако, он не выполняет поиск объектов по множеству уровней (для различных дочерних контейнеров):

 

Рисунок 7-22


Поиск объектов AD

ADAC обладает функциональностью с названием Global Search, которую можно применять для поисков объектов во всём каталоге. Это делает возможным обычные текстовый поиск или расширенные запросы на основании LDAP (Lightweight Directory Access Protocol):

 

Рисунок 7-23


Глобальный поиск в ADAC

Давайте теперь посмотрим как выполнять поиски на основании LDAP. Данный метод также позволяет нам задать Scope (сферу) самого поиска:

 

Рисунок 7-24


Поиск на основе запросов LDAP

[Замечание]Замечание

При Normal (обычном) поиске вы можете применять текстовые шаблоны. Это может быть полное или частичное значение. При LDAP поиске нам требуется применять точный синтаксис. Применяя вариант Convert to LDAP, мы можем вырабатывать некий LDAP запрос из поиска Normal. Кроме того, применяя LDAP syntax help вы можете получать сведения об установленном синтаксисе LDAP и вариантах его применения.

Данная функция Global Search также доступна для доступа со страницы Overview.

В ADUC возможности поиска объектов крайне ограничены по сравнению с ADAC и PowerShell. Он имеет возможность Find..., которая позволяет нам определять местоположение объектов в имеющемся каталоге.

К ней можно получать доступ правым кликом мыши по любому контейнеру:

 

Рисунок 7-25


Поиск объектов при помощи ADUC

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

 

Рисунок 7-26


Результаты поиска

Инструменты ADUC и ADAC выступают самыми простыми способами поиска некого объекта в AD. Метод же PowerShell не просто позволяет нам отыскивать объекты, но также и сочетать поиск с дополнительными задачами, такими как экспорт файлов CSV для результатов поиска, изменение значений объекта, а также перемещение и удаление объектов AD. В своём следующем разделе мы намерены изучить как искать объекты с помощью PowerShell.

Поиск объектов при помощи PowerShell

В своём предыдущем разделе мы рассмотрели командлет Get-ADUser и Get-ADComputer и то как их можно применять с прочими командами для фильтрации объектов из AD. Их также можно применять для выборки определённых значений атрибутов из отфильтрованных объектов:


Get-ADUser -Identity user1 -Properties *
		

Наша предыдущая команда перечислит все те атрибуты и значения, которые ассоциированы с user1. Это поможет нам находить точные названия атрибутов и общие значения, которые мы можем применять для последующей фильтрации.

Допустим, мне требуется узнать значения для Name, UserPrincipalName и Modified всех своих пользователей. Следующая команда создаст некую таблицу с соответствующими атрибутами и их значениями:


Get-ADUser -Filter * -Properties Name,UserPrincipalName,Modified | ft Name,UserPrincipalName,Modified
		

Я могу наблюдать в данном списке некие учётные записи, которые являются учётными записями служб и администраторов. Я желаю видеть лишь учётные записи из офиса в Kingston:


Get-ADUser -Filter {City -like "Kingston"} -Properties Name,UserPrincipalName,Modified | ft Name,UserPrincipalName,Modified
		

Наша предыдущая команда фильтрует пользователей дополнительно при помощи значения для City.

Теперь у меня есть необходимый список сведений и я бы хотел экспортировать его в некий файл CSV для последующего применения таким образом:


Get-ADUser -Filter {City -like "Kingston"} -Properties Name,UserPrincipalName,Modified | select-object Name,UserPrincipalName,Modified | Export-csv -path C:\ADUSerList.csv
		

Данный пример демонстрирует как может быть построен некий поисковый запрос для выборки требуемых сведений.

Для поиска объектов на основе значения учётной записи и состояния пароля можно применять командлет Search-ADAccount. Полный синтаксис этого командлета можно получить с помощью такой команды:


Get-Command Search-ADAccount -Syntax
		

В качестве примера, ею можно воспользоваться для фильтрации блокированных учётных записей:


Search-ADAccount -LockedOut | FT Name,UserPrincipalName
		

Эта команда перечислит все блокированные учётные записи с их именами и UPN.

В отличии от графических инструментов, запросы PowerShell могут строиться для фильтрации точных объектов и сведений из AD. {Прим. пер.: дополнительные сведения относительно применения PowerShell вы можете найти в наших переводах PowerShell и Python сообща - настроены на цифровые расследования Чета Хосмера (Октябрь 2018, Apress), Книги рецептов Powershell Core 6.2 Жан-Эндрика Питерса (Апрель 2019, Packt Publisher) и 4го издания Книги рецептов автоматизации Windows Server при помощи PowerShell Томаса Ли (Июль 2021, Packt Publisher).}

Предотвращение неумышленного удаления объектов

При работе с объектами AD имеется возможность непредумышленного удаления объекта AD. При непредумышленном удалении объекта AD, воздействие на ваш бизнес будет зависеть от роли этого объекта AD. Например, когда удалена учётная запись для критически важной службы, воздействие на ведение дел будет выше чем при удалении учётной записи тестового пользователя. Начиная с Windows Server 2008 Microsoft ввела небольшую, но важную функциональную возможность для предотвращения внезапного удаления объекта AD. Это не решение для восстановления после сбоев, а решение для предотвращения сбоев. В каждом объекте AD, в закладке Object имеется небольшая кнопка флага установки этой функциональной возможности. Когда мы создаём объекты при помощи PowerShell она должна быть включена. Даже когда не применяется PowerShell, она всё ещё может быть в любой момент времени включена при помощи окна Object properties. При создании некого OU она включается по умолчанию:

 

Рисунок 7-27


Защита объектов от неумышленного удаления

Когда этот параметр включён, он теперь не позволяет вам удалять объект пока вы не запретите этот параметр:

 

Рисунок 7-28


Защита объектов от неумышленного удаления - сообщение об ошибке

Через PowerShell это можно сделать при помощи параметра -ProtectedFromAccidentalDeletion $true.

В качестве примера давайте рассмотрим как включать эту функциональную возможность для учётной записи конкретного пользователя:


Set-ADObject -Identity 'CN=Dishan Francis,DC=rebeladmin,DC=com' -ProtectedFromAccidentalDeletion $true
		

В своей предыдущей команде я разрешил функциональную возможность Protect object from accidental deletion для учётной записи пользователя Dishan Francis.

Когда мы создаём Организационные элементы (OU), это свойство будет включаться по умолчанию.

Корзина AD

Когда из AD удаляется некий объект, он не удаляется окончательно. Как только объект удаляется, система установит значение атрибута isDeleted в True и перемещает этот объект в CN=Deleted Objects:

 

Рисунок 7-29


Удалённый объект AD

Далее этот удалённый объект останется там пока система не достигнет значения времени жизни надгробия (tombstone lifetime). По умолчанию это 180 дней и, в случае необходимости, оно может быть изменено. Как только такой объект проходит значение времени жизни надгробия, он будет удалён окончательно.

Существенной функцией базы данных AD выступает дефрагментация в реальном времени. Этот процесс применяет службу сборки мусора для уничтожения удалённых объектов из своей базы данных AD и высвобождения пространства обратно в базу данных. Эта служба исполняется каждые 12 часов. Как только удалённый объект проходит значение времени жизни надгробия, этот объект окончательно уничтожается при следующем цикле обслуживания сборки мусора. Основная его проблема состоит в том, что на протяжении данной обработки надгробий большинство имеющихся значений объектов расщепляется. Поэтому, даже при восстановлении объектов значения атрибутов нуждались бы в повторном применении.

Начиная с Windows Server 2008 R2 Microsoft ввели функциональную возможность Корзины Active Directory (Active Directory Recycle Bin). Когда это свойство включено, при удалении объекта система устанавливает значение isDeleted в True и перемещает этот объект в CN=Deleted Object. Однако, вместо величины значения времени жизни надгробия, это теперь управляется величиной значения Deleted Object Lifetime (DOL). Атрибуты объекта для этого этапа остаются теми же самыми и они несложно восстанавливаются. По умолчанию, величина значения DOL равна величине значения времени жизни надгробия. Это значения может изменяться величиной значения атрибута msDS-deletedObjectLifetime. Когда достигается значение DOL удалённого объекта, ваша система устанавливает значение состояния соответствующего объекта Recycled и величина значения атрибута isRecycled устанавливается в True. Когда объект пребывает в этом состоянии мы не можем восстановить его и данный объект будет продолжать оставаться в этом состоянии пока не будет превышено значение времени жизни надгробия. После превышения значения времени жизни надгробия сама система удалит этот объект окончательно из AD.

[Замечание]Замечание

Функциональная возможность Корзины AD, как минимум, требует уровня функциональности домена и Леса Windows Server 2008 R2. После того как это свойство включено, оно не может быть отключено.

Эта функциональная возможность может быть разрешена при помощи следующей команды:


Enable-ADOptionalFeature 'Recycle Bin Feature' -Scope ForestOrConfigurationSet -Target rebeladmin.com
		

В нашей предыдущей команде -Target может быть заменён именем вашего домена.

После того как Recycle Bin Feature разрешена, мы можем восстанавливать удалённые объекты при помощи следующей команды:


Get-ADObject -filter 'isdeleted -eq $true' -includeDeletedObjects
		

Наша предыдущая команда выполняет поиск объектов, в которых атрибут isdeleted установлен в true.

После того как мы обнаружили удалённый объект, он может быть восстановлен при помощи такой команды:


Get-ADObject -Filter 'samaccountname -eq "dfrancis"' -IncludeDeletedObjects | Restore-ADObject
		

Эта предыдущая команда восстанавливает объект пользователя dfrancis.

Выводы

Для управления объектами AD существует множество разнообразных инструментов. В этой главе мы рассмотрели построенный Microsoft инструменты управления объектами AD. Абсолютно все инструменты имеют свои собственные свойства и мы изучили как применять их для действенного добавления, изменения и удаления объектов AD. Мы также изучили как мы можем применять различные инструменты и технологии для поиска определённых объектов AD и значений атрибутов. И последнее, но не в отношении значимости, мы рассмотрели функциональные возможности, которые мы можем применять для предотвращения неумышленного удаления объектов AD.

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