Основные командлеты PowerShell для управления Active Direct

  1. Как создать тестовый домен
  2. Изучение домена с помощью PowerShell
  3. Создание и работа с пользователями

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

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

В этой статье мы рассмотрим некоторые основы работы с группами и учетными записями Active Directory с помощью PowerShell. Вы узнаете, как добавлять учетные записи, удалять их и редактировать их членство в группах. Мы также рассмотрим, как искать и находить информацию об этих учетных записях и о самом домене.
Но сначала давайте начнем с того, как создать тестовый домен, с которым можно поиграться, используя PowerShell 5 и его доступ по умолчанию к ресурсам галереи PowerShell и конфигурации требуемого состояния (DSC). Это для того, чтобы мы играли в безопасной обстановке.

Как создать тестовый домен

Не волнуйтесь, эти шаги очень просты благодаря DSC и PowerShell Gallery. Начните с создания виртуальной машины Windows Server 2012 R2 (VM). Мы создадим наши в Azure, но вы можете решить, где создать свои. Azure позволяет легко изолировать виртуальные машины в отдельных сетях и не подвергать риску что-либо делать в производственной сети, что может раздражать людей.

Если вы используете PowerShell 5, вы получаете доступ к галерее PowerShell по умолчанию. Если вы еще не используете Powershell 5, скачайте его для своей виртуальной машины с этого Страница центра загрузки Microsoft , После установки выполните приведенный ниже скрипт для установки модуля xActiveDirectory .

Install-Module xActiveDirectory

После установки модуля вы можете использовать скрипт из этого превосходного сообщение в блоге Эшли Макглоун о том, как настроить новый контроллер домена с нуля с помощью одного скрипта. Не забудьте настроить буквы дисков в соответствии с текущей средой и установить имя домена, которое вы хотите использовать. Я изменил мой на ADTestDomain.com только потому, что AdamTheAutomator.com слишком длинный для имени NetBios.

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

Изучение домена с помощью PowerShell

Для начала давайте получим некоторую базовую информацию о нашем новом домене, выполнив командлет Get-AdDomain .

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

PowerShell расскажет вам все, что вы хотите знать о домене, и чтобы понять, что доступно, мы можем использовать командлет Get-Command , чтобы показать нам все командлеты, которые используют глагол Get.

PowerShell расскажет вам все, что вы хотите знать о домене, и чтобы понять, что доступно, мы можем использовать командлет Get-Command , чтобы показать нам все командлеты, которые используют глагол Get

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

Давайте используем Get-ADUser, чтобы найти его

Ооо Мы уже столкнулись с чем-то неожиданным. Это легко исправить, хотя. Если подумать, в большинстве доменов мы не хотим возвращать каждого отдельного пользователя в домене, поэтому Get-ADUSer всегда требует какой-то фильтр, когда вы его используете. Давай еще раз попробуем.

Мы можем либо вызвать Get-ADUser и дать ему одно имя пользователя, либо предоставить фильтр для поиска нескольких учетных записей. Любой из них будет работать, но я буду использовать синтаксис фильтра, чтобы мы могли видеть, как это выглядит.

Параметр фильтра может быть нацелен на любое из свойств, которые вы видите в этом списке, и будет использовать некоторые стандартные операторы сравнения PowerShell со значением, которое вы вводите для второй части фильтра. Я говорю некоторые, потому что не все операторы сравнения поддерживаются параметром –Filter . Чтобы увидеть, что я имею в виду, выполните следующий скрипт для подробного описания.

Get-Help Get-ADUser - Фильтр параметров

Свойства, которые вы видите здесь, на самом деле являются лишь некоторыми из свойств этого типа объекта. Если вы добавите параметр -Properties *, вы сможете получить полный список доступных свойств.
Теперь, когда мы увидели синтаксис фильтра, вам не всегда нужно вводить весь фильтр, чтобы найти пользователя. Вы можете просто позвонить в Get-ADUserabertram, если знаете конкретного пользователя, на которого хотите посмотреть.

Следующее, что мы можем захотеть найти, это группы. Получение групп так же просто, как и поиск пользователей, если вы используете Get-ADGroup , поэтому давайте посмотрим, как найти членство в группе пользователей.
Командлет для их поиска использует немного другое имя; это называется Get-ADPrincipalGroupMembership . Командлет ссылается на администратора AD вместо пользователя, потому что о компьютерах можно говорить так же легко, как и о пользователях. Чтобы проиллюстрировать это, мы найдем членство в группах текущего компьютера.

Чтобы проиллюстрировать это, мы найдем членство в группах текущего компьютера

Создание и работа с пользователями

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

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

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

Теперь мы добавим пользователей с помощью следующего скрипта.

Теперь мы добавим пользователей с помощью следующего скрипта

Как видите, если бы у нас было что-то вроде csv-файла с пользователями и группами, в которые мы хотели бы добавить их, мы могли бы очень быстро добавить множество пользователей. Я кое-что забыл, хотя. Если вы явно не помечаете учетные записи как включенные при их создании, то по умолчанию они отключены.
Нам потребуется использовать командлет Set-ADUser , чтобы включить их, но нет необходимости делать это один за другим. Используйте скрипт, подобный приведенному ниже, чтобы найти их и направить их в Set-ADUser и сразу включить их все.

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

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

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

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

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

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

Затем мы можем повторно активировать учетную запись Алана, просто используя командлет Enable-ADAccount .

Enable-ADAccountATuringQA

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

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

Remove-ADGroupMember -Идентификационный тестАдминистраторы -Members ATuringTest

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

Вместо этого, если мы можем сформулировать какое-то общее утверждение типа «пользователи Dev или Test не должны быть администраторами, а только учетными записями отдела контроля качества», то мы можем выразить это в виде сценария, подобного приведенному ниже

Этот сценарий будет работать, но вы можете заметить и удивиться, почему мы не просто направили результаты команды Get-ADUser напрямую в Remove-ADGroupMember. Ответ связан с тем, какие параметры для этого командлета будут принимать входные данные конвейера, а какие - нет.
Если мы посмотрим на справочную информацию для командлета с помощью Get-Help, то увидим, что параметр –Members не принимает входные данные конвейера или подстановочные знаки для фильтрации.

Если мы посмотрим на справочную информацию для командлета с помощью Get-Help, то увидим, что параметр –Members не принимает входные данные конвейера или подстановочные знаки для фильтрации

Решение найдено в том же выводе Get-Help, где мы видим, что он примет массив объектов ADPrinciple, обозначенный как [TypeName []] для его типа ввода.
Вы также можете получить эту небольшую подсказку, используя клавиши со стрелками, чтобы перейти к параметру –Members, когда меню Intellisense открыто, и всплывающая подсказка даст вам информацию о типе ввода, как на скриншоте ниже.

Вы также можете получить эту небольшую подсказку, используя клавиши со стрелками, чтобы перейти к параметру –Members, когда меню Intellisense открыто, и всплывающая подсказка даст вам информацию о типе ввода, как на скриншоте ниже

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

Get-ADPrincipalGroupMembership -Identity ghoppertest

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

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

Проблема, как вы можете видеть из вышеприведенного вывода, состоит в том, что если мы используем конвейер для этого, наш вывод знает только о группах, возвращаемых Get-ADPrincipalGroupMemberships, и ничего о том, с какой учетной записью он имеет дело.
Результатом является список групп без информации о том, какой пользователь вызвал эту группу в списке. Например, TestAdministrators появляются в приведенном выше листинге только один раз, но сам по себе листинг не показывает нам, какой пользователь является членом этой группы, только то, что в нем только один участник. Чтобы это исправить, мы можем сгенерировать своего рода отчет, используя скрипт ниже.

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

Теперь, когда вы знакомы с основами, ознакомьтесь с некоторыми более сложными темами, касающимися Active Directory и PowerShell. Вы можете начать с эта статья о Эй, автор сценариев! Блог Это все о схеме Active Directory и о том, как управлять ею с помощью PowerShell.

О школе
О школе

О школе

Школа была открыта в 1959г. Первые выпускники были выпущены в 1966 г. Учредителем является МНО РТ, Горисполком. Координаты школы: Республика Татарстан, 420012, г. Казань, ул. Муштари д.6.
История

История

Школа № 18 была создана в 1959 году, как первая школа в республике Татарстан с углублённым изучением английского языка. Реформирование школьного образования проводится в школе по
Похожие новости /   Комментарии

    Обновления сайта

    Здравствуйте. Сегодня наконец то мы обновили наш сайт. Теперь на сайте доступны библиотеки для чтения, Вы всегда можете задать вопрос администратору сайта. Получить консультацию на все интересующие вопросы. Ознакомится с новыми событиями и новостями. В дальнейшем сайт будет наполнятся свежими новостями и статьями.

    О школе

    Школа была открыта в 1959г. Первые выпускники были выпущены в 1966 г. Учредителем является МНО РТ, Горисполком. Координаты школы: Республика Татарстан, 420012, г. Казань, ул. Муштари д.6. Полное название- Средняя школа №18 с углублённым изучением английского языка Директор: Шевелёва Надия Магсутовна. Научный руководитель: Русинова Сазида Исмагиловна,

    История

    Школа № 18 была создана в 1959 году, как первая школа в республике Татарстан с углублённым изучением английского языка. Реформирование школьного образования проводится в школе по эволюционному пути, избегая резких преобразований, опасных в этой системе человеческой деятельности. С этой целью 7 лет школа работала в условиях экспериментальной площадки, где