В тази статия ще разгледаме способността на 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 | изберете Име