сценарий powershell для экспорта всех групп и членов, а также групп с в членах группы

#powershell

#powershell

Вопрос:

Я новичок в написании сценариев, но я пытаюсь получить export.xlsx всех групп объявлений, их членов и групп внутри группы.

Название группы AD> Участники группы>… и если в группе есть группы AD с> экспортировать членов этой группы AD

Пока у меня есть следующее.

 $groups = Get-adgroup -filter * -searchbase 'OU...DC=com'

foreach($group in $groups){
    Get-adgroupmember $group |
        select samaccountname |
            export-csv C:Temp$group.csv -notype
}
 

Любая помощь приветствуется.

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

1. Если вы получаете все группы, вам не нужно получать группы внутри групп, поскольку они у вас уже есть. Верно?

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

3. Вы нашли ответ?

Ответ №1:

Вы можете попробовать что-то вроде этого:

 $groups = Get-ADGroup -Filter *

foreach($group in $groups){
    $FileName = $group.Name
    Get-Adgroupmember -Identity $group |
            Export-CSV C:Temp$FileName.csv -notype
}
 

Ответ №2:

Это подходящее время для рекурсивной функции.

 Function Get-GroupMember
{
    Param
    (
        $Group
    )

    $allmembers = foreach($member in Get-ADGroupMember $Group)
    {
        if($member.objectClass -eq 'Group')
        {
            Get-GroupMember -Group $member
        }
        else
        {
            [PSCustomObject]@{
                Group  = $Group.name
                Member = $member.SamAccountName
                Type   = $member.objectClass
            }
        }
    }

    $allmembers | Export-Csv "C:Temp$($Group.name).csv" -notype
}
 

Назовите это так

 $groups = Get-adgroup -filter * -searchbase 'OU...DC=com'

Get-GroupMember -Group $groups
 

Вы четко не указали, какую всю информацию вы хотите экспортировать. Объект по умолчанию будет иметь distinctivedname, name, objectClass, objectGUID, sAMAccountName и SID. Если вам нужны все они, вы можете изменить часть else на просто «$member». В противном случае вы можете настроить то, что возвращает пользовательский объект. Это создаст 1 файл для каждой группы с именем groupname.csv. Вы можете параметризовать путь экспорта в качестве следующего шага.