Включены члены группы AD из нескольких групп

Включены члены группы AD из нескольких групп

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

$GroupList = @('GroupA','GroupB'
 )

$Groupusers  = @()

foreach ($Groups in $GroupList)
{

    $Groupusers += Get-ADGroupMember -Identity $Groups | select @{Name="Groups";Expression={$Groups}},name
}

$Groupusers | Export-Csv -Path "C:\Users\Me\Documents\users.csv" -NoTypeInformation -Encoding Unicode

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

Выход:

Имя группы


ГруппаA ПользовательA
ГруппаB ПользовательB

Я попробовал следующий скрипт, он выдает мне всех включенных пользователей, но не в том формате, как скрипт выше.


$groupname = @('GroupA', 'GroupB')

$Groupusers=@()


foreach ($group in $groupname)
{

    $Groupusers += Get-ADGroupMember -Identity $group | ? {$_.objectclass -eq "user"}
}

$result= @()

foreach ($activeusers in $Groupusers) 

{ 

$result += (Get-ADUser -Identity $activeusers | ? {$_.enabled -eq $true} | select Name, Enabled) 

}

$result 

Как мне добиться результата, как указано выше, но только с включенными пользователями? Спасибо.

решение1

если вы хотите сохранить форматирование первого скрипта, это должно сработать. Просто создайте второй массив, чтобы хранить только $groupusers, которые включены, и запишите только это подмножество в ваш выходной файл.

$GroupList = @('GroupA','GroupB')

$Groupusers  = @()

foreach ($Groups in $GroupList)
{

    $Groupusers += Get-ADGroupMember -Identity $Groups | select @{Name="Groups";Expression={$Groups}},name  
    
}

$activeusers = @()
foreach ($user in $Groupusers)
{
$n = $user.name
$props = get-aduser -filter "name -eq '$n'" | select samaccountname, enabled
  if ($props.enabled)
  {

    $activeusers += $user
  }
}

$activeusers | Export-Csv -Path "C:\Users\Me\Documents\users.csv" -NoTypeInformation -Encoding Unicode

Связанный контент