У цій статті ми розглянемо можливості PowerShell з управління групами домену Active Directory. Ми розглянемо, як створити нову групу в AD, додати в неї користувачів (або видалити), вивести список користувачів групи і кілька інших корисних дії з доменними групами, які надзвичайно корисні при повсякденному адмініструванні. Для управління групами AD в модулі PowerShell для Active Directory є наступні основні командлети:

Для використання даних командлетів у вашій сесії PowerShell повинен бути завантажений спеціальний модуль взаємодії з AD – Модуль Active Directory для Windows PowerShell. Даний модуль вперше був представлений в Windows Server 208 R2. У Windows Server 2012 і вище цей модуль включений за замовчуванням. На клієнтських комп’ютерах його можна встановити і включити в якості одного з компонентів RSAT. Перевірити, завантажений чи модуль можна так:

Get-Module -Listavailable

проверака наявності модуля activedirectory

Як ви бачите, модуль ActiveDirectory завантажений. Якщо немає – імпортуйте його командою:

Import-Module activedirectory

Повний список команд модуля можна отримати так:

Get-Command -Module ActiveDirectory

У модулі всього доступно 147 командлетів, з яких з групами можуть працювати 11.

Get-Command -Module ActiveDirectory -Name "*Group*"

Ось їх список:

командлети PowerShell для керування групами Active Directory

  • Add-ADGroupMember
  • Add-ADPrincipalGroupMembership
  • Get-ADAccountAuthorizationGroup
  • Get-ADGroup
  • Get-ADGroupMember
  • Get-ADPrincipalGroupMembership
  • New-ADGroup
  • Remove-ADGroup
  • Remove-ADGroupMember
  • Видалити-ADPrincipalGroupMembership
  • Set-ADGroup

New-ADGroup – створюємо нову групу AD

Створимо нову групу в зазначеному контейнері (OU) Active Directory за допомогою команди New-ADGroup:

New-ADGroup "TestADGroup" -path 'OU=Groups,OU=Moscow,DC=corp,dc=winitpro,DC=ru' -GroupScope Global -PassThru –Verbose

За допомогою атрибута Опис можна задати опис групи, а за допомогою DisplayName змінити ім’я.

New-ADGroup - створюємо нову групу AD

параметром GroupScope можна задати один з наступних типів груп:

  • 0 = DomainLocal
  • 1 = Глобальний
  • 2 = Універсальний

Створити групу поширення можна так:

New-ADGroup "TestADGroup-Distr" -path 'OU=Groups,OU=Moscow,DC=corp,dc=winitpro,DC=ru' -GroupCategory Distribution -GroupScope Global -PassThru –Verbose

Add-AdGroupMember – додати користувачів до групи AD

Додати користувачів до групи Active Directory можна за допомогою командлета Add-AdGroupMember. Додамо в нову групу двох користувачів:

Add-AdGroupMember -Identity TestADGroup -Члени користувача1, користувача2

Add-AdGroupMember

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

Формат CSV файлу такий (список користувачів по одному в рядку, ім’я стовпця – users)

додати в групу AD користувачів з csv файлу

Import-CSV .users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity ‘TestADGroup’ -members $_.users}

Щоб отримати всіх членів однієї групи (groupA) і додати їх в іншу групу (groupB), скористайтеся такою командою:

Get-ADGroupMember “GroupA” | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “Group-B” -Members $_}

У тому випадку, якщо потрібно скопіювати в нову групу і членів всіх вкладених груп (рекурсивно), потрібно скористатися такою командою:

Get-ADGroupMember -Identity “GroupA” -Recursive | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “GroupB” -Members $_}

Remove-ADGroupMember – видалити користувачів з групи

Для видалення користувачів з групи AD потрібно використовувати командує Remove-ADGroupMember. Видалимо з групи двох користувачів:

Remove-ADGroupMember -Identity TestADGroup -Members user1, user2

Підтвердіть видалення користувачів з групи:

Remove-ADGroupMember

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

Імпорт-CSV. Users.csv -Головні користувачі | ForEach-Object {Remove-ADGroupMember -Identity ‘TestADGroup’ -members $ _. Users}

Get-ADGroup – отримати інформацію про групу AD

Отримати інформацію про групу допоможе командлет Get-ADGroup:

Get-ADGroup 'TestADGroup'

Даная команда виводить інформацію про основні атрибути групи (DN, тип групи, ім’я, SID). Щоб вивести значення всіх атрибутів групи домену AD, виконайте таку команду:

Get-ADGroup 'TestADGroup' -properties *

Get-ADGroup інформація про групу AD

Як ви бачите, тепер стали відображатися такі атрибути, як час створення і модифікації групи, опис і т.д.

За допомогою командлета Get-ADGroup можна знайти всі ваші групи за певним шаблоном. Наприклад, потрібно знайти всі групи AD, в імені яких міститься фраза адміністратори :

Get-ADGroup -LDAPFilter “(name=*admins*)” | Format-Table

Get-ADGroupMember – вивести список користувачів групи AD

Вивести на екран список користувачів групи:

Get-ADGroupMember 'TestADGroup'

Щоб залишити в результатах тільки імена користувачів, виконайте:

Get-ADGroupMember 'TestADGroup'| ft name

Get-ADGroupMember - отримати список членів групи Active Directory

Якщо до цієї групи включені інші групи домену, щоб вивести повний список членів, в тому числі всіх вкладених груп, скористайтеся параметром Рекурсивний.

Get-ADGroupMember ‘server-admins' -recursive| ft name

Щоб вивантажити список облікових записів, що складаються в певній групі в CSV файл (для подальшого використання в Excel), виконайте таку команду:

Get-ADGroupMember ‘server-admins' -recursive| ft samaccountname| Out-File c:psadmins.csv

Щоб додати в текстовий файл дані облікових записів користувачів в AD, скористаємося Командлети Get-ADUser. Наприклад, крім облікового запису потрібно вивести посаду і телефон користувача групи:

Get-ADGroupMember -Identity ’server-admins’ -recursive| foreach { Get-ADUser $_ -properties title, OfficePhone|Select-Object title, OfficePhone }

Порахувати кількість користувачів в групі можна так:

(Get-ADGroupMember -Identity 'domain admins').Count

Виявилося, що в групі «domain admins» у нас складається 7 облікових записів адміністраторів.

Get-ADGroupMember количесвто користувачів в групі

Щоб знайти список порожніх груп в певному OU, скористайтеся такою командою:

Get-ADGroup -Filter * -Properties Members -searchbase “OU=Moscow,DC=corp,dc=winitpro,DC=ru”  | where {-not $_.members} | select Name

Leave a Reply

Your email address will not be published. Required fields are marked *