#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. Спасибо, я тестирую в своей домашней лаборатории, кажется, работает отлично, протестирую его, когда вернусь в офис 🙂 Большое спасибо