Búsqueda de sitios web

Herramienta de exportación de usuarios de Active Directory: CSV/JSON


Exportar usuarios (u otros objetos) desde Active Directory puede resultar muy útil.

PowerShell es la forma más sencilla de hacerlo, pero existen algunas opciones.

La mayoría de los administradores exportarán datos automáticamente al formato CSV, pero esta no siempre es la mejor opción.

Si necesita utilizar los datos exportados mediante programación, suele ser mejor exportarlos como JSON.

Este artículo cubrirá ambas opciones. Pero primero:

¿Qué datos exportar desde Active Directory?

Puede exportar usuarios utilizando el comando Get-ADUser (disponible a través de RSAT).

Si desea exportar otros tipos de objetos, puede utilizar Get-ADComputer, Get-ADGroup o el Get-ADObject genérico.

Además del tipo de objeto, también debes tomar una decisión sobre el alcance de los objetos y atributos:

  • ¿A qué OU limita la búsqueda?
  • ¿Qué filtrado adicional quieres?
  • ¿Qué atributos/propiedades desea exportar?

La unidad organizativa se designa mediante el parámetro SearchBase, por ejemplo:

Get-ADUser -Filter * -SearchBase "OU=Alabama,OU=UnitedStates,OU=Users,OU=E365M,DC=Easy365Manager,DC=local"

El filtrado adicional se realiza mejor utilizando el potente filtro LDAP, por ejemplo:

Get-ADUser -LDAPFilter "(department=marketing)"

De forma predeterminada, Get-ADUser solo devolverá un conjunto muy limitado de propiedades de usuario.

Se pueden designar propiedades adicionales usando el interruptor Propiedades y Select-Object CmdLet, por ejemplo:

Get-ADUser -Filter * -Properties sAMAccountName,givenName,sn,userPrincipalName | Select-Object sAMAccountName,givenName,sn,userPrincipalName

Todo lo que necesita ahora es combinar el alcance de la OU, el filtro LDAP y la selección de propiedades; Entonces tienes tu consulta.

A continuación, debes seleccionar el tipo de exportación que deseas realizar: CSV o JSON.

Cómo exportar usuarios de AD a CSV usando PowerShell

Este formato es útil principalmente cuando el consumidor conoce bien Excel y, por ejemplo, necesita presentar datos a la gerencia.

Un ejemplo es un director de proyecto que quiere que usted le proporcione una descripción general del progreso de la migración de buzones de correo que puede presentar al CIO.

Al proporcionar los datos sin procesar en formato CSV, el director del proyecto puede utilizar fácilmente fórmulas de Excel para resumir los datos y crear bonitos gráficos circulares.

La forma más sencilla de extraer propiedades de usuario seleccionadas en CSV sería algo como esto:

Get-ADUser -Filter * -Properties sAMAccountName,givenName,sn,userPrincipalName | Select-Object sAMAccountName,givenName,sn,userPrincipalName | Export-Csv c:\tmp\ADUsers.csv -NoTypeInformation

Debes abrir el archivo .csv, dividir los datos en columnas, aplicar un filtro y guardarlo como .xlsx antes de enviarlo al administrador del proyecto:

Cómo exportar usuarios de AD a JSON usando PowerShell

Si necesita acceder a los datos exportados mediante programación, es mucho mejor exportar los datos como JSON.

Al guardar los datos en JSON, puede volver a importarlos fácilmente si es necesario.

Un ejemplo es exportar algunas propiedades del usuario para realizar una copia de seguridad antes de realizar un cambio programado.

La forma más sencilla de extraer propiedades de usuario seleccionadas en JSON sería algo como esto:

Get-ADUser -Filter * -Properties sAMAccountName,givenName,sn,userPrincipalName | Select-Object sAMAccountName,givenName,sn,userPrincipalName | ConvertTo-Json -Compress | Out-File "c:\tmp\ADUsers.json"

Los datos exportados serán similares a los siguientes:

Si necesita echar un vistazo rápido a los datos (y suponiendo que no sean confidenciales), cópielos en un conversor de JSON a tabla en línea:

¡La verdadera diversión con los datos exportados JSON radica en la fácil conversión a objetos programables!

Utilice el siguiente PowerShell CmdLet para convertir los datos nuevamente en una colección de usuarios:

$Users = Get-Content "C:\tmp\ADUsers.json" | ConvertFrom-Json

Luego puede usar fácilmente la variable $Users para importar datos, exportar subconjuntos de datos a CSV y otras cosas:

PS C:\> $Users | ? { $_.givenName -eq 'james' -and $_.sn -like 'm*' } | ft

sAMAccountName givenName sn       userPrincipalName
-------------- --------- --       -----------------
james.miller   James     Miller   james.miller@azure.skrubbeltrang.com
james.martinez James     Martinez james.martinez@azure.skrubbeltrang.com
james.moore    James     Moore    james.moore@azure.skrubbeltrang.com
james.martin   James     Martin   james.martin@azure.skrubbeltrang.com
james.mitchell James     Mitchell james.mitchell@azure.skrubbeltrang.com
james.morris   James     Morris   james.morris@azure.skrubbeltrang.com
james.morales  James     Morales  james.morales@azure.skrubbeltrang.com
james.murphy   James     Murphy   james.murphy@azure.skrubbeltrang.com
james.morgan   James     Morgan   james.morgan@azure.skrubbeltrang.com
james.mendoza  James     Mendoza  james.mendoza@azure.skrubbeltrang.com
james.myers    James     Myers    james.myers@azure.skrubbeltrang.com

Resumen

Con un poco de planificación, puede proporcionar rápidamente potentes exportaciones de datos de Active Directory.

Considere el alcance de su exportación en términos de unidades organizativas, filtrado LDAP y propiedades.

Tenga en cuenta si los datos exportados se utilizarán para informes de Excel o procesamiento programático posterior.

Artículos relacionados