Я пытаюсь найти всех пользователей, которые принадлежат к группе «Windows». Я хочу отобразить их идентификатор, фамилию, имя.

Желаемый выходной формат:

    Windows Users,1234567,John,Doe
    Windows Administators,7654321,Jane,Doe

Этот однострочник делает больше меньше того, что я хочу, но мне нужно каждый раз изменять идентификатор параметра с «Пользователи Windows» на «Windows PowerUsers» на «Администраторы Windows» и т. д.

Пример:

Get-ADGroupMember -identity "Windows Users" -Recursive | Get-ADUser | select SamAccountName, Surname, GivenName

Поэтому я попытался собрать все это вместе, но это дает мне ошибки.

$ADGroups = Get-ADGroup -Filter {name -like "Windows*"} 

foreach ($ADGroup in $ADGroups) {
    Get-ADGroup -filter {Name -eq $ADGroup.Name} | Get-ADGroupMember -identity 
    $ADGroup.Name -Recursive | Get-ADUser | select SamAccountName, Surname, GivenName
 }

Любые идеи будут приняты с благодарностью. Я не могу понять, как захватить всех пользователей, принадлежащих к группе Windows *, таких как «Пользователи Windows», «Пользователи Windows PowerUsers», «Администраторы Windows» и т. д.

Примечание: я изучил это, но это не совсем то, что я ищу Скрипт Powershell для отображения всех пользователей в группе AD

Благодарю вас.

0
user2585000 24 Окт 2018 в 04:53

2 ответа

Лучший ответ

Ваш пример - хорошее начало.

Попробуй это. Он должен выполнять свою работу:

Get-ADGroup -Filter {name -like "Windows*"} | foreach {
    $currentGroup = $_.Name
    $_ | Get-ADGroupMember | foreach {
        $_ | Get-ADUser | select @{name="Group"; expression={ $currentGroup }}, SamAccountName, Surname, GivenName
    }
 }
2
TobyU 24 Окт 2018 в 09:06

У меня сейчас нет доступа к AD, но я бы попробовал

get-aduser -filter {memberof -like "Windows*"} -property samaccountname,surname,givenname,memberof | select samaccountname,surname,givenname

ИЛИ вы можете попробовать это в своем исходном цикле foreach ...

get-adgroup -filter {name -eq $adgroup.name} | select -expand members | get-aduser $_ | select samaccountname,surname,givenname

Я не могу вспомнить, что производит "members", я считаю, что это samaccountname, если бы нет, вы могли бы добавить фильтр ldap в get-aduser -filter {whatever -eq $_}

1
Robert Cotterman 24 Окт 2018 в 03:32
52960058