Управлявайте AD групите с PowerShell

В тази статия ще разгледаме способността на PowerShell да управлява групи домейни на Active Directory. Ще разгледаме как да създадем нова група в AD, да добавим потребители към нея (или да я изтрием), ще посочим потребителите на групата и няколко други полезни действия с групи домейни, които са изключително полезни при ежедневното администриране. Следните основни командлети са достъпни за управление на AD групи в PowerShell за Active Directory:

Съдържание:

  • New-ADGroup - създайте нова AD група
  • Add-AdGroupMember - добавяне на потребители към AD групата
  • Remove-ADGroupMember - премахване на потребители от група
  • Get-ADGroup - получите информация за AD групата
  • Get-ADGroupMember - изброява потребителите на AD групата

За да използвате тези командлети във вашата PowerShell сесия, трябва да бъде зареден специален модул за взаимодействие с AD - Модул Active Directory за Windows PowerShell. Този модул е ​​представен за първи път в Windows Server 208 R2. В Windows Server 2012 и по-нови версии този модул е ​​активиран по подразбиране. Може да бъде инсталиран и активиран на клиентски компютри като един от RSAT компонентите. Можете да проверите дали модулът е зареден, както следва:

Get-module -листно достъпно

Както можете да видите, модулът ActiveDirectory се зарежда. Ако не, го импортирайте с командата:

Импорт-модул activedirectory

Пълен списък на командни модули може да се получи така:

Get-Command -Module ActiveDirectory

Модулът съдържа общо 147 cmdlets, от които 11 могат да работят с групи.

Get-Command -Module ActiveDirectory -Name "* Група *"

Ето списък от тях:

  • Add-ADGroupMember
  • Add-ADPrincipalGroupMembership
  • Get-ADAccountAuthorizationGroup
  • Get-на Adgroup
  • Get-ADGroupMember
  • Get-ADPrincipalGroupMembership
  • Нова като рекламната група
  • Премахване-на Adgroup
  • Remove-ADGroupMember
  • Remove-ADPrincipalGroupMembership
  • Set-на Adgroup

New-ADGroup - създайте нова AD група

Създайте нова група в посочения контейнер на Active Directory (OU) с помощта на командата Нова като рекламната група:

New-ADGroup "TestADGroup" -path "OU = Групи, OU = Москва, DC = corp, dc = winitpro, DC = ru" -GroupScope Global -PassThru -Verbose

Използване на атрибут описание можете да зададете описание на групата и с DisplayName промяна на показваното име.

параметър GroupScope Можете да посочите един от следните типове групи:

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

Можете да създадете група за разпространение, както следва:

New-ADGroup "TestADGroup-Distr" -path "OU = Групи, OU = Москва, DC = corp, dc = winitpro, DC = ru" -GroupCategory Distribution -GroupScope Global -PassThru -Verbose

Add-AdGroupMember - добавяне на потребители към AD групата

Можете да добавите потребители в групата на Active Directory, като използвате командлета Add.-AdGroupMember. Добавете двама потребители в новата група:

Add-AdGroupMember -Identity TestADGroup -Членци user1, user2

Ако списъкът на потребителите, които искате да добавите към групата, е доста голям, можете да запишете списъка с акаунти в CSV файл, след това да импортирате този файл и да добавите всеки потребител към групата.

Форматът на CSV файла е следният (списък на потребителите по един на ред, име на колоната - потребители)

Импортиране на CSV. \ Users.csv -Хедери потребители | ForEach-Object Add-AdGroupMember -Identity 'TestADGroup' -членки $ _. Потребители

За да получите всички членове на една група (groupA) и да ги добавите към друга група (groupB), използвайте тази команда:

Get-ADGroupMember „GroupA” | Вземете ADUser | ForEach-Object Add-ADGroupMember -Идентичност „Group-B“ -членки $ _

Ако искате да копирате членовете на всички вложени групи (рекурсивно) в нова група, трябва да използвате следната команда:

Get-ADGroupMember -Идентичност "GroupA" -рекурсивен | Вземете ADUser | ForEach-Object Add-ADGroupMember -Идентичност „GroupB” -Членове $ _

Remove-ADGroupMember - премахване на потребители от група

За да премахнете потребителите от AD група, трябва да използвате командата Remove-ADGroupMember. Премахваме двама потребители от групата:

Премахване-ADGroupMember -Идентичност TestADGroup -Членци user1, user2

Потвърдете премахването на потребителите от групата:

Ако искате да премахнете от групата потребител списък от CSV файл, използвайте тази команда:

Импортиране на CSV. \ Users.csv -Хедери потребители | ForEach-Object Remove-ADGroupMember -Identity 'TestADGroup' -членки $ _. Потребители

Get-ADGroup - получите информация за AD групата

Cmdlet ще ви помогне да получите информация за групата. Get-на Adgroup:

Get-ADGroup 'TestADGroup'

Тази команда показва информация за основните атрибути на групата (DN, тип група, име, SID). За да покажете стойността на всички атрибути на AD домейн групата, изпълнете следната команда:

Get-ADGroup 'TestADGroup' -properties *

Както можете да видите, вече атрибути като създаване на група и време за модификация, описание и т.н..

С помощта на командлета Get-ADGroup можете да намерите всички интересуващи ви групи по определен шаблон. Например, трябва да намерите всички групи AD, чието име съдържа фразата администраторите :

Get-ADGroup -LDAPFilter “(име = * администратори *)” | Формат-таблица

Get-ADGroupMember - изброява потребителите на AD групата

Показване на списъка с групови потребители:

Get-ADGroupMember 'TestADGroup'

За да оставите само потребителски имена в резултатите, направете:

Get-ADGroupMember 'TestADGroup' | ft име

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

Get-ADGroupMember 'сървър-администратор' -рекурсивен | ft име

За да качите списък на акаунти, които са в определена група, в CSV файл (за по-нататъшно използване в Excel), изпълнете следната команда:

Get-ADGroupMember 'сървър-администратор' -рекурсивен | ft самосметка | Изходен файл c: \ ps \ admins.csv

За да добавите данни за потребителски акаунт в AD към текстов файл, използвайте командлета Get-ADUser. Например, в допълнение към акаунта, трябва да покажете позицията и телефонния номер на потребителя в групата:

Get-ADGroupMember -Identity 'server-admins' -recursive | foreach Get-ADUser $ _ -properties title, OfficePhone | Заглавие на Select-Object, OfficePhone

Можете да изчислите броя на потребителите в група като тази:

(Get-ADGroupMember -Identity „администратори на домейни“)

Оказа се, че в групата „администратори на домейни“ имаме 7 администраторски акаунта.

За да намерите списък с празни групи в конкретен OU, използвайте тази команда:

Get-ADGroup -Filter * -Properties членове -searchbase „OU = Москва, DC = corp, dc = winitpro, DC = en“ | където -not $ _. members | изберете Име