Управление группами Active Directory с помощью PowerShell: Полное руководство

В качестве администратора системы Windows, управление группами Active Directory (AD) вероятно, является чем-то, что вы делаете каждый день. Хотя вы можете использовать оснастку Active Directory Users and Computers (ADUC), что происходит, когда вам нужно управлять группами в нескольких доменах или автоматизировать задачи управления группами? Вот здесь на помощь приходит PowerShell.

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

Предварительные требования

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

  • Компьютер с Windows (Windows 10/11 или Windows Server), присоединенный к домену Active Directory
  • Учетная запись пользователя с правами для управления группами AD

Запрос групп AD с помощью PowerShell

Начнем с распространенного сценария – вы новый IT-администратор в компании и вам нужно провести аудит структуры групп AD. Ваш менеджер хочет знать, какие группы существуют в разных отделах. Команда Get-ADGroup станет вашим лучшим другом здесь.

Поиск групп по имени

Наверное, самой простой задачей является поиск групп, содержащих определенный текст в их названии. Например, чтобы найти все группы с “Sales” в названии:

Get-ADGroup -Filter 'Name -like "Sales"'

Звездочки (*) являются подстановочными знаками, соответствующими любым символам до или после слова “Sales”. Эта команда вернет все группы, в названии которых есть “Sales”.

Фильтрация по типу группы

Возможно, вы хотите видеть только группы безопасности (а не группы рассылки). Вы можете добавить дополнительные критерии фильтрации, используя оператор -and:

Get-ADGroup -Filter 'Name -like "Sales" -and GroupCategory -eq "Security"'

Теперь вы будете видеть только группы безопасности, в названии которых есть “Sales”.

Поиск в конкретных OU

Нужно найти группы в определенной организационной единице (OU)? Используйте параметр SearchBase:

Get-ADGroup -Filter * -SearchBase 'OU=Engineering,DC=company,DC=local'

Эта команда находит все группы в OU Инженерии и его дочерних OU.

Поиск недавно созданных групп

Хотите увидеть, какие группы были созданы после определенной даты? Отфильтруйте по атрибуту whenCreated:

Get-ADGroup -Filter 'whenCreated -ge "2023-01-01"'

Это вернет все группы, созданные 1 января 2023 года или позже.

Создание новых групп AD

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

Создание группы безопасности

Вот как создать новую группу безопасности для сотрудников IT-поддержки:

New-ADGroup -Name "IT_Support" `
            -GroupScope Global `
            -GroupCategory Security `
            -Description "Group for IT support staff" `
            -Path "OU=IT,DC=company,DC=local"

Это создает глобальную группу безопасности под названием “IT_Support” в организационной единице IT.

Создание группы рассылки

Нужна группа рассылки по электронной почте? Просто измените несколько параметров:

New-ADGroup -Name "Marketing_News" `
            -GroupScope DomainLocal `
            -GroupCategory Distribution `
            -Description "Group for receiving marketing updates" `
            -Path "OU=Marketing,DC=company,DC=local"

Создание нескольких групп одновременно

Есть несколько похожих групп для создания? Используйте цикл:

$regions = "North", "South", "East", "West"
foreach ($region in $regions) {
    New-ADGroup -Name "Sales_$region" `
                -GroupScope Global `
                -GroupCategory Security `
                -Description "Sales team for $region region" `
                -Path "OU=Sales,DC=company,DC=local"
}

Изменение существующих групп

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

Переименование групп

Чтобы переименовать группу, вам нужно изменить как ее имя, так и samAccountName:

# Сначала переименуйте объект группы
Get-ADGroup EngineeringTeam | Rename-ADObject -NewName TechTeam

# Затем обновите samAccountName
Get-ADGroup EngineeringTeam | Set-ADGroup -SamAccountName TechTeam

Обновление описаний групп

Необходимо обновить описание группы? Одна строка с Set-ADGroup:

Get-ADGroup TechTeam | Set-ADGroup -Description 'Technical Team for Engineering Projects'

Изменение области группы

Если вам нужно изменить область группы (например, с Глобальной на Универсальную):

Get-ADGroup TechTeam | Set-ADGroup -GroupScope Universal

Советы профессионалов

Вот несколько советов, чтобы сделать управление вашими AD группами еще более эффективным:

    1. Всегда используйте `-Filter` вместо `-Identity`, когда запрашиваете несколько групп – это более эффективно

    1. Помните, что область группы не может быть изменена, если в группе есть участники – сначала удалите участников

    1. Используйте параметр `-WhatIf`, когда вносите изменения, чтобы предварительно просмотреть, что произойдет

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

Резюме

Теперь у вас должна быть надежная основа для управления группами AD с помощью PowerShell. Хотя оснастка Active Directory Users and Computers подходит для разовых задач, PowerShell дает вам возможность автоматизировать и управлять группами в большом масштабе.

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

Хотите узнать больше о PowerShell для Active Directory? Ознакомьтесь с нашими другими руководствами:

Source: https://adamtheautomator.com/powershell-ad-groups-guide/