Член группы пользователей Powershell AD

#powershell #active-directory

#powershell #active-directory

Вопрос:

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

 $abcgroup = (Get-ADUser -Identity username –Properties MemberOf) | where {$_.MemberOf -like "*ABC*"}| Select-Object -ExpandProperty MemberOf | FT MemberOf -AutoSize
 

И возвращайте группе пользователей только ABC-XYZ вместо каждой отдельной группы в качестве выходных данных, в противном случае любой простой способ обработать все имя группы и просто извлечь любое имя группы, начинающееся с ABC-*

Спасибо

Комментарии:

1. Если вы ищете членов групп, вы можете попробовать Get-ADGroupMember вместо этого.

Ответ №1:

Я бы немного упростил как серверную, так и локальную обработку:

 Get-ADGroup -LDAPFilter "(amp;(member=$((Get-ADUser username).distinguishedName))(sAMAccountName=abc-*))"
 

При этом будут получены все группы, включающие выбранного пользователя, и их имя соответствует шаблону. Это будет включать только два запроса LDAP (один для получения имени пользователя, один для получения всех групп). Весь выбор будет выполнен на сервере, и будут возвращены только интересные значения, что означает меньшую передачу данных и меньшую последующую обработку (т. Е. Фильтрацию) на стороне клиента.

Ответ №2:

Непроверено, но это может сработать:

 $abcgroup = (Get-ADUser -Identity username –Properties MemberOf).MemberOf | 
             Where-Object {$_ -match '^cn=ABC-'} | ForEach-Object {(Get-ADGroup -Identity $_).Name}

$abcgroup | Format-Table
 

Комментарии:

1. Спасибо, я тестирую в своей домашней лаборатории, кажется, работает отлично, протестирую его, когда вернусь в офис 🙂 Большое спасибо