Light-electric.com

IT Журнал
1 036 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Список пользователей домена

Использование Get-ADUser для получения разной информации о пользователях домена AD

Не секрет, что начиная с первой версии PowerShell, Microsoft пытается сделать из него основной инструмент администрирования Windows. И во многом это получается! Сегодня на простых примерах, мы покажем возможности PowerShell, которые можно использовать для получения различной информации о пользователях Active Directory и их атрибутах.

В PowerShell 2.0 появился специальный модуль для работы с Active Directory — Active Directory Module for Windows PowerShell (представлен в Windows Server 2008 R2), командлеты которого позволяют выполнять различные манипуляции с объектами каталога AD. Для получения информации о пользователях домена Active Directory и их свойствах предназначен командлет Get-ADUser. С помощью командлета Get-ADUser можно получить значение любого атрибута существующей учетной записи пользователя в AD. Кроме того, можно указывать различные критерии выборки и формировать списки пользователей домена и их атрибутов.

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

Запускаем окно Powershll с правами администратора и импортируем модуль Active Directory командой:

В клиентских ОС (в той же Windows 10) для работы коммандера Get-AdUser нужно установить соответствующую версию RSAT и включить в панели управления компонент Active Directory Module for Windows PowerShell (Remote Server Administration Tools -> Role Administration Tools -> AD DS and AD LDS Tools -> AD DS Tools).

Полный список всех аргументов командлета Get-ADUser можно получить так:

Чтобы вывести список всех учетных записей домена, выполним команду:

Формат возвращаемого списка не очень удобен для использования, выводится только некоторые основные 10 из более 120 атрибутов и свойств учетных записей пользователей (DN, SamAccountName, Name, SID, UPN и т.д) кроме того, мы видим, что информация о времени последней смены пароля отсутствует.

Чтобы вывести полную информации обо всех доступных атрибутах пользователя tuser, выполним команду:

Итак, мы видим полный список атрибутов пользователя AD и их значений, ассоциированных с учетной записью пользователя. Далее мы перейдем к форматированию вывода командлета Get-ADUser, так, чтобы отображались нужные нам поля. Нас интересуют атрибуты:

  • PasswordExpired
  • PasswordLastSet
  • PasswordNeverExpires

Теперь в данных пользователя есть информация о дате смены пароля и времени, когда срок пароля истечет. Представим информацию в более удобном табличном виде:

Чтобы вывести данные пользователей из определенной OU, воспользуемся параметром SearchBase:

Результат выполнения команды можно выгрузить в текстовый файл:

Или в CSV, который в дальнейшем будет удобно экспортировать в Excel (дополнительно с помощью sort-object отсортируем таблицу по столбцу PasswordLastSet , а также добавим условие where – имя пользователя должно содержать строку «Dmitry»):

Таким образом, можно построить таблицу с любыми необходимыми атрибутами пользователей Active Directory.

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

Далее приведем еще несколько полезных вариантов запросов о пользователях Active Directory с помощью различных фильтров. Вы можете их комбинировать для получения необходимого списка пользователей AD:

Вывод пользователей AD, имя которых начинается с Roman:

Чтобы подсчитать общее количество всех аккаунтов в Active Directory:

Список всех активных (не заблокированных) учетных записей в AD:

Список учетных записей с истекшим сроком действия пароля:

Список активных учеток с почтовыми адресами:

Задача: для списка учетных записей, которые хранятся в текстовом файле (по одной учетке в строке) нужно получить телефон пользователя в AD и выгрузить информацию в текстовый csv файл (можно легко импортировать в Esxel).

Следующий пример позволяет выгрузить адресную книгу предприятия в виде csv файла, который в дальнейшем можно импортировать в Outlook или Mozilla Thunderbird:

Пользователи, которые не меняли свой пароль в течении последних 90 дней:

Чтобы получить фотографию пользователя из Active Directory и сохранить ее в jpg файл:

Список групп, в которых состоит учетная запись пользователя

Как через Powershell получить список пользователей AD с Get-ADUser

01 августа 2019

Get-ADUser команда, которая возвращает список пользователей AD в Powershell. На самом деле командлет мало чем отличается от тех, которые мы рассматривали раннее с приставкой «Get-AD».

Для работы с командой нам понадобится Powershell Active Directory Module.

Так мы вернем всех пользователей AD:

Если нам нужно найти по имени, сделайте так:

Где вместо Adminis имя вашей учетной записи. Звездочки позволяют искать вхождение где справа и слева могут быть еще символы.

Для получения сведений об одной учетной записи AD есть ключ Identity:

Кроме этого у нас есть дополнительный ключ Properties, который выводит дополнительные свойства у объекта пользователя:


Если мы хотим выполнить Get-ADUser в OU, то для этого есть дополнительный ключ, который может искать в организационных единицах и контейнерах. В моем случае я ищу в OU Moscow и домене domain.local:

Если вам нужно искать в контейнере — используйте CN. Примеры с множеством OU смотрите ниже.

Навигация по посту:

Поиск и фильтрация списка пользователей AD в Powershell Get-ADUser -Filter

Мы можем фильтровать по одному или множеству свойств. Для того что бы увидеть все свойства нужно сделать:

В области 1 выделены все имена, по которым мы можем фильтровать. В области 2 тип данных с которыми мы можем сравнивать. Т.е. если тип данных у области 2 string (строка), то это плохая идея сравнивать с числом (int). Нужно сразу отметить, что те свойства, которые мы получаем благодаря ключу Properties мы не можем применять в Filter.

Примеры с Get-Member мы уже рассматривали раньше.

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

А теперь найдем всех пользователей, которые неверно вводили пароль более одного раза и в они включены:

Читать еще:  Домен для helo

Т.к. BadLogonCount — это свойство от ключа Properties оно должно проверятся через конвейер в Where.

Еще один пример, но теперь нужно найти пользователя имя которого содержит 0001 и он активен:

Получение списка пользователей Active Directory в Powershell Get-User из нескольких OU

В команде нет встроенных средств поиска в нескольких объектах сразу. Мы можем объявить переменную, содержащую этот список и затем передать через цикл. На моем пример используется контейнер Users и OU Moscow:

Если бы у меня была OU Ekaterinburg в которой находилось OU Marketing написать стоило бы так:

Выгрузка пользователей из AD в Excel с Powershell

Экспорт и выгрузка может быть во множество форматов, но для выгрузки в Excel есть специальный формат CSV. Для того что бы сделать выгрузку достаточно выполнить следующее:

Если мы хотим выгрузить только определенные свойства, то в поле SELECT -Property нужно их перечислить:

Получение Email пользователя AD в Powershell

Нужное свойство мы можем получить через соответствующий ключ Properties. Так я получу почту у конкретного пользователя Administrator:

Выгрузим в CSV имена только тех пользователей у которых нет почты:

Получение списка пользователей чей срок действия пароля истек в Powershell

Для того что бы увидеть все свойства относящиеся к паролям выполните:

И затем, по этому свойству, отфильтруем пользователей:

5 типовых задач по работе с группами Active Directory с помощью PowerShell

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

Для использования данных командлетов в вашей сессии PowerShell должен быть загружен специальный модуль взаимодействия с AD — Active Directory Module for Windows PowerShell . Данный модуль впервые был представлен в Windows Server 208 R2. В Windows Server 2012 и выше этот модуль включен по умолчанию. На клиентских компьютерах его можно установить и включить в качестве одного из компонентов RSAT. Проверить, загружен ли модуль можно так:

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

Полный список команд модуля можно получить так:

Get-Command -Module ActiveDirectory

В модуле всего доступно 147 командлетов, из которых с группами могут работать 11.

Get-Command -Module ActiveDirectory -Name «*Group*»

  • Add-ADGroupMember
  • Add-ADPrincipalGroupMembership
  • Get-ADAccountAuthorizationGroup
  • Get-ADGroup
  • Get-ADGroupMember
  • Get-ADPrincipalGroupMembership
  • New-ADGroup
  • Remove-ADGroup
  • Remove-ADGroupMember
  • Remove-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

С помощью атрибута Description можно задать описание группы, а с помощью DisplayName изменить отображаемое имя.

Параметром GroupScope можно задать один из следующих типов групп:

  • 0 = DomainLocal
  • 1 = Global
  • 2 = Universal

Создать группу распространения можно так:

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 -Members user1, user2

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

Формат CSV файла такой (список пользователей по одному в строке, имя столбца – users)

Import-CSV .users.csv -Header users | ForEach-Object

Чтобы получить всех членов одной группы (groupA) и добавить их в другую группу (groupB), воспользуйтесь такой командой:

Get-ADGroupMember “GroupA” | Get-ADUser | ForEach-Object

В том случае, если нужно скопировать в новую группу и членов всех вложенных групп (рекурсивно), нужно воспользоваться такой командой:

Get-ADGroupMember -Identity “GroupA” -Recursive | Get-ADUser | ForEach-Object

Remove-ADGroupMember – удалить пользователей из группы

Для удаления пользователей из группы AD нужно использовать командует Remove-ADGroupMember. Удалим из группы двух пользователей:

Remove-ADGroupMember -Identity TestADGroup -Members user1, user2

Подтвердите удаление пользователей из группы:

Если нужно удалить из группы пользователей по списку из CSV файла, воспользуйтесь такой командой:

Import-CSV .users.csv -Header users | ForEach-Object

Get-ADGroup – получить информацию о группе AD

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

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

Get-ADGroup ‘TestADGroup’ -properties *

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

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

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

Get-ADGroupMember – вывести список пользователей группы AD

Вывести на экран список пользователей группы:

Чтобы оставить в результатах только имена пользователей, выполните:

Get-ADGroupMember ‘TestADGroup’| ft name

Если в данную группу включены другие группы домена, чтобы вывести полный список членов, в том числе всех вложенных групп, воспользуйтесь параметром Recursive .

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-ADGroupMember -Identity ‘domain admins’).Count

Оказалось, что в группе «domain admins» у нас состоит 7 учетных записей администраторов.

Чтобы найти список пустых групп в определенном OU, воспользуйтесь такой командой:

Читать еще:  Настройка outlook для домена

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

Использование Get-ADUser для получения разной информации о пользователях домена AD

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

Комадлет Get-ADUser доступен начиная с PowerShell 2.0 и входит в специальный модуль для работы с Active Directory — Active Directory Module for Windows PowerShell (представлен в Windows Server 2008 R2). Командлеты модуля RSAT-AD-PowerShell позволяют выполнять различные операции с объектами каталога AD.

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

Как найти пользователя в AD и вывести его свойства с помощью Get-ADUser?

Для использования модуля RSAT-AD-PowerShell нужно запустить консоль PowerShell с правами администратора и импортировать модуль командой:

В Windows Server 2012 и выше модуль RSAT-AD-PowerShell устанавливается по-умолчанию при развертывании на сервере роли Active Directory Domain Services (AD DS). Для установки модуля на рядовом сервере домена нужно выполнить команду:

Install-WindowsFeature -Name «RSAT-AD-PowerShell» –IncludeAllSubFeature

В десктопных версия Windows (например, в Windows 10) для работы коммандера Get-AdUser нужно установить соответствующую версию RSAT и включить в Панели Управления компонент Active Directory Module for Windows PowerShell (Remote Server Administration Tools -> Role Administration Tools -> AD DS and AD LDS Tools -> AD DS Tools).

Вы можете установить модуль AD из PowerShell:

Add-WindowsCapability –online –Name “Rsat.ActiveDirectory.DS-LDS.Tools

Import-Module «C:PSADPoShMicrosoft.ActiveDirectory.Management.dll»
Import-Module «C:PSADPoShMicrosoft.ActiveDirectory.Management.resources.dll»

Полный список всех аргументов командлета Get-ADUser можно получить так:

Чтобы вывести список всех учетных записей домена, выполните команду:

По-умолчанию командлет Get-ADUser возвращает только 10 основных атрибутов (из более чем 120 свойств учетных записей пользователей): DistinguishedName, SamAccountName, Name, SID, UserPrincipalName, ObjectClass, статус аккаунта (Enabled: True/False согласно атрибуту UserAccountControl), и т.д.

В выводе командлета отсутствует информация о времени последней смены пароля пользователя.

Get-ADUSer –Server DC01.winitpro.loc –Identity tstuser

Чтобы вывести полную информации обо всех доступных атрибутах пользователя tuser, выполните команду:

Get-ADUser -identity tuser -Properties *

Командлет Get-ADUser с параметром Properties * вывел список всех атрибутов пользователя AD и их значения.

Попробуем изменить параметры команды Get-ADUser, чтобы вывести только нужные нам атрибуты пользователя. Можно вывести сразу несколько атрибутов пользователя:

  • PasswordExpired
  • PasswordLastSet
  • PasswordNeverExpires
  • lastlogontimestamp

Get-ADUser tuser -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires, lastlogontimestamp

Теперь в информации о пользователе есть данные о статусе аккаунта (Expired:True/False), дате смены пароля и времени последнего входа в домен (lastlogontimestamp). Представим информацию в более удобном табличном виде и уберем все лишние атрибуты с помощью Select-Object –Property или Format-Table:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Получение пользователей из нескольких OU с помощью Get-ADUser

Чтобы вывести пользователей только из определенного контейнера домена (OU), воспользуйтесь параметром SearchBase:

Get-ADUser -SearchBase ‘OU=Moscow,DC=winitpro,DC=loc’ -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Если вам нужно выбрать пользователей сразу из нескольких OU, используйте следующую конструкцию:

$OUs = «OU=Moscow,DC=winitpro,DC=local»,»OU=SPB,DC=winitpro,DC=loc»
$OUs | foreach

Получить Email адреса пользователей из AD

Email пользователя это один из атрибутов в Active Directory. Чтобы вывести список email адресов пользователей, вы должны добавить поле EmailAddress в выбираемые поля командлета Get-ADUser.

Get-ADUser -filter * -properties EmailAddress -SearchBase ‘OU=MSK,DC=winitpro,DC=loc’| select-object Name, EmailAddress

Вывести список активных учёток с почтовыми адресами:

Get-ADUser -Filter <(mail -ne "null") -and (Enabled -eq "true")>-Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Format-Table

Список пользователей, у которые нет email адреса:

Get-ADUser -Filter * -Properties EmailAddress | where -Property EmailAddress -eq $null

Следующий пример позволяет выгрузить адресную книгу email адресов компании в виде csv файла, который в дальнейшем можно импортировать в Outlook или Mozilla Thunderbird:

Get-ADUser -Filter <(mail -ne "null") -and (Enabled -eq "true")>-Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter «,» $env:tempmail_list.csv

Get-ADUser: экспорт пользователей домена в текстовый или CSV/Excel файл

Полученный список пользователей домена с атрибутами можно выгрузить в текстовый файл:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires > C:tempusers.txt

Или вы можете выгрузить пользователей AD в файл CSV, который в дальнейшем будет удобно экспортировать в Excel.

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | select Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -path c:tempuser-password-expires-2019.csv -Append -Encoding UTF8

Get-ADUser –Filter: Сортировка и фильтрация списка пользователей AD

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

Например, выведем список активных (Enabled) учётных записей пользователей, чье имя содержит «Dmitry» (в примере ниже используется множественный фильтр, вы можете комбинировать условия с помощью стандартных логических операторов сравнения PowerShell):

Get-AdUser -Filter «(Name -like ‘*Dmitry*’) -and (Enabled -eq ‘True’)» -Properties * |select name,enabled

Дополнительно с помощью sort-object вы можете отсортировать полученный список пользователей по определенному атрибуту. Кроме того, для выборки пользователей можно использовать командлет where. Здесь также можно использовать сразу несколько критериев фильтрации.

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires -SearchBase ‘OU=Moscow,DC=winitpro,DC=loc’| where <$_.name –like “*Dmitry*” -and $_.Enabled -eq $true>| sort-object PasswordLastSet | select-object Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Таким образом, можно построить таблицу с любыми необходимыми атрибутами пользователей Active Directory.

Get-ADUser: разные примеры использования

Далее приведем еще несколько полезных вариантов запросов о пользователях Active Directory с помощью различных фильтров. Вы можете их комбинировать для получения необходимого списка пользователей домена:

Вывод пользователей AD, имя которых начинается с Roman:

Чтобы подсчитать общее количество всех аккаунтов в Active Directory:

Список всех активных (не заблокированных) учетных записей в AD:

Читать еще:  Инвентаризация принтеров в домене

Get-ADUser -Filter | Select-Object SamAccountName,Name,Surname,GivenName | Format-Table

get-aduser -Filter * -Properties Name, WhenCreated | Select name, whenCreated

Вывести всех пользователей, которые были созданы за последние 24 часа (пример отсюда):

$lastday = ((Get-Date).AddDays(-1))
Get-ADUser -filter

Список учетных записей с истекшим сроком действия пароля (срок действия пароля настраивается в доменной политике):

Get-ADUser -filter -properties name,passwordExpired | where <$_.PasswordExpired>|select name,passwordexpired

Задача: для списка учетных записей, которые хранятся в текстовом файле (по одной учетной записи в строке), нужно получить телефон пользователя из AD и выгрузить информацию в текстовый csv файл (для дальнейшего формирования отчета в Exсel).

Import-Csv c:psusernsme_list.csv | ForEach <
Get-ADUser -identity $_.user -Properties Name, telephoneNumber |
Select Name, telephoneNumber |
Export-CSV c:psexport_ad_list.csv -Append -Encoding UTF8
>

Пользователи, которые не меняли свой пароль в течении последних 90 дней:

$90_Days = (Get-Date).adddays(-90)
Get-ADUser -filter

$user = Get-ADUser winadmin -Properties thumbnailPhoto
$user.thumbnailPhoto | Set-Content winadmin.jpg -Encoding byte

Список групп, в которых состоит учетная запись пользователя

Get-AdUser winadmin -Properties memberof | Select memberof -expandproperty memberof

Вывести список пользователей из OU, которые состоят в определенной группе безопасности:

Get-ADUser -SearchBase ‘OU=Moscow,DC=winitpro,DC=loc’ -Filter * -properties memberof | Where-Object

Вывести список компьютеров домена, на которые разрешено входить пользователю (ограничение через атрибут LogonWorkstations):

Get-ADUser AIvanov -Properties LogonWorkstations | Format-List Name, LogonWorkstations

5 типовых задач по работе с группами Active Directory с помощью PowerShell

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

Для использования данных командлетов в вашей сессии PowerShell должен быть загружен специальный модуль взаимодействия с AD — Active Directory Module for Windows PowerShell . Данный модуль впервые был представлен в Windows Server 208 R2. В Windows Server 2012 и выше этот модуль включен по умолчанию. На клиентских компьютерах его можно установить и включить в качестве одного из компонентов RSAT. Проверить, загружен ли модуль можно так:

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

Полный список команд модуля можно получить так:

Get-Command -Module ActiveDirectory

В модуле всего доступно 147 командлетов, из которых с группами могут работать 11.

Get-Command -Module ActiveDirectory -Name «*Group*»

  • Add-ADGroupMember
  • Add-ADPrincipalGroupMembership
  • Get-ADAccountAuthorizationGroup
  • Get-ADGroup
  • Get-ADGroupMember
  • Get-ADPrincipalGroupMembership
  • New-ADGroup
  • Remove-ADGroup
  • Remove-ADGroupMember
  • Remove-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

С помощью атрибута Description можно задать описание группы, а с помощью DisplayName изменить отображаемое имя.

Параметром GroupScope можно задать один из следующих типов групп:

  • 0 = DomainLocal
  • 1 = Global
  • 2 = Universal

Создать группу распространения можно так:

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 -Members user1, user2

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

Формат CSV файла такой (список пользователей по одному в строке, имя столбца – users)

Import-CSV .users.csv -Header users | ForEach-Object

Чтобы получить всех членов одной группы (groupA) и добавить их в другую группу (groupB), воспользуйтесь такой командой:

Get-ADGroupMember “GroupA” | Get-ADUser | ForEach-Object

В том случае, если нужно скопировать в новую группу и членов всех вложенных групп (рекурсивно), нужно воспользоваться такой командой:

Get-ADGroupMember -Identity “GroupA” -Recursive | Get-ADUser | ForEach-Object

Remove-ADGroupMember – удалить пользователей из группы

Для удаления пользователей из группы AD нужно использовать командует Remove-ADGroupMember. Удалим из группы двух пользователей:

Remove-ADGroupMember -Identity TestADGroup -Members user1, user2

Подтвердите удаление пользователей из группы:

Если нужно удалить из группы пользователей по списку из CSV файла, воспользуйтесь такой командой:

Import-CSV .users.csv -Header users | ForEach-Object

Get-ADGroup – получить информацию о группе AD

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

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

Get-ADGroup ‘TestADGroup’ -properties *

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

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

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

Get-ADGroupMember – вывести список пользователей группы AD

Вывести на экран список пользователей группы:

Чтобы оставить в результатах только имена пользователей, выполните:

Get-ADGroupMember ‘TestADGroup’| ft name

Если в данную группу включены другие группы домена, чтобы вывести полный список членов, в том числе всех вложенных групп, воспользуйтесь параметром Recursive .

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-ADGroupMember -Identity ‘domain admins’).Count

Оказалось, что в группе «domain admins» у нас состоит 7 учетных записей администраторов.

Чтобы найти список пустых групп в определенном OU, воспользуйтесь такой командой:

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

0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты