- Операционные системы
- Виртуализация
- IT-инфраструктура
- Защита ИС и периметра
- Сетевые службы
- Хранение данных
- СУБД
- Объединенные коммуникации
- Веб-серверы и веб-движки
- Скриптинг
powershell:active-directory:powershell-get-list-of-security-group-members-with-additional-attributesPowerShell - Получаем список членов группы с дополнительными атрибутами
Скриптоблок для выгрузки в текстовый файл всех членов определённой доменной группы безопасности с информацией о компании, подразделении и должности с последующей сортировкой и разбивкой на блоки с зависимости от конкретного атрибута (company):
Get-ADGroupMember -Recursive "KOM-SRV-Users" | ForEach { Get-ADUser -filter {samaccountname -eq $_.SamAccountName} ` -Properties displayName, company, title, department } ` | Sort-Object company,displayName ` | Format-Table displayName,company,department,title -GroupBy company -AutoSize ` | Out-File -Width 4000 "C:\Temp\ADGroupUsersByCompany.txt"
Получаем перечень email-адресов всех членов определённой группы безопасности:
Get-ADGroupMember -Recursive "KOM-SRV-Users" | ForEach { Get-ADUser -filter {samaccountname -eq $_.SamAccountName} ` -Properties mail } ` | Sort-Object mail ` | Format-Table mail
Если нужно получить список уникальных email-адресов для членов сразу нескольких групп безопасности и выгрузить эти данные в текстовый файл, то можно воспользоваться следующим примером:
$ADGroups = @("AD-Group1","AD-Group2") $DataFile = "C:\Temp\Mail-Users.txt" $ADMembers = @() # Получаем полный список членов всех групп ForEach ($ADGroup in $ADGroups) { $ADMembers += Get-ADGroupMember -Recursive $ADGroup | ForEach { Get-ADUser -filter {samaccountname -eq $_.SamAccountName} ` -Properties mail } } # Сортируем, откидываем неуникальные значения и выгружаем в файл $ADMembers | Sort-Object mail | Get-Unique ` | Format-Table mail -HideTableHeaders ` | Out-File -Width 2147483647 $DataFile # Нормализуем данные в файле $NormalizeData = [System.IO.File]::ReadAllText($DataFile) # Удаляем пустые строки $NormalizeData = $NormalizeData.Trim() # Удаляем все пробелы $NormalizeData = $NormalizeData.Replace(' ', '') [System.IO.File]::WriteAllText($DataFile, $NormalizeData)
powershell/active-directory/powershell-get-list-of-security-group-members-with-additional-attributes.txt · Последнее изменение: 23.03.2020 12:00 — Алексей Максимов
Инструменты страницы
Обсуждение
Подскажите, пожалуйста, как вывести список в формате
"AD-Group1" User1
"AD-Group1" UserN
"AD-GroupN" User1
"AD-GroupN" UserN