Miembros del grupo AD habilitados de varios grupos

Miembros del grupo AD habilitados de varios grupos

Estoy tratando de obtener solo miembros habilitados que estén en varios grupos, pero no estoy seguro de cómo lograrlo en el formato que quiero. Mi guión actual es el siguiente.

$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

El script anterior funciona y formatea la salida para lo que busco, pero esto también incluye incluso a los usuarios discapacitados.

Producción:

Nombre del grupo


GrupoA UsuarioA
GrupoB UsuarioB

Probé el siguiente script, que me proporciona todos los usuarios habilitados, pero no en un formato como el script anterior.


$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 

¿Cómo puedo lograr el resultado anterior pero solo con usuarios habilitados? Gracias.

Respuesta1

Si desea conservar el formato del primer script, esto debería funcionar para usted. Simplemente cree una segunda matriz para contener solo los $groupusers que están habilitados y escriba solo ese subconjunto en su archivo de salida.

$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

información relacionada