Администрирование active directory. Управление директорией Active Directory с помощью Windows PowerShell. Добавление учетных записей пользователя

Active Directory (AD) — это служебные программы, разработанные для операционной системы Microsoft Server. Первоначально создавалась в качестве облегченного алгоритма доступа к каталогам пользователей. С версии Windows Server 2008 появилось интеграция с сервисами авторизации.

Дает возможность соблюдать групповую политику, применяющую однотипность параметров и ПО на всех подконтрольных ПК с помощью System Center Configuration Manager.

Если простыми словами для начинающих – это роль сервера, которая позволяет из одного места управлять всеми доступами и разрешениями в локальной сети

Функции и предназначения

Microsoft Active Directory – (так называемый каталог) пакет средств, позволяющий проводить манипуляции с пользователями и данными сети. Основная цель создания – облегчение работы системных администраторов в обширных сетях.

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

Основные понятия, встречающиеся в ходе работы

Существует ряд специализированных понятий, которые применяются при работе с AD:

  1. Сервер – компьютер, содержащий все данные.
  2. Контроллер – сервер с ролью AD, который обрабатывает запросы от людей, использующих домен.
  3. Домен AD - совокупность устройств, объединенных под одним уникальным именем, одновременно использующих общую базу данных каталога.
  4. Хранилище данных — часть каталога, отвечающая за хранение и извлечение данных из любого контроллера домена.

Как работают активные директории

Основными принципами работы являются:

  • Авторизация , с помощью которой появляется возможность воспользоваться ПК в сети просто введя личный пароль. При этом, вся информация из учетной записи переносится.
  • Защищенность . Active Directory содержит функции распознавания пользователя. Для любого объекта сети можно удаленно, с одного устройства, выставить нужные права, которые будут зависеть от категорий и конкретных юзеров.
  • Администрирование сети из одной точки. Во время работы с Актив Директори сисадмину не требуется заново настраивать все ПК, если нужно изменить права на доступ, например, к принтеру. Изменения проводятся удаленно и глобально.
  • Полная интеграция с DNS . С его помощью в AD не возникает путаниц, все устройства обозначаются точно так же, как и во всемирной паутине.
  • Крупные масштабы . Совокупность серверов способна контролироваться одной Active Directory.
  • Поиск производится по различным параметрам, например, имя компьютера, логин.

Объекты и атрибуты

Объект - совокупность атрибутов, объединенных под собственным названием, представляющих собой ресурс сети.

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

“Сотрудник” – объект, который обладает атрибутами “ФИО”, “Должность” и “ТабN”.

Контейнер и имя LDAP

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

Основное их назначение — упорядочивание объектов по видам признаков. Чаще всего контейнеры применяют для группировки объектов с одинаковыми атрибутами.

Почти все контейнеры отображают совокупность объектов, а ресурсы отображаются уникальным объектом Active Directory. Один из главных видов контейнеров AD - модуль организации, или OU (organizational unit). Объекты, которые помещаются в этот контейнер, принадлежат только домену, в котором они созданы.

Облегченный протокол доступа к каталогам (Lightweight Directory Access Protocol, LDAP) - основной алгоритм подключений TCP/IP. Он создан с целью снизить количество нюанс во время доступа к службам каталога. Также, в LDAP установлены действия, используемые для запроса и редактирования данных каталога.

Дерево и сайт

Дерево доменов – это структура, совокупность доменов, имеющих общие схему и конфигурацию, которые образуют общее пространство имен и связаны доверительными отношениями.

Лес доменов – совокупность деревьев, связанных между собою.

Сайт - совокупность устройств в IP-подсетях, представляющая физическую модель сети, планирование которой совершается вне зависимости от логического представления его построения. Active Directory имеет возможность создания n-ного количества сайтов или объединения n-ного количества доменов под одним сайтом.

Установка и настройка Active Directory

Теперь перейдем непосредственно к настройке Active Directory на примере Windows Server 2008 (на других версиях процедура идентична):

Нажать на кнопку “ОК”. Стоит заметить, что подобные значения не обязательны. Можно использовать IP адрес и DNS из своей сети.

  • Далее нужно зайти в меню “Пуск”, выбрать “Администрирование” и “”.
  • Перейти к пункту “Роли”, выбрать поле “Добавить роли ”.
  • Выбрать пункт “Доменные службы Active Directory” дважды нажать “Далее”, а после “Установить”.
  • Дождаться окончания установки.
  • Открыть меню “Пуск”-“Выполнить ”. В поле ввести dcpromo.exe.
  • Кликнуть “Далее”.
  • Выбрать пункт “Создать новый домен в новом лесу ” и снова нажать “Далее”.
  • В следующем окне ввести название, нажать “Далее”.
  • Выбрать режим совместимости (Windows Server 2008).
  • В следующем окне оставить все по умолчанию.
  • Запустится окно конфигурации DNS . Поскольку на сервере он не использовался до этого, делегирование создано не было.
  • Выбрать директорию для установки.
  • После этого шага нужно задать пароль администрирования .

Для надежности пароль должен соответствовать таким требованиям:


После того как AD завершит процесс настройки компонентов, необходимо перезагрузить сервер.



Настройка завершена, оснастка и роль установлены в систему. Установить AD можно только на Windows семейства Server, обычные версии, например 7 или 10, могут позволить установить только консоль управления.

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

По умолчанию в Windows Server консоль Active Directory Users and Computers работает с доменом, к которому относится компьютер. Можно получить доступ к объектам компьютеров и пользователей в этом домене через дерево консоли или подключиться к другому контроллеру.

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

К слову, существует 2 типа групп в Актив Директори – безопасности и распространения. Группы безопасности отвечают за разграничение прав доступа к объектам, они могут использоваться, как группы распространения.

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

Что такое делегирование AD

Само делегирование — это передача части разрешений и контроля от родительского объекта другой ответственной стороне.

Известно, что каждая организация имеет в своем штабе несколько системных администраторов. Разные задачи должны возлагаться на разные плечи. Для того чтобы применять изменения, необходимо обладать правами и разрешениями, которые делятся на стандартные и особые. Особые — применимы к определенному объекту, а стандартные представляют собой набор, состоящий из существующих разрешений, которые делают доступными или недоступными отдельные функции.

Установка доверительных отношений

В AD есть два вида доверительных отношений: «однонаправленные» и «двунаправленные». В первом случае один домен доверяет другому, но не наоборот, соответственно первый имеет доступ к ресурсам второго, а второй не имеет доступа. Во втором виде доверие “взаимное”. Также существуют «исходящие» и «входящие» отношения. В исходящих – первый домен доверяет второму, таким образом разрешая пользователям второго использовать ресурсы первого.

При установке следует провести такие процедуры:

  • Проверить сетевые связи между котроллерами.
  • Проверить настройки.
  • Настроить разрешения имен для внешних доменов.
  • Создать связь со стороны доверяющего домена.
  • Создать связь со стороны контроллера, к которому адресовано доверие.
  • Проверить созданные односторонние отношения.
  • Если возникает небходимость в установлении двусторонних отношений – произвести установку.

Глобальный каталог

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

Глобальный каталог (ГК) включает в себя ограниченный набор атрибутов для каждого объекта леса в каждом домене. Данные он получает из всех разделов каталога доменов в лесу, они копируются с использованием стандартного процесса репликации службы Active Directory.

Схема определяет, будет ли атрибут скопирован. Существует возможность конфигурирования дополнительных характеристик , которые будут создаваться повторно в глобальном каталоге с помощью “Схемы Active Directory”. Для добавления атрибута в глобальный каталог, нужно выбрать атрибут репликации и воспользоваться опцией “Копировать”. После этого создастся репликация атрибута в глобальный каталог. Значение параметра атрибута isMemberOfPartialAttributeSet станет истиной.

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

Dsquery server –isgc

Репликация данных в Active Directory

Репликация — это процедура копирования, которую проводят при необходимости хранения одинаково актуальных сведений, существующих на любом контроллере.

Она производится без участия оператора . Существуют такие виды содержимого реплик:

  • Реплики данных создаются из всех существующих доменов.
  • Реплики схем данных. Поскольку схема данных едина для всех объектов леса Активных Директорий, ее реплики сохраняются на всех доменах.
  • Данные конфигурации. Показывает построение копий среди контроллеров. Сведения распространяются на все домены леса.

Основными типами реплик являются внутриузловая и межузловая.

В первом случае, после изменений система находится в ожидании, затем уведомляет партнера о создании реплики для завершения изменений. Даже при отсутствии перемен, процесс репликации происходит через определенный промежуток времени автоматически. После применения критических изменений к каталогам репликация происходит сразу.

Процедура репликации между узлами происходит в промежутках минимальной нагрузки на сеть, это позволяет избежать потерь информации.

Active Directory представляет собой службы для системного управления. Они являются намного лучшей альтернативой локальным группам и позволяют создать компьютерные сети с эффективным управлением и надёжной защитой данных.

Если вы не сталкивались ранее с понятием Active Directory и не знаете, как работают такие службы, эта статья для вас. Давайте разберёмся, что означает данное понятие, в чём преимущества подобных баз данных и как создать и настроить их для первоначального пользования.

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

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

В него включаются все объекты - компьютеры, принтеры, факсы, учётные записи пользователей и прочее. Сумма доменов, на которых расположены данные, именуется «лесом». База Active Directory - это доменная среда, где количество объектов может составлять до 2 миллиардов. Представляете эти масштабы?

То есть, при помощи такого «леса» или базы данных можно соединить большое количество сотрудников и оборудования в офисе, причём без привязки к месту - в службах могут быть соединены и другие юзеры, например, из офиса компании в другом городе.

Кроме того, в рамках служб Active Directory создаются и объединяются несколько доменов - чем больше компания, тем больше средств необходимо для контроля её техники в рамках базы данных .

Далее, при создании такой сети определяется один контролирующий домен, и даже при последующем наличии других доменов первоначальный по-прежнему остаётся «родительским» - то есть только он имеет полный доступ к управлению информацией.

Где хранятся эти данные, и чем обеспечивается существование доменов? Чтобы создать Active Directory, используются контроллеры. Обычно их ставится два - если с одним что-то произойдёт, информация будет сохранена на втором контроллере.

Ещё один вариант использования базы - если, например, ваша компания сотрудничает с другой, и вам предстоит выполнить общий проект. В таком случае может потребоваться доступ посторонних личностей к файлам домена, и здесь можно настроить своего рода «отношения» между двумя разными «лесами», открыть доступ к требуемой информации, не рискуя безопасностью остальных данных.

В общем, Active Directory является средством для создания базы данных в рамках определённой структуры, независимо от её размеров. Пользователи и вся техника объединяются в один «лес», создаются домены, которые размещаются на контроллерах.

Ещё целесообразно уточнить - работа служб возможна исключительно на устройствах с серверными системами Windows. Помимо этого, на контроллерах создаётся 3-4 сервера DNS. Они обслуживают основную зону домена, а в случае, когда один из них выходит из строя, его заменяют прочие серверы.

После краткого обзора Active Directory для чайников, вас закономерно интересует вопрос - зачем менять локальную группу на целую базу данных? Естественно, здесь поле возможностей в разы шире, а чтобы выяснить другие отличия данных служб для системного управления, давайте детальнее рассмотрим их преимущества.

Преимущества Active Directory

Плюсы Active Directory следующие:

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

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

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

Что касается определённого порядка в ведении записей, вы всегда можете поделить юзеров на группы - «Отдел кадров» или «Бухгалтерия».

Ещё проще в таком случае предоставлять доступ к информации - если нужно открыть папку для работников из одного отдела, вы делаете это через базу данных. Они вместе получают доступ к требуемой папке с данными, при этом для остальных документы так и остаются закрытыми.

  1. Контроль над каждым участником базы данных.

Если в локальной группе каждый участник независим, его трудно контролировать с другого компьютера, то в доменах можно установить определённые правила, соответствующие политике компании.

Вы как системный администратор можете задать настройки доступа и параметры безопасности, а после применить их для каждой группы пользователей. Естественно, в зависимости от иерархии, одним группам можно определить более жёсткие настройки, другим предоставить доступ к иным файлам и действиям в системе.

Кроме того, когда в компанию попадает новый человек, его компьютер сразу же получит нужный набор настроек, где включены компоненты для работы.

  1. Универсальность в установке программного обеспечения.

Кстати, о компонентах - при помощи Active Directory вы можете назначать принтеры, устанавливать необходимые программы сразу же всем сотрудникам, задавать параметры конфиденциальности. В общем, создание базы данных позволит существенно оптимизировать работу, следить за безопасностью и объединить юзеров для максимальной эффективности работы.

А если на фирме эксплуатируется отдельная утилита или специальные службы, их можно синхронизировать с доменами и упростить к ним доступ. Каким образом? Если объединить все продукты, использующиеся в компании, сотруднику не нужно будет вводить разные логины и пароли для входа в каждую программу - эти сведения будут общими.

Теперь, когда становятся понятными преимущества и смысл использования Active Directory, давайте рассмотрим процесс установки указанных служб.

Используем базу данных на Windows Server 2012

Установка и настройка Active Directory - весьма нетрудное дело, а также выполняется проще, чем это кажется на первый взгляд.

Чтобы загрузить службы, для начала необходимо выполнить следующее:

  1. Поменять название компьютера: нажмите на «Пуск», откройте Панель управления, пункт «Система». Выберите «Изменить параметры» и в Свойствах напротив строки «Имя компьютера» кликните «Изменить», впишите новое значение для главного ПК.
  2. Выполните перезагрузку по требованию ПК.
  3. Задайте настройки сети так:
    • Через панель управления откройте меню с сетями и общим доступом.
    • Откорректируйте настройки адаптера. Правой клавишей нажмите «Свойства» и откройте вкладку «Сеть».
    • В окне из списка кликните на протокол интернета под номером 4, опять нажмите на «Свойства».
    • Впишите требуемые настройки, например: IP-адрес - 192.168.10.252 , маска подсети - 255.255.255.0, основной подшлюз - 192.168.10.1.
    • В строке «Предпочтительный DNS-сервер» укажите адрес локального сервера, в «Альтернативном…» - другие адреса DNS-серверов.
    • Сохраните изменения и закройте окна.

Установите роли Active Directory так:

  1. Через пуск откройте «Диспетчер сервера».
  2. В меню выберите добавление ролей и компонентов.
  3. Запустится мастер, но первое окно с описанием можно пропустить.
  4. Отметьте строку «Установка ролей и компонентов», перейдите дальше.
  5. Выберите ваш компьютер, чтобы поставить на него Active Directory.
  6. Из списка отметьте роль, которую нужно загрузить - для вашего случая это «Доменные службы Active Directory».
  7. Появится небольшое окно с предложением загрузки необходимых для служб компонентов - примите его.
  8. После вам предложат установить другие компоненты - если они вам не нужны, просто пропустите этот шаг, нажав«Далее».
  9. Мастер настройки выведет окно с описаниями устанавливаемых вами служб - прочтите и двигайтесь дальше.
  10. Появиться перечень компонентов, которые мы собираемся установить - проверьте, всё ли верно, и если да, жмите на соответствующую клавишу.
  11. По завершении процесса закройте окно.
  12. Вот и всё - службы загружены на ваш компьютер.

Настройка Active Directory

Для настройки доменной службы вам нужно сделать следующее:

  • Запустите одноимённый мастер настройки.
  • Кликните на жёлтый указатель вверху окна и выберите «Повысить роль сервера до уровня контроллера домена».
  • Нажмите на добавление нового «леса» и создайте имя для корневого домена, затем кликните «Далее».
  • Укажите режимы работы «леса» и домена - чаще всего они совпадают.
  • Придумайте пароль, но обязательно запомните его. Перейдите далее.
  • После этого вы можете увидеть предупреждение о том, что домен не делегирован, и предложение проверить имя домена - можете пропустить эти шаги.
  • В следующем окне можно изменить путь к каталогам с базами данных - сделайте это, если они вам не подходят.
  • Теперь вы увидите все параметры, которые собираетесь установить - просмотрите, правильно ли выбрали их, и идите дальше.
  • Приложение проверит, выполняются ли предварительные требования, и если замечаний нет, или они некритичны, жмите «Установить».
  • После окончания инсталляции ПК самостоятельно перегрузиться.

Ещё вам может быть интересно, как добавить юзера в базу данных. Для этого воспользуйтесь меню «Пользователи или компьютеры Active Directory», которое вы найдёте в разделе «Администрирование» в панели управления, или эксплуатируйте меню настроек базы данных.

Чтобы добавить нового юзера, нажмите правой клавишей по названию домена, выберите «Создать», после «Подразделение». Перед вами появится окно, где нужно ввести имя нового подразделения - оно служит папкой, куда вы можете собирать пользователей по разным отделам. Таким же образом вы позже создадите ещё несколько подразделений и грамотно разместите всех сотрудников.

Далее, когда вы создали имя подразделения, нажмите на него правой клавишей мыши и выберите «Создать», после - «Пользователь». Теперь осталось только ввести необходимые данные и поставить настройки доступа для юзера.

Когда новый профиль будет создан, нажмите на него, выбрав контекстное меню, и откройте «Свойства». Во вкладке «Учётная запись» удалите отметку напротив «Заблокировать…». На этом всё.

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

Перезагрузить сервер.

Ввести пароль для режима восстановления службы каталога.

Подтвердить расположение папок для сохранения файлов AD.

Подтвердить NetBIOS имя домена.

7. Выбрать уровень безопасности для пользователей и групп:

· Разрешения совместимые с пред-Windows 2000 server – если в домене есть программы или службы, работающие на серверах под управлением Windows NT, или компьютер входит в домен под управлением Windows NT.

· Разрешения совместимые только с Windows 2000 server и Windows Server 2003 – если в домене работают только серверы под управлением Windows 2000 server и Windows Server 2003.

Для администрирования Active Directory применяется набор оснасток управления Active Directory. Он состоит из четырех оснасток:

1 Active Directory User and Computers (пользователи и компьютеры) – предназначена для администрирования учетных записей пользователей и компьютеров домена.

2 Active Directory Domains and Trusts (домены и доверие) – используется для установления доверительных отношений между доменами.

3 Active Directory Sites and Service (сайты и службы) – предназначена для управления сайтами и связями сайтов.

4 DNS – администрирование DNS-сервера, интегрированного в Active Directory.

Active Directory пользователи и компьютеры.

Учетные записи пользователей и учетные записи компьютеров Active Directory представляют собой такие же физические объекты, как компьютер или пользователь. Учетные записи пользователей также могут использоваться как записи выделенных служб для некоторых приложений.

Учетная запись пользователя – объект Active Directory, содержащий все сведения, определяющие пользователя в операционной системе Windows. К этим сведениям относятся:

· личные данные пользователя (ФИО, телефон, e-mail, почтовый адрес, сведения об организации);

· параметры учетной записи (имя пользователя и пароль, требуемые для входа пользователя в систему, срок действия учетной записи, управление паролем, параметры шифрования и проверки подлинности);

· имена групп, членом которых пользователь является;

· профиль пользователя (содержит сведения о настройках для конкретного пользователя, такие как настройки рабочего стола, постоянные сетевые подключения и параметры приложений);

· прочие сведения (профиль служб терминалов, удаленное управление, управление сеансом и др.).

Учетная запись компьютера - объект Active Directory, однозначно определяющий компьютер в домене. Учетная запись компьютера соответствует имени компьютера в домене. Компьютер, учетная запись которого добавлена в домен, может участвовать в выполнении сетевых операций, использующих содержимое Active Directory. Например, рабочая станция, добавленная в домен, получает возможность распознавать учетные записи и группы, существующие в Active Directory.



@ Компьютеры с операционными системами Windows 95, Windows 98 и Windows Me не имеют дополнительных функций безопасности и им не могут быть назначены учетные записи компьютеров.

Группа – это семейство учетных записей пользователей и компьютеров, контактов и других групп, которым можно управлять как единым целым. Пользователи и компьютеры, которые принадлежат к отдельной группе, называются членами группы. Группы в Active Directory являются объектами каталога, которые располагаются внутри объектов контейнера домена и подразделения.

Группы в Active Directory дают возможность:

· упрощать администрирование, назначая разрешения на общий ресурс для группы, а не для индивидуальных пользователей. Это обеспечивает одинаковый доступ к ресурсу для всех членов этой группы;

· делегировать администрирование, назначая права пользователям сразу для всей группы через групповую политику, а затем добавляя необходимых членов к группе, которые должны иметь те же права, что и группа;

Группы характеризуются их областью действия и типом. Область действия группы определяет диапазон, в котором применяется группа внутри домена или леса. Существуют три различные области действия: универсальная, глобальная и локальная доменная.

· Локальная доменная (локальная встроенная) – члены групп с локальной доменной областью действия могут включать другие группы и учетные записи из доменов Windows Server 2003, Windows 2000 или Windows NT, и им могут быть предоставлены разрешения только внутри домена.

@ Локальные доменные группы следует использовать для управления доступом к ресурсам в пределах одного домена.

· Глобальная – члены групп с глобальной областью действия могут включать другие группы и учетные записи только из домена, в котором определена группа, и им могут быть предоставлены разрешения в любом домене леса.

@ Группы с глобальной областью действия рекомендуется применять для управления теми объектами каталога, которые требуют ежедневной поддержки. Таковыми, например, являются учетные записи пользователей и компьютеров. Поскольку группы с глобальной областью действия не реплицируются за пределы своего домена, учетные записи, содержащиеся в таких группах, можно часто менять, не вызывая дополнительного трафика, связанного с репликацией в глобальный каталог.

· Универсальная - члены групп с универсальной областью действия могут включать другие группы и учетные записи из любого домена в дереве доменов или лесу, также им могут предоставляться разрешения в любом домене в составе дерева доменов или леса.

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


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

Группы безопасности – обеспечивают эффективное управление доступом к ресурсам сети. Использование групп безопасности позволяет выполнять следующие действия:

· Назначать права пользователя группе безопасности в Active Directory . Права пользователя, заданные для групп безопасности, определяют, что может делать член данной группы в области действий домена (или леса). Права пользователя автоматически задаются для групп безопасности во время установки Active Directory для помощи администраторам в определении роли административных пользователей в домене. Например, пользователь, добавленный в группу «Операторы архива» в Active Directory, получает возможность создавать архивы и восстанавливать файлы и каталоги на любом контроллере домена в домене. Можно задать права пользователей группе безопасности, используя групповую политику, для делегирования конкретных задач. При задании делегированных задач необходимо соблюдать осторожность. Неопытный пользователь, наделенный слишком большими правами в группе безопасности, потенциально может нанести серьезный урон сети.

· Назначать разрешения на использование ресурсов для групп безопасности . Не следует путать разрешения с правами пользователей. Разрешения задаются для групп безопасности, использующих общие ресурсы. Разрешения определяют, кто может получить доступ к данному ресурсу и уровень доступа, например полный доступ. Некоторые разрешения, установленные для объектов домена, автоматически задаются для различных уровней доступа группам по умолчанию, таким как «Операторы учета» или «Операторы домена». Дополнительные сведения о разрешениях см. в разделе Управление доступом в Active Directory.

@ Группы безопасности перечислены в избирательных таблицах управления доступом, которые определяют разрешения на ресурсы и объекты. Администраторам следует назначать разрешения для ресурсов (общих файлов, принтеров, и т. д.) группам безопасности, а не отдельным пользователям. Разрешения назначаются группе один раз, вместо назначения прав каждому отдельному пользователю. Каждая учетная запись при добавлении к группе получает права, заданные данной группе в Active Directory, и разрешения, определенные для данной группы на ресурсе.

Группы распространения – используются только приложениями электронной почты для отправки сообщений электронной почты группам пользователей. Группы распространения не используют систему безопасности, иначе говоря, они не могут быть включены в избирательные таблицы управления доступом (DACL). Если группа создается для контроля доступа к общим ресурсам, эта группа должна быть группой безопасности.

@ Группы безопасности также могут использоваться в качестве адресатов электронной почты, как и группы распространения. Сообщение электронной почты, отправленное группе, отправляется всем членам группы.

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

(Анонимный вход, Все, Сеть, Интерактивные)

Например, группа «Все» представляет всех текущих пользователей сети, включая гостей и пользователей из других доменов. Дополнительные сведения см. в разделе Специальные удостоверения.

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

· проверка подлинности пользователя или компьютера.

· разрешение или запрещение доступа к ресурсам домена.

· администрирование других участников безопасности (для представления участника безопасности из внешнего доверенного домена).

· аудит действий, выполняемых с использованием учетной записи пользователя или компьютера.

Для назначения прав одновременно большому числу пользователей используются группы безопасности. Учетные записи могут группироваться с использованием организационных единиц (контейнеров).

Для обеспечения безопасности проверки подлинности пользователя следует создавать отдельные учетные записи для каждого пользователя сети, применяя для этого оснастку «Active Directory пользователи и компьютеры ».

Каждая учетная запись пользователя Active Directory имеет ряд параметров, относящихся к безопасности и определяющих, как производится проверка подлинности данной учетной записи при входе в сеть.

Посвященную использования PowerShell для администрирования AD. В качестве исходного пункта автор решил взять 10 типичных задач администрирования AD и рассмотреть то, как их можно упростить, используя PowerShell:

  1. Сбросить пароль пользователя
  2. Активировать и деактивировать учетные записи
  3. Разблокировать учетную запись пользователя
  4. Удалить учетную запись
  5. Найти пустые группы
  6. Добавить пользователей в группу
  7. Вывести список членов группы
  8. Найти устаревшие учетные записи компьютеров
  9. Деактивировать учетную запись компьютера
  10. Найти компьютеры по типу

Помимо этого автор ведет блог (по PowerShell, конечно), рекомендуем заглянуть - jdhitsolutions.com/blog . А самое актуальное Вы можете получить из его твиттера twitter.com/jeffhicks .
Итак, ниже приводим перевод статьи “Top 10 Active Directory Tasks Solved with PowerShell”.

Управление Active Directory (AD) с помощью Windows PowerShell – это проще, чем Вы думаете, и я хочу доказать Вам это. Вы можете просто взять приведенные ниже скрипты и с их помощью решить ряд задач по управлению AD.

Требования

Чтобы использовать PowerShell для управления AD, нужно соблюсти несколько требований. Я собираюсь продемонстрировать, как командлеты для AD работают на примере компьютера на Windows 7.
Чтобы использовать командлеты, контроллер домена у Вас должен быть уровня Windows Server 2008 R2, или же Вы можете скачать и установить Active Directory Management Gateway Service на наследуемых контроллерах домена (legacy DCs). Внимательно прочитайте документацию перед установкой; требуется перезагрузка КД.
На стороне клиента, скачайте и установите (RSAT) либо для Windows 7 , либо для Windows 8 . В Windows 7, Вам необходимо будет открыть в Панели управления (Control Panel) раздел Программы (Programs) и выбрать Включить или выключить функции Windows (Turn Windows Features On or Off) . Найдите Remote Server Administration Tools и раскройте раздел Role Administration Tools . Выберите подходящие пункты для AD DS and AD LDS Tools, особенно обратите внимание на то, что должен быть выбран пункт Active Directory Module for Windows PowerShell , как показано на рисунке 1. (В Windows 8 все инструменты выбраны по умолчанию). Теперь мы готовы работать.

Рис.1 Включение AD DS и AD LDS Tools

Я вошел в систему под учетной записью с правами доменного администратора. Большинство командлетов, которые я буду показывать, позволят Вам уточнить альтернативные полномочия (credentials). В любом случае я рекомендую прочитать справку (Get-Help ) и примеры, которые я буду демонстрировать ниже.
Начните сессию PowerShell и импортируйте модуль:

PS C:\> Import-Module ActiveDirectory

В результате импорта создается новый PSDrive, но мы не будем использовать его. Однако, Вы можете посмотреть, какие команды имеются в импортированном модуле.

PS C:\> get-command -module ActiveDirectory

Прелесть этих команд в том, что если я могу использовать команду для одного объекта AD, то ее можно использовать для 10, 100 и даже 1000. Посмотрим, как некоторые из этих командлетов работают.

Задача 1: Сброс пароля пользователя

Давайте начнем с типичной задачи: сброс пароля пользователя. Сделать это легко и просто можно через командлет Set-ADAccountPassword . Сложная часть заключается в том, что новый пароль должен быть уточнен как защищенная строка: фрагмент текста, который зашифрован и хранится в памяти на протяжении PowerShell сессии. Во-первых, создадим переменную с новым паролем:
PS C:\> $new=Read-Host "Enter the new password" -AsSecureString

Затем, введем новый пароль:

Теперь мы можем извлечь учетную запись (использование samAccountname – лучший вариант) и задать новый пароль. Вот пример для пользователя Jack Frost:

PS C:\> Set-ADAccountPassword jfrost -NewPassword $new

К сожалению, в случае с этим командлетом наблюдается баг: -Passthru , -Whatif , и –Confirm не работают. Если Вы предпочитаете короткий путь, попробуйте следующее:

PS C:\> Set-ADAccountPassword jfrost -NewPassword (ConvertTo-SecureString -AsPlainText -String "P@ssw0rd1z3" -force)

В итоге мне необходимо, чтобы Jack сменил пароль при следующем входе в систему, и я модифицирую учетную запись используя Set-ADUser .

PS C:\> Set-ADUser jfrost -ChangePasswordAtLogon $True

Результаты выполнения командлета не пишутся в консоль. Если это необходимо сделать, используйте –True . Но я могу узнать, успешно или нет прошла операция, произведя извлечения имени пользователя с помощью командлета Get-ADUser и уточнив свойство PasswordExpired , как показано на рисунке 2.


Рис. 2. Результаты работы командлета Get-ADUser Cmdlet со свойством PasswordExpired

Итог: сбросить пароль пользователя с помощью PowerShell совсем не сложно. Признаюсь, что сбросить пароль также просто через оснастку Active Directory Users and Computers консоли Microsoft Management Console (MMC). Но использование PowerShell подходит в том случае, если Вам необходимо делегировать задачу, Вы не хотите разворачивать вышеупомянутую оснастку или сбрасываете пароль в ходе большого автоматизированного ИТ-процесса.

Задача 2: Активировать и деактивировать учетные записи

А теперь давайте деактивируем учетную запись. Продолжим работать с Jack Frost. Этот код использует параметр –Whatif , который Вы можете встретить в других комадлетах, которые осуществляют изменения, чтобы проверить мою команду не запуская ее.

PS C:\> Disable-ADAccount jfrost -whatif What if: Performing operation "Set" on Target "CN=Jack Frost, OU=staff,OU=Testing,DC=GLOBOMANTICS,DC=local".

А теперь деактивируем по-настоящему:

PS C:\> Disable-ADAccount jfrost

А когда настанет время активировать учетную запись, какой командлет нам поможет?

PS C:\> Enable-ADAccount jfrost

Эти командлеты могут быть использованы в конвейерном выражении (pipelined expression), позволяя активировать или деактивировать столько учетных записей, сколько душе угодно. Например, этот код деактивирует все учетные записи в отделе продаж (Sales)

PS C:\> get-aduser -filter "department -eq "sales"" | disable-adaccount

Конечно, писать фильтр для Get-ADUser довольно-таки сложно, но именно здесь использование параметра –Whatif вместе с командлетом Disable-ADAccount приходит на помощь.

Задача 3: Разблокировать учетную запись пользователя

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

PS C:\> Unlock-ADAccount jfrost

Командлет также поддерживает параметры -Whatif и -Confirm .

Задача 4: Удалить учетную запись

Неважно, сколько пользователей Вы удаляете, - это просто осуществить с помощью командлета Remove-ADUser . Мне не хочется удалять Jack Frost, но если бы я захотел, то использовал бы такой код:

PS C:\> Remove-ADUser jfrost -whatif What if: Performing operation "Remove" on Target "CN=Jack Frost,OU=staff,OU=Testing,DC=GLOBOMANTICS,DC=local".

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

PS C:\> get-aduser -filter "enabled -eq "false"" -property WhenChanged -SearchBase "OU=Employees, DC=Globomantics,DC=Local" | where {$_.WhenChanged -le (Get-Date).AddDays(-180)} | Remove-ADuser -whatif

С помощью этой команды будут найдены и удалены все деактивованные учетные записи подразделения (OU) Employees, которые не менялись в течение 180 и более дней.

Задача 5: Поиск пустых групп

Управление группами – занятие бесконечное и неблагодарное. Существует множество способов найти пустые группы. Некоторые выражения могут работать лучше, чем другие, в зависимости от Вашей организации. Код, приведенный ниже, позволит найти все группы в домене, включая встроенные (built-in).

PS C:\> get-adgroup -filter * | where {-Not ($_ | get-adgroupmember)} | Select Name

Если у Вас есть группы с сотнями членов, тогда использование этой команды может занять много времени; Get-ADGroupMember проверяет каждую группу. Если Вы можете ограничить или настроить, это будет лучше.
Вот еще один подход:

PS C:\> get-adgroup -filter "members -notlike "*" -AND GroupScope -eq "Universal"" -SearchBase "OU=Groups,OU=Employees,DC=Globomantics, DC=local" | Select Name,Group*

Эта команда находит все универсальные группы (Universal groups), которые не имеют членство в OU Groups и выводит некоторые из свойств. Результат приведен на рисунке 3.


Рис. 3. Поиск и фильтрация универсальных групп

Задача 6: Добавление пользователей в группу

Давайте добавим Jack Frost в группу Chicago IT:

PS C:\> add-adgroupmember "chicago IT" -Members jfrost

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

PS C:\> Add-ADGroupMember "Chicago Employees" -member (get-aduser -filter "city -eq "Chicago"")

Я использовал вводное конвейерное выражение (parenthetical pipelined expression), чтобы найти всех пользователей, у которых имеется свойство City в Chicago. Код в скобках выполняется, и полученные объекты передаются в параметр –Member. Каждый пользовательский объект добавляется в группу Chicago Employees. Неважно, имеем ли мы дело с 5 или 5000 пользователей, обновление членства в группах занимает всего несколько секунд. Это выражение может также быть написано с использованием ForEach-Object , что может быть удобнее:

PS C:\> Get-ADUser -filter "city -eq "Chicago"" | foreach {Add-ADGroupMember "Chicago Employees" -Member $_}

Задача 7: Выводим список членов группы

Вы возможно захотите узнать, кто находится в определенной группе. Например, Вы должны периодически узнавать, кто входит в группу доменных администраторов (Domain Admins):

PS C:\> Get-ADGroupMember "Domain Admins"

На рисунке 4 приведен результат.


Рис. 4. Члены группы Domain Admins

Командлет выводит объект AD для каждого члена группы. А что делать с вложенными группами? Моя группа Chicago All Users является коллекцией вложенных групп. Чтобы получить список всех учетных записей, я всего лишь должен использовать параметр –Recursive .

PS C:\> Get-ADGroupMember "Chicago All Users" -Recursive | Select DistinguishedName

Если Вы хотите пойти другим путем – найти, в каких группах пользователь состоит, - используйте свойство пользователя MemberOf :

PS C:\> get-aduser jfrost -property Memberof | Select -ExpandProperty memberOf CN=NewTest,OU=Groups,OU=Employees, DC=GLOBOMANTICS,DC=local CN=Chicago Test,OU=Groups,OU=Employees, DC=GLOBOMANTICS,DC=local CN=Chicago IT,OU=Groups,OU=Employees, DC=GLOBOMANTICS,DC=local CN=Chicago Sales Users,OU=Groups,OU=Employees, DC=GLOBOMANTICS,DC=local

Я использовал параметр -ExpandProperty , чтобы вывести имена MemberOf как строки.

Задача 8: Найти устаревшие учетные записи компьютеров

Мне часто задают этот вопрос: “Как найти устаревшие учетные записи компьютеров?”. И я всегда отвечаю: “А что для вас является устаревшим?” Компании по-разному определяют то, когда учетная запись компьютера (или пользователя, неважно), признается устаревшей и не подлежит дальнейшему использованию. Что касается меня, то я обращаю внимание на те учетные записи, у которых пароли не менялись в течение определенного периода времени. Этот период для меня составляет 90 дней – если компьютер не сменил пароль вместе с доменом за этот период, скорее всего он находится оффлайн и является устаревшим. Используется командлет Get-ADComputer :

PS C:\> get-adcomputer -filter "Passwordlastset -lt "1/1/2012"" -properties *| Select name,passwordlastset

Фильтр замечательно работает с жестким значением, но этот код будет обновляться для всех учетных записей компьютеров, которые не изменили своих паролей с 1 января 2012 года. Результаты приведены на рисунке 5.


Рис. 5. Находим устаревшие учетные записи компьютеров

Другой вариант: предположим, вы хотя бы на функциональном уровне домена Windows 2003. Поставьте фильтр по свойству LastLogontimeStamp . Это значение – число 100 наносекундных интервалов с 1 января, 1601 года, и храниться в GMT, поэтому работа с этим значением слегка сложно:

PS C:\> get-adcomputer -filter "LastlogonTimestamp -gt 0" -properties * | select name,lastlogontimestamp, @{Name="LastLogon";Expression={::FromFileTime ($_.Lastlogontimestamp)}},passwordlastset | Sort LastLogonTimeStamp


Рис. 6. Конвертируем значение LastLogonTimeStamp в привычный формат

Чтобы создать фильтр, мне необходимо конвертировать дату, например, 1 января 2012, в корректный формат. Конвертация осуществляется в FileTime:

PS C:\> $cutoff=(Get-Date "1/1/2012").ToFileTime() PS C:\> $cutoff 129698676000000000

Теперь я могу использовать эту переменную в фильтре для Get-ADComputer :

PS C:\> Get-ADComputer -Filter "(lastlogontimestamp -lt $cutoff) -or (lastlogontimestamp -notlike "*")" -property * | Select Name,LastlogonTimestamp,PasswordLastSet

Приведённый код находит те же самые компьютеры, что были показаны на рисунке 5.

Задача 9: Деактивировать учетную запись компьютера

Возможно, когда Вы найдете неактивные или устаревшие учетные записи, Вы захотите деактировать их. Сделать это довольно просто. Мы будем использовать тот же командлет, что использовали в работе с учетными записями пользователей. Вы можете уточнить его, использовав samAccountname учетной записи.

PS C:\> Disable-ADAccount -Identity "chi-srv01$" -whatif What if: Performing operation "Set" on Target "CN=CHI-SRV01, CN=Computers,DC=GLOBOMANTICS,DC=local".

Или же использовав конвейерное выражение:

PS C:\> get-adcomputer "chi-srv01" | Disable-ADAccount

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

PS C:\> get-adcomputer -filter "Passwordlastset -lt "1/1/2012"" -properties *| Disable-ADAccount

Задача 10: Найти компьютеры по типу

Мне также часто задают вопрос, как найти учетные записи компьютеров по типу, например, серверы или рабочие станции. С вашей стороны это требует определенной креативности. В AD нет ничего такого, чтобы отличало сервер от клиента, разве что ОС. Если Ваш компьютер работает под Windows Server 2008, придется слегка сделать несколько дополнительных действий.
Для начала необходимо получить список ОС, а затем осуществляем фильтрацию учетных записей по имеющимся ОС.

PS C:\> Get-ADComputer -Filter * -Properties OperatingSystem | Select OperatingSystem -unique | Sort OperatingSystem

Результаты показаны на рисунке 7.


Рис. 7. Извлечение списка ОС

Я хочу найти все компьютеры, на которых стоит серверная ОС:

PS C:\> Get-ADComputer -Filter "OperatingSystem -like "*Server*"" -properties OperatingSystem,OperatingSystem ServicePack | Select Name,Op* | format-list

Результаты приведены на рисунке 8.

Как и другими командлетами AD Get, Вы можете настроить поисковые параметры и ограничить запрос отдельными OU, если это необходимо. Все выражения, которые я показал, могут быть интегрированы в большие PowerShell выражения. Например, Вы можете сортировать, группировать, применять фильтры, экспортировать в CSV или создавать и отправлять на почту HTML отчеты – и все это из PowerShell! При этом Вам не придется писать ни единого скрипа.
Вот Вам бонус: отчет о возрасте пароля пользователя (user password-age report), сохраненный в HTML файле:

PS C:\> Get-ADUser -Filter "Enabled -eq "True" -AND PasswordNeverExpires -eq "False"" -Properties PasswordLastSet,PasswordNeverExpires,PasswordExpired | Select DistinguishedName,Name,pass*,@{Name="PasswordAge"; Expression={(Get-Date)-$_.PasswordLastSet}} |sort PasswordAge -Descending | ConvertTo-Html -Title "Password Age Report" | Out-File c:\Work\pwage.htm

Хотя это выражение может выглядеть слегка пугающим, при минимальном знании PowerShell им легко воспользоваться. И остается лишь последний совет: как определить кастомное свойство под названием PasswordAge . Значение представляет собой промежуток между сегодняшним днем и свойством PasswordLastSet. Затем я сортирую результаты для моего нового свойства. На рисунке 9 показан выход для моего небольшого тестового домена.

Upd:
В посте приведен перевод статьи на портале

Посвященную использования PowerShell для администрирования AD. В качестве исходного пункта автор решил взять 10 типичных задач администрирования AD и рассмотреть то, как их можно упростить, используя PowerShell:

  1. Сбросить пароль пользователя
  2. Активировать и деактивировать учетные записи
  3. Разблокировать учетную запись пользователя
  4. Удалить учетную запись
  5. Найти пустые группы
  6. Добавить пользователей в группу
  7. Вывести список членов группы
  8. Найти устаревшие учетные записи компьютеров
  9. Деактивировать учетную запись компьютера
  10. Найти компьютеры по типу

Помимо этого автор ведет блог (по PowerShell, конечно), рекомендуем заглянуть - jdhitsolutions.com/blog . А самое актуальное Вы можете получить из его твиттера twitter.com/jeffhicks .
Итак, ниже приводим перевод статьи “Top 10 Active Directory Tasks Solved with PowerShell”.

Управление Active Directory (AD) с помощью Windows PowerShell – это проще, чем Вы думаете, и я хочу доказать Вам это. Вы можете просто взять приведенные ниже скрипты и с их помощью решить ряд задач по управлению AD.

Требования

Чтобы использовать PowerShell для управления AD, нужно соблюсти несколько требований. Я собираюсь продемонстрировать, как командлеты для AD работают на примере компьютера на Windows 7.
Чтобы использовать командлеты, контроллер домена у Вас должен быть уровня Windows Server 2008 R2, или же Вы можете скачать и установить Active Directory Management Gateway Service на наследуемых контроллерах домена (legacy DCs). Внимательно прочитайте документацию перед установкой; требуется перезагрузка КД.
На стороне клиента, скачайте и установите (RSAT) либо для Windows 7 , либо для Windows 8 . В Windows 7, Вам необходимо будет открыть в Панели управления (Control Panel) раздел Программы (Programs) и выбрать Включить или выключить функции Windows (Turn Windows Features On or Off) . Найдите Remote Server Administration Tools и раскройте раздел Role Administration Tools . Выберите подходящие пункты для AD DS and AD LDS Tools, особенно обратите внимание на то, что должен быть выбран пункт Active Directory Module for Windows PowerShell , как показано на рисунке 1. (В Windows 8 все инструменты выбраны по умолчанию). Теперь мы готовы работать.

Рис.1 Включение AD DS и AD LDS Tools

Я вошел в систему под учетной записью с правами доменного администратора. Большинство командлетов, которые я буду показывать, позволят Вам уточнить альтернативные полномочия (credentials). В любом случае я рекомендую прочитать справку (Get-Help ) и примеры, которые я буду демонстрировать ниже.
Начните сессию PowerShell и импортируйте модуль:

PS C:\> Import-Module ActiveDirectory

В результате импорта создается новый PSDrive, но мы не будем использовать его. Однако, Вы можете посмотреть, какие команды имеются в импортированном модуле.

PS C:\> get-command -module ActiveDirectory

Прелесть этих команд в том, что если я могу использовать команду для одного объекта AD, то ее можно использовать для 10, 100 и даже 1000. Посмотрим, как некоторые из этих командлетов работают.

Задача 1: Сброс пароля пользователя

Давайте начнем с типичной задачи: сброс пароля пользователя. Сделать это легко и просто можно через командлет Set-ADAccountPassword . Сложная часть заключается в том, что новый пароль должен быть уточнен как защищенная строка: фрагмент текста, который зашифрован и хранится в памяти на протяжении PowerShell сессии. Во-первых, создадим переменную с новым паролем:
PS C:\> $new=Read-Host "Enter the new password" -AsSecureString

Затем, введем новый пароль:

Теперь мы можем извлечь учетную запись (использование samAccountname – лучший вариант) и задать новый пароль. Вот пример для пользователя Jack Frost:

PS C:\> Set-ADAccountPassword jfrost -NewPassword $new

К сожалению, в случае с этим командлетом наблюдается баг: -Passthru , -Whatif , и –Confirm не работают. Если Вы предпочитаете короткий путь, попробуйте следующее:

PS C:\> Set-ADAccountPassword jfrost -NewPassword (ConvertTo-SecureString -AsPlainText -String "P@ssw0rd1z3" -force)

В итоге мне необходимо, чтобы Jack сменил пароль при следующем входе в систему, и я модифицирую учетную запись используя Set-ADUser .

PS C:\> Set-ADUser jfrost -ChangePasswordAtLogon $True

Результаты выполнения командлета не пишутся в консоль. Если это необходимо сделать, используйте –True . Но я могу узнать, успешно или нет прошла операция, произведя извлечения имени пользователя с помощью командлета Get-ADUser и уточнив свойство PasswordExpired , как показано на рисунке 2.


Рис. 2. Результаты работы командлета Get-ADUser Cmdlet со свойством PasswordExpired

Итог: сбросить пароль пользователя с помощью PowerShell совсем не сложно. Признаюсь, что сбросить пароль также просто через оснастку Active Directory Users and Computers консоли Microsoft Management Console (MMC). Но использование PowerShell подходит в том случае, если Вам необходимо делегировать задачу, Вы не хотите разворачивать вышеупомянутую оснастку или сбрасываете пароль в ходе большого автоматизированного ИТ-процесса.

Задача 2: Активировать и деактивировать учетные записи

А теперь давайте деактивируем учетную запись. Продолжим работать с Jack Frost. Этот код использует параметр –Whatif , который Вы можете встретить в других комадлетах, которые осуществляют изменения, чтобы проверить мою команду не запуская ее.

PS C:\> Disable-ADAccount jfrost -whatif What if: Performing operation "Set" on Target "CN=Jack Frost, OU=staff,OU=Testing,DC=GLOBOMANTICS,DC=local".

А теперь деактивируем по-настоящему:

PS C:\> Disable-ADAccount jfrost

А когда настанет время активировать учетную запись, какой командлет нам поможет?

PS C:\> Enable-ADAccount jfrost

Эти командлеты могут быть использованы в конвейерном выражении (pipelined expression), позволяя активировать или деактивировать столько учетных записей, сколько душе угодно. Например, этот код деактивирует все учетные записи в отделе продаж (Sales)

PS C:\> get-aduser -filter "department -eq "sales"" | disable-adaccount

Конечно, писать фильтр для Get-ADUser довольно-таки сложно, но именно здесь использование параметра –Whatif вместе с командлетом Disable-ADAccount приходит на помощь.

Задача 3: Разблокировать учетную запись пользователя

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

PS C:\> Unlock-ADAccount jfrost

Командлет также поддерживает параметры -Whatif и -Confirm .

Задача 4: Удалить учетную запись

Неважно, сколько пользователей Вы удаляете, - это просто осуществить с помощью командлета Remove-ADUser . Мне не хочется удалять Jack Frost, но если бы я захотел, то использовал бы такой код:

PS C:\> Remove-ADUser jfrost -whatif What if: Performing operation "Remove" on Target "CN=Jack Frost,OU=staff,OU=Testing,DC=GLOBOMANTICS,DC=local".

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

PS C:\> get-aduser -filter "enabled -eq "false"" -property WhenChanged -SearchBase "OU=Employees, DC=Globomantics,DC=Local" | where {$_.WhenChanged -le (Get-Date).AddDays(-180)} | Remove-ADuser -whatif

С помощью этой команды будут найдены и удалены все деактивованные учетные записи подразделения (OU) Employees, которые не менялись в течение 180 и более дней.

Задача 5: Поиск пустых групп

Управление группами – занятие бесконечное и неблагодарное. Существует множество способов найти пустые группы. Некоторые выражения могут работать лучше, чем другие, в зависимости от Вашей организации. Код, приведенный ниже, позволит найти все группы в домене, включая встроенные (built-in).

PS C:\> get-adgroup -filter * | where {-Not ($_ | get-adgroupmember)} | Select Name

Если у Вас есть группы с сотнями членов, тогда использование этой команды может занять много времени; Get-ADGroupMember проверяет каждую группу. Если Вы можете ограничить или настроить, это будет лучше.
Вот еще один подход:

PS C:\> get-adgroup -filter "members -notlike "*" -AND GroupScope -eq "Universal"" -SearchBase "OU=Groups,OU=Employees,DC=Globomantics, DC=local" | Select Name,Group*

Эта команда находит все универсальные группы (Universal groups), которые не имеют членство в OU Groups и выводит некоторые из свойств. Результат приведен на рисунке 3.


Рис. 3. Поиск и фильтрация универсальных групп

Задача 6: Добавление пользователей в группу

Давайте добавим Jack Frost в группу Chicago IT:

PS C:\> add-adgroupmember "chicago IT" -Members jfrost

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

PS C:\> Add-ADGroupMember "Chicago Employees" -member (get-aduser -filter "city -eq "Chicago"")

Я использовал вводное конвейерное выражение (parenthetical pipelined expression), чтобы найти всех пользователей, у которых имеется свойство City в Chicago. Код в скобках выполняется, и полученные объекты передаются в параметр –Member. Каждый пользовательский объект добавляется в группу Chicago Employees. Неважно, имеем ли мы дело с 5 или 5000 пользователей, обновление членства в группах занимает всего несколько секунд. Это выражение может также быть написано с использованием ForEach-Object , что может быть удобнее:

PS C:\> Get-ADUser -filter "city -eq "Chicago"" | foreach {Add-ADGroupMember "Chicago Employees" -Member $_}

Задача 7: Выводим список членов группы

Вы возможно захотите узнать, кто находится в определенной группе. Например, Вы должны периодически узнавать, кто входит в группу доменных администраторов (Domain Admins):

PS C:\> Get-ADGroupMember "Domain Admins"

На рисунке 4 приведен результат.


Рис. 4. Члены группы Domain Admins

Командлет выводит объект AD для каждого члена группы. А что делать с вложенными группами? Моя группа Chicago All Users является коллекцией вложенных групп. Чтобы получить список всех учетных записей, я всего лишь должен использовать параметр –Recursive .

PS C:\> Get-ADGroupMember "Chicago All Users" -Recursive | Select DistinguishedName

Если Вы хотите пойти другим путем – найти, в каких группах пользователь состоит, - используйте свойство пользователя MemberOf :

PS C:\> get-aduser jfrost -property Memberof | Select -ExpandProperty memberOf CN=NewTest,OU=Groups,OU=Employees, DC=GLOBOMANTICS,DC=local CN=Chicago Test,OU=Groups,OU=Employees, DC=GLOBOMANTICS,DC=local CN=Chicago IT,OU=Groups,OU=Employees, DC=GLOBOMANTICS,DC=local CN=Chicago Sales Users,OU=Groups,OU=Employees, DC=GLOBOMANTICS,DC=local

Я использовал параметр -ExpandProperty , чтобы вывести имена MemberOf как строки.

Задача 8: Найти устаревшие учетные записи компьютеров

Мне часто задают этот вопрос: “Как найти устаревшие учетные записи компьютеров?”. И я всегда отвечаю: “А что для вас является устаревшим?” Компании по-разному определяют то, когда учетная запись компьютера (или пользователя, неважно), признается устаревшей и не подлежит дальнейшему использованию. Что касается меня, то я обращаю внимание на те учетные записи, у которых пароли не менялись в течение определенного периода времени. Этот период для меня составляет 90 дней – если компьютер не сменил пароль вместе с доменом за этот период, скорее всего он находится оффлайн и является устаревшим. Используется командлет Get-ADComputer :

PS C:\> get-adcomputer -filter "Passwordlastset -lt "1/1/2012"" -properties *| Select name,passwordlastset

Фильтр замечательно работает с жестким значением, но этот код будет обновляться для всех учетных записей компьютеров, которые не изменили своих паролей с 1 января 2012 года. Результаты приведены на рисунке 5.


Рис. 5. Находим устаревшие учетные записи компьютеров

Другой вариант: предположим, вы хотя бы на функциональном уровне домена Windows 2003. Поставьте фильтр по свойству LastLogontimeStamp . Это значение – число 100 наносекундных интервалов с 1 января, 1601 года, и храниться в GMT, поэтому работа с этим значением слегка сложно:

PS C:\> get-adcomputer -filter "LastlogonTimestamp -gt 0" -properties * | select name,lastlogontimestamp, @{Name="LastLogon";Expression={::FromFileTime ($_.Lastlogontimestamp)}},passwordlastset | Sort LastLogonTimeStamp


Рис. 6. Конвертируем значение LastLogonTimeStamp в привычный формат

Чтобы создать фильтр, мне необходимо конвертировать дату, например, 1 января 2012, в корректный формат. Конвертация осуществляется в FileTime:

PS C:\> $cutoff=(Get-Date "1/1/2012").ToFileTime() PS C:\> $cutoff 129698676000000000

Теперь я могу использовать эту переменную в фильтре для Get-ADComputer :

PS C:\> Get-ADComputer -Filter "(lastlogontimestamp -lt $cutoff) -or (lastlogontimestamp -notlike "*")" -property * | Select Name,LastlogonTimestamp,PasswordLastSet

Приведённый код находит те же самые компьютеры, что были показаны на рисунке 5.

Задача 9: Деактивировать учетную запись компьютера

Возможно, когда Вы найдете неактивные или устаревшие учетные записи, Вы захотите деактировать их. Сделать это довольно просто. Мы будем использовать тот же командлет, что использовали в работе с учетными записями пользователей. Вы можете уточнить его, использовав samAccountname учетной записи.

PS C:\> Disable-ADAccount -Identity "chi-srv01$" -whatif What if: Performing operation "Set" on Target "CN=CHI-SRV01, CN=Computers,DC=GLOBOMANTICS,DC=local".

Или же использовав конвейерное выражение:

PS C:\> get-adcomputer "chi-srv01" | Disable-ADAccount

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

PS C:\> get-adcomputer -filter "Passwordlastset -lt "1/1/2012"" -properties *| Disable-ADAccount

Задача 10: Найти компьютеры по типу

Мне также часто задают вопрос, как найти учетные записи компьютеров по типу, например, серверы или рабочие станции. С вашей стороны это требует определенной креативности. В AD нет ничего такого, чтобы отличало сервер от клиента, разве что ОС. Если Ваш компьютер работает под Windows Server 2008, придется слегка сделать несколько дополнительных действий.
Для начала необходимо получить список ОС, а затем осуществляем фильтрацию учетных записей по имеющимся ОС.

PS C:\> Get-ADComputer -Filter * -Properties OperatingSystem | Select OperatingSystem -unique | Sort OperatingSystem

Результаты показаны на рисунке 7.


Рис. 7. Извлечение списка ОС

Я хочу найти все компьютеры, на которых стоит серверная ОС:

PS C:\> Get-ADComputer -Filter "OperatingSystem -like "*Server*"" -properties OperatingSystem,OperatingSystem ServicePack | Select Name,Op* | format-list

Результаты приведены на рисунке 8.

Как и другими командлетами AD Get, Вы можете настроить поисковые параметры и ограничить запрос отдельными OU, если это необходимо. Все выражения, которые я показал, могут быть интегрированы в большие PowerShell выражения. Например, Вы можете сортировать, группировать, применять фильтры, экспортировать в CSV или создавать и отправлять на почту HTML отчеты – и все это из PowerShell! При этом Вам не придется писать ни единого скрипа.
Вот Вам бонус: отчет о возрасте пароля пользователя (user password-age report), сохраненный в HTML файле:

PS C:\> Get-ADUser -Filter "Enabled -eq "True" -AND PasswordNeverExpires -eq "False"" -Properties PasswordLastSet,PasswordNeverExpires,PasswordExpired | Select DistinguishedName,Name,pass*,@{Name="PasswordAge"; Expression={(Get-Date)-$_.PasswordLastSet}} |sort PasswordAge -Descending | ConvertTo-Html -Title "Password Age Report" | Out-File c:\Work\pwage.htm

Хотя это выражение может выглядеть слегка пугающим, при минимальном знании PowerShell им легко воспользоваться. И остается лишь последний совет: как определить кастомное свойство под названием PasswordAge . Значение представляет собой промежуток между сегодняшним днем и свойством PasswordLastSet. Затем я сортирую результаты для моего нового свойства. На рисунке 9 показан выход для моего небольшого тестового домена.

Upd:
В посте приведен перевод статьи на портале