Назад | Перейти на главную страницу

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

Меня попросили создать список групп безопасности (в частности, не групп рассылки), к которым принадлежит список из примерно 50 пользователей.

У меня есть список пользователей, users.txt который содержит каждое имя пользователя в новой строке. Я хочу создать membership.txt который содержит имя пользователя и список групп безопасности, членом которых является пользователь, разделенные запятыми.

Скрипт Powershell, который я написал до сих пор, выглядит следующим образом:

$users = Get-Content C:\users.txt

ForEach ($User in $users) {
  $getmembership = Get-ADUser $User -Properties MemberOf | Select -ExpandProperty memberof
  $User + ',' + $getmembership | Out-File -Append c:\membership.txt
}

Это почти работает, но для двух проблем:

  1. Он создает список всех групп, а не только групп безопасности. Как я могу указать, чтобы он включал только группы безопасности, а не группы рассылки?
  2. Группы добавляются в формате OU=Security Groups,OU=City,DC=domain,DC=com CN=Senior Leaders, но единственная информация, которую я действительно хочу, это Senior Leaders. Как я могу вырезать всю лишнюю информацию?

Расширьте свой Get-ADUser линия:

$getmembership = Get-ADUser $User -Properties MemberOf | Select -ExpandProperty memberof | Get-ADGroup -Properties name | Where { $_.GroupCategory -eq 'Security' } | Select -ExpandProperty Name

Это передаст DN группы в Get-ADGroup чтобы получить дополнительные свойства, затем отфильтруйте категорию группы и выберите имя группы (вместо DistinguishedName).