Быстрый и простой способ получить членство в группе Active Directory

Опубликовано: 16 Марта, 2023
Быстрый и простой способ получить членство в группе Active Directory

Microsoft предоставляет команды PowerShell для всех ролей и функций, включая Active Directory. Только для Active Directory предусмотрено более 900 командлетов PowerShell, которые можно использовать для доступа и управления информацией с контроллеров домена, серверов глобального каталога, доменов и лесов Active Directory. Какими бы ни были ваши требования, у вас есть доступные командлеты PowerShell. Например, если вам нужно прочитать пользователей Active Directory в домене Active Directory, вы можете использовать командлет PowerShell Get-ADUser. Точно так же, если вам нужно управлять членством в группах Active Directory или получить список созданных сайтов Active Directory, вы можете использовать Get-ADGroupMembers и Get-ADSite соответственно. В этой статье мы собираемся показать вам, как с помощью PowerShell вы можете собирать данные о членстве в группах безопасности Active Directory.

До PowerShell у вас не было прямого способа получить информацию о членстве в группе Active Directory. Если вам нужно было узнать, кто является частью группы безопасности Active Directory, или проверить членов более чем одной группы безопасности, вам нужно было либо вручную проверить с помощью инструмента с графическим интерфейсом пользователя, либо разработать сценарий VB для проверки членства в группе. Задача проверки членства в группах безопасности была кардинально изменена с помощью PowerShell. Теперь с помощью всего одного командлета PowerShell вы можете получить членство в одной или нескольких группах безопасности. Что вы можете сделать, так это просто использовать командлет PowerShell Get-ADGroupMember. Командлет Get-ADGroupMember PowerShell требует указать имя группы для проверки членов. Например, приведенный ниже командлет выводит список членов группы безопасности администраторов в среде Active Directory.

Get-ADGroupMember — Идентификация «Администраторы»

Точно так же, если вам нужно проверить членство в другой группе безопасности, скажем, «Production Admins», просто выполните следующую команду:

Get-ADGroupMember — Identity «Производственные администраторы»

Как видно из приведенных выше команд, проверка членства отдельных групп безопасности в группах Active Directory занимает не более нескольких секунд. Если вам нужно каждый день проверять членство в группе Active Directory в группах безопасности администратора, вы можете просто добавить указанную выше команду в пакетный файл, а затем выполнить ее вручную или выполнить ее с помощью запланированной задачи. Например, добавление приведенных ниже команд в пакетный файл даст вам результаты в файле CSV. Предположим, вы создали пакетный файл или файл CMD с именем GetMembers.CMD и добавили следующие строки:

Get-ADGroupMember — Identity «Production Admins» | Экспорт-CSV C:TempPrdAdmins.CSV
Get-ADGroupMember – Identity «BDO Admins1» | Экспорт-CSV C:TempBDOAdmins1.CSV
Get-ADGroupMember — Identity «BDO Admins2» | Экспорт-CSV C:TempBDOAdmins2.CSV
Get-ADGroupMember – Identity «BDO Admins3» | Экспорт-CSV C:TempBDOAdmins3.CSV

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

Создание отчетов о членстве в группах Active Directory

Допустим, вы хотите создать отчет о членстве выбранных групп безопасности в группах Active Directory и сохранить выходные данные в удобном для чтения формате, а затем проверить выходные данные с помощью Microsoft Excel или аналогичного инструмента. Добавление дополнительной работы путем написания сценария PowerShell может помочь вам создать отчет о членстве в группе. Предположим, у нас есть четыре группы безопасности с именами «BDOAdmin1», «BDOAdmin2», «BDOAdmin3» и «BDOAdmin4». Предположим, у нас есть файл CheckGroups.TXT, который хранится в папке C:Temp. В файле C:TempCheckGroups.TXT хранятся имена групп, которые вы хотите проверить с помощью сценария PowerShell. Когда у вас есть два файла, готовые и сохраненные в каталоге C:Temp, выполните приведенный ниже сценарий PowerShell. Сценарий создаст отчет, включающий отличительное имя и имя группы, к которой принадлежит участник.

$GroupFile = "C:TempCheckGroups.TXT"
$ReportFile = "C:TempGroupMemReport.CSV"
Удалить элемент $ReportFile -ErrorAction SilentlyContinue
$STR = «Отличительное имя, принадлежащее группе»
Добавить содержимое $ReportFile $STR
ForEach ($ThisGroup в GC $GroupFile)
{
$AllMembers = Get-ADGroupMember –Identity «$ThisGroup»
ForEach ($ThisMem в $AllMembers)
{
$STR = $ThisMem.DistinguishedName+",""+$ThisMem.Name
Добавить содержимое $ReportFile $STR
}
}

После выполнения вышеуказанного сценария с компьютера PowerShell, имеющего доступ к домену Active Directory, будет создан отчет в файле CSV, как показано на снимке экрана ниже:

Завершение

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