PowerShell: Como exportar a Excel usuarios de Active Directory

En esta entrada voy a explicaros un par de formas de exportar a un fichero Excel los usuarios de Active Directory.

Exportación mediante el comando CSVDE

En primer lugar abriremos la consola de PowerShell en el servidor de dominio.

Exportar todos los usuarios

Para exportar todos los usuarios existentes en nuestro dominio con sus correspondientes atributos simplemente ejecutaremos el siguiente comando:

csvde -r "(objectclass=user)" -f c:/usuarios.csv

Exportar usuarios de una OU

Si en cambio queremos realizar la exportación pero de una OU concreta, en nuestro ejemplo los usuarios que se encuentren dentro de la OU Clientes, tendremos que ejecutar el siguiente comando:

CSVDE -d "OU=Clientes,DC=dominio,DC=com" -r objectClass=user -f c:/usuarios.csv

En el caso que queramos obtener los usuarios que se encuentran dentro de una OU que a su vez se encuentra dentro de otra, en nuestro ejemplo la OU principal sería Clientes y la OU secundaria sería Madrid, tendremos que utilizar el comando de la siguiente manera, es decir, igual que el ejemplo anterior pero montando los filtros de OU desde atrás hacia adelante.

CSVDE -d "OU=Madrid,OU=Clientes,DC=dominio,DC=com" -r objectClass=user -f c:/usuarios.csv 

Exportación mediante el comando Get-ADUser

Abriremos la consola de PowerShell en el controlador de dominio.

Exportar todos los usuarios

Vamos a exportar todos los usuarios del dominio pero en esta ocasión sólo queremos que nos exporte a Excel una serie de atributos del usuario en concreto. Para nuestro ejemplo, exportaremos sólo los atributos (podremos definir los que necesitemos) Name, UserPrincipalName, Enabled, distinguishedName. Para ello ejecutaremos el siguiente comando en la consola de PowerShell:

Get-ADUser -Filter * -Properties Name,UserPrincipalName,Enabled,distinguishedName | Select-Object Name,UserPrincipalName,Enabled,distinguishedName | Export-CSV 'c:\Usuarios.csv'

Exportar usuarios de una OU

En el caso de querer obtener la misma información pero en este caso de una OU en concreto, para nuestro ejemplo será la OU Clientes, tendremos que ejecutar el comando de la siguiente forma:

Get-ADUser -Filter * -SearchBase "OU=Clientes,DC=dominio,DC=com" -Properties Name,UserPrincipalName,Enabled,distinguishedName | Select-Object Name,UserPrincipalName,Enabled,distinguishedName | Export-CSV 'c:\Usuarios.csv' 

Si queremos rizar un poco más el rizo y queremos obtener los usuarios que se encuentran dentro de una OU que a su vez se encuentra dentro de otra tendremos que ir agregando las OU dentro del parámetro “SearchBase” de atrás hacia adelante. En nuestro ejemplo obtendremos los usuarios que se encuentran dentro de la OU Madrid que su vez se encuentra dentro de la OU Clientes.

Get-ADUser -Filter * -SearchBase "OU=Madrid,OU=Clientes,DC=dominio,DC=com" -Properties Name,UserPrincipalName,Enabled,distinguishedName | Select-Object Name,UserPrincipalName,Enabled,distinguishedName | Export-CSV 'c:\Usuarios.csv'  

Exportar todos los usuarios excepto de una OU concreta

Si queremos obtener todos los usuarios de nuestro Active Directory excepto los que se encuentren dentro de una OU concreta, para nuestro ejemplo será la OU Clientes, tendremos que ejecutar el comando de la siguiente forma:

Get-ADUser -Filter * -Properties Name,UserPrincipalName,Enabled,distinguishedName | Select-Object Name,UserPrincipalName,Enabled,distinguishedName | where {$_.DistinguishedName -notlike “*OU=Clientes,DC=dominio,DC=com"} | Export-CSV 'c:\Usuarios.csv'

Y listo, con cualquiera de estos 2 métodos podréis sacar de una forma fácil y sencillas los usuarios de vuestro dominio.

Espero os haya servido de utilidad.

Entradas relacionadas

7 comentarios en “PowerShell: Como exportar a Excel usuarios de Active Directory”

  1. hola, necesito exportar a excel los miembros de Todos los grupos del directorio activo, no de un grupo en especifico sino de todos. tengo el codigo de consulta y me los muestra en powers pero al exportarlo a excel no me los lleva. me podrias ayudar por favor? estoy apenas aprendiendo powershell

    Responder
    • Hola Sandra,

      Entiendo que lo que necesitas es obtener un listado de todos los usuarios existentes en Active Directory, si es así en la misma entrada lo tienes, concretamente, donde pone Exportar todos los usuarios. Tienes 2 métodos de hacerlo, mediante el comando CSVDE o el comando Get-ADUser.

      No sé si esto te ayuda o no he comprendido bien tu problema.

      Responder
    • Hola Miguel,

      El proceso de exportación es algo más complejo ya que hay que montar un script en PowerShell con bucles, etc…, no es una simple instrucción como la exportación.
      Ahora mismo no lo tengo hecho pero me lo apunto para hacerlo en un futura entrada y compartirlo con todo aquel que le pueda ser de utilidad.

      Saludos.

      Responder
  2. Hola Sergio Portillo por favor solicito tu ayuda; debo exportar los usuarios del AD pero debo excluir una OU especifica que es demasiado grande y no es necesaria.

    Agradezco tu ayuda

    Responder
    • Hola Luis,

      Puedes utilizar el siguiente comando para hacer lo que necesitas:

      Get-ADUser -Filter * -Properties Name,UserPrincipalName,Enabled,distinguishedName | Select-Object Name,UserPrincipalName,Enabled,distinguishedName | where {$_.DistinguishedName -notlike “*OU=LA QUE QUIERAS EXCLUIR,DC=dominio,DC=com”} | Export-CSV ‘c:\Prueba\Usuarios.csv’

      Recuerda cambiar la parte de OU por el nombre de la que necesites excluir, el nombre del dominio y la ruta donde se exportará el fichero CSV.

      Espero te sirva.
      Saludos.

      Responder
  3. SUPER!!! Muchas Gracias Sergio Portillo funciono perfecto disculpa no haberte escrito antes, estoy muy agradecido Gracias nuevamente.

    Responder

Deja un comentario