Получить всех участников для групп и подгрупп - PullRequest
0 голосов
/ 04 марта 2019

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

. Что мне по сути нужно, так это получить CSV-файл всех групп в AD, содержащих"infolink" в их имени и столбцах, которые мне нужны:

  • GiveName
  • SN
  • Имя пользователя
  • Почта
  • Group
  • ManagedBy

Но, как бы я это ни выразил, я получаю только некоторые вещи, которые мне нужны.У кого-то уже есть немного кода, который мог бы немного облегчить мою жизнь?Если это так, я был бы безмерно благодарен.

    Import-Module ActiveDirectory

    $Groups = (Get-AdGroup -filter * | Where {$_.name -like "*Infolink*"} |         select name -ExpandProperty name)

    $Table = @()

    $Record = @{
      "Group Name" = ""
      "Name" = ""
      "Username" = ""
      "mail" = ""
    }


    Foreach ($Group in $Groups) {

      $Arrayofmembers = Get-ADGroupMember -identity $Group -recursive |         select name,samaccountname

      foreach ($Member in $Arrayofmembers) {
        $Record."Group Name" = $Group
        $Record."Name" = $Member.name
        $Record."UserName" = $Member.samaccountname
        $objRecord = New-Object PSObject -property $Record
        $Table += $objrecord

      }
    }

    $Table | export-csv "D:\Infolink.csv" -NoTypeInformation

1 Ответ

0 голосов
/ 04 марта 2019

Попробуйте,

Import-Module ActiveDirectory
$groups = Get-ADGroup -Filter "name -like '*Infolink*'" -Properties ManagedBy
$table = foreach ($group in $groups) {
    $Arrayofmembers = Get-ADGroupMember -Identity $group -Recursive
    $ArrayofmembersUsers = $Arrayofmembers | Get-ADUser -Properties Mail
    $ArrayofmembersUsers | Add-Member -Name GroupInfoLinkName -MemberType NoteProperty -Value $group.Name -Force
    $ArrayofmembersUsers | Add-Member -Name GroupInfoLinkManageBy -MemberType NoteProperty -Value $group.ManagedBy -Force
    $ArrayofmembersUsers
}
$table | Select-Object -Property GivenName, SurName, SamAccountName, Mail, GroupInfoLinkName, GroupInfoLinkManageBy | Export-Csv "D:\Infolink.csv" -NoTypeInformation

Некоторые указатели ..

  • Используйте фильтр на Get-ADGroup, иначе вы получите все группы в AD, а затем выполните фильтрацию.
  • PSObject - это здорово, но если ваш объект уже обладает большинством требуемых свойств, тогда Add-Member полезно добавить еще 1 или 2.
  • Многие командлеты имеют параметр Properties, вы 'посмотрим, я использовал это, чтобы включить свойства, которые не были включены по умолчанию.К сожалению, Get-ADGroupMember не является одним из таких командлетов, поэтому использование конвейера для Get-ADUser помогает обойти эту проблему.
...