Exportar miembros del grupo AD con PowerShell
A veces desea exportar los miembros del grupo de Active Directory a un archivo CSV. Por ejemplo, debe exportar todos los miembros del grupo AD, solo una unidad organizativa particular o varios grupos. En este artículo, aprenderá cómo exportar la membresía del grupo AD a un archivo CSV con PowerShell.
Introducción
El script de PowerShell Export-ADGroupMembers.ps1 se ejecutará con el nombre distinguido que haya configurado. Después de eso, exportará los grupos AD, incluidos los miembros, a un archivo CSV. Puede abrir el archivo CSV con Microsoft Excel o cualquier otra aplicación que admita la extensión de archivo CSV.
El script exportará la siguiente información:
Nombre
Categoría
-
Alcance
Miembros
Nota: El script de PowerShell Export-ADGroupMembers.ps1 obtiene los miembros de un grupo de Active Directory. Los miembros pueden ser usuarios, grupos y computadoras.
Exportar script de PowerShell de miembros del grupo de Active Directory
Antes de comenzar, desea colocar los archivos en el lugar correcto. Recomendamos crear dos carpetas con el nombre Scripts y Temp en la unidad (C:) del Management Server o Controlador de Dominio.
Descargue y coloque el script de PowerShell Export-ADGroupMembers.ps1 en la carpeta C:\Scripts.
Asegúrese de que el archivo esté desbloqueado para evitar errores al ejecutar el script. Lea más en el artículo Error sin firma digital al ejecutar el script de PowerShell.
Otra opción es copiar y pegar el siguiente código en el Bloc de notas. Asígnele el nombre Export-ADGroupMembers.ps1 y colóquelo en la carpeta C:\scripts.
<#
.SYNOPSIS
Export-ADGroupMembers.ps1
.DESCRIPTION
Export Active Directory group members to CSV file.
.LINK
www.alitajran.com/export-ad-group-members-powershell
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 03/22/2022 - Initial version
V2.00, 03/25/2023 - Added extract contacts and groups + optimization for faster results
#>
# Get year and month for CSV export file
$DateTime = Get-Date -f "yyyyMMddhhmm"
# Set CSV file name
$CSVFile = "C:\temp\ADGroups_" + $DateTime + ".csv"
# Set distinguishedName as searchbase, you can use one DN or multiple DNs
# Or use the root domain like DC=exoip,DC=local
$DNs = @(
"DC=exoip,DC=local"
)
# Create empty array for CSV data
$CSVOutput = @()
# Create empty array for AD groups
$ADGroups = @()
# Loop through DNs
foreach ($DN in $DNs) {
# Add every DN to AD groups
$ADGroups += Get-ADGroup -Filter * -SearchBase $DN
}
# Set progress bar variables
$i = 0
$tot = $ADGroups.count
foreach ($ADGroup in $ADGroups) {
# Set up progress bar
$i++
$status = "{0:N0}" -f ($i / $tot * 100)
Write-Progress -Activity "Exporting AD Groups" -status "Processing Group $i of $tot : $status% Completed" -PercentComplete ($i / $tot * 100)
# Ensure Members variable is empty
$Members = ""
# Get group members which are also groups and add to string
$MembersArr = (Get-ADGroup -filter { Name -eq $ADGroup.Name } -Properties Members ).Members | Get-ADObject | select Name, objectClass, distinguishedName
if ($MembersArr) {
foreach ($Member in $MembersArr) {
$MemDN = $Member.distinguishedName
$UserObj = Get-ADUser -filter { DistinguishedName -eq $MemDN }
if ($UserObj.Enabled -eq $False) {
continue
}
if ($Member.objectClass -eq "user") {
$Members = $Members + ",U-" + $Member.Name
}
elseif ($Member.objectClass -eq "contact") {
$Members = $Members + ",C-" + $Member.Name
}
else {
$Members = $Members + ",G-" + $Member.Name
}
}
# Check for members to avoid error for empty groups
if ($Members) {
$Members = $Members.Substring(1, ($Members.Length) - 1)
}
}
# Set up hash table and add values
$HashTab = $null
$HashTab = [ordered]@{
"Name" = $ADGroup.Name
"Category" = $ADGroup.GroupCategory
"Scope" = $ADGroup.GroupScope
"Members" = $Members
}
# Add hash table to CSV data array
$CSVOutput += New-Object PSObject -Property $HashTab
}
# Export report to CSV file
$CSVOutput | Sort-Object Name | Export-Csv -Encoding UTF8 -Path $CSVFile -NoTypeInformation #-Delimiter ";"Línea 30: Edite el nombre distinguido de destino. Puede tener un DN o varios DN (más sobre esto a continuación con diferentes ejemplos).
Obtener nombre distinguido
Debe agregar el valor del nombre completo en el script de PowerShell. Siga los pasos a continuación para obtener el nombre distinguido en Active Directory:
Iniciar Usuarios y equipos de Active Directory
Haga clic derecho en el destino y haga clic en Propiedades
-
Vaya a la pestaña Editor de atributos
Busque el atributo distuingedName en la lista de atributos
Haga doble clic para abrir la cadena y copie el valor
Nota: Si no ve la pestaña Editor de atributos, haga clic en Usuarios y equipos de Active Directory en la barra de menú en Ver y habilite < fuerte>Funciones avanzadas.
Exportar miembros del grupo AD a CSV
Ejecute PowerShell como administrador. Cambie la ruta a la carpeta de scripts. Ejecute el script de PowerShell para exportar los miembros del grupo AD a un archivo CSV. Espere hasta que se complete.
PS C:\> cd c:\scripts
PS C:\scripts> .\Export-ADGroupMembers.ps1Vaya a la carpeta de scripts y verifique que ve el archivo ADGroups_. Abra el archivo CSV con su aplicación favorita. En nuestro ejemplo, es Microsoft Excel.
Exportar miembros del grupo AD en OU
Obtenga el nombre distinguido de la unidad organizativa y cambie la línea 30. En nuestro ejemplo, son los Grupos de OU.
"OU=Groups,OU=Company,DC=exoip,DC=local"Exportar miembros del grupo AD en múltiples unidades organizativas
Obtenga el nombre distinguido de las unidades organizativas y cambie la línea 30. En nuestro ejemplo. son las unidades organizativas Grupos1 y Grupos2.
"OU=Groups1,OU=Company,DC=exoip,DC=local",
"OU=Groups2,OU=Company,DC=exoip,DC=local"Exportar miembros del grupo AD en un grupo particular
Obtenga el nombre distinguido del grupo y cambie la línea 30. En nuestro ejemplo, es el grupo Pilot.
"CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local"Exportar miembros del grupo AD en varios grupos
Obtenga el nombre distinguido del grupo y cambie la línea 30. En nuestro ejemplo, son los grupos Pilot y HR.
"CN=Pilot,OU=Groups,OU=Company,DC=exoip,DC=local",
"CN=HR,OU=Groups,OU=Company,DC=exoip,DC=local"¿Te ayudó esto a exportar la membresía del grupo AD a CSV?
Leer más: Copie miembros de un grupo AD a otro »
Conclusión
Aprendió a exportar miembros del grupo AD a CSV con PowerShell. Hay muchos grupos en cada organización y es excelente exportarlos a un archivo CSV. Con el script de PowerShell, puede seleccionar qué grupos de Active Directory desea exportar.
Disfrutaste este artículo? También te puede interesar Exportar miembros del grupo de distribución a CSV con PowerShell. No olvides seguirnos y compartir este artículo.

