Get-ADGroup с фильтром не работает для всех

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

У меня есть название группы EAM
EGR
ETE
EDF
EMP-искусство
е-CV

3 первых не работает, а другой да. Вот сценарий, который я использую

$like = "*" + $branch
foreach ($member in (Get-ADGroupMember (Get-ADGroup -filter {name -like $like}))){
    # Do something
}

И ошибка, которую я получаю, для которой не работает
Get-ADGroupMember: невозможно преобразовать "System.Object[]" в «Microsoft.ActiveDirectory.Management.ADGroup», requiered by «Identity» param. The specified method is not supported + Get-ADGroupMember (Get-ADGroup -filter {name -like "*AM"}) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument : (:) [Get-ADGroupMember], ParameterBindingException + FullyQualifiedErrorId : cannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember

Заранее спасибо за помощь, MYT

1 ответ

Решение

Ошибка говорит вам, что Get-ADGroupMember не принимает массив групп, но одну группу. Вы также получите ошибки, если Get-AdGroup не вернул бы никаких результатов. Вместо этого передайте команды:

Get-ADGroup -Filter {name -like $like} | Get-ADGroupMember | Foreach-Object {
}

Обратите внимание, что учетные записи могут принадлежать нескольким группам, поэтому один и тот же участник может быть возвращен несколько раз.

Другие вопросы по тегам