Exportar los usuarios de un dominio en Windows Server 2016 a un archivo csv

Hace unos días, aprendimos a Automatizar la creación de usuarios del dominio en Windows Server 2016 con un archivo csv. Sin embargo, en algunas ocasiones, lo que nos interesa es exportar (copiar) las cuentas de usuario que tenemos en un dominio, para obtener un archivo csv. Es decir, hacer la tarea contraria a la del artículo anterior.

Exportar usuarios

De este modo, podremos generar un archivo csv con los usuarios de un dominio y luego importarlos en un dominio diferente. De la creación de este archivo es de lo que hablaremos en el artículo de hoy.

En realidad, la tarea es muy sencilla. Comenzaremos por utilizar el cmdlet Get-ADUser que ya conocemos de artículos anteriores, para obtener los datos  de los usuarios. Por ejemplo, puedes consultar el artículo Administrar usuarios del dominio desde la línea de comandos de Windows Server 2016 (Parte I).

Dada la cantidad de propiedades que tiene una cuenta de usuario, lo mejor será indicar cuáles queremos obtener. En mi caso, usaré las mismas que utilizamos en nuestro primer archivo csv.

En definitiva, podríamos utilizar una sintaxis como esta:

Get-ADUser -Filter * -Properties GivenName, Surname, Name, DisplayName, SamAccountName

De cualquier modo, con esto únicamente obtendremos la lista con todas las cuentas de usuario en la pantalla. Para convertir esa salida en un archivo csv, debemos canalizarla a través del cmdlet Export-Csv.

Por lo tanto, la orden que escribiremos será como esta:

Get-ADUser -Filter * -Properties GivenName, Surname, Name, DisplayName, SamAccountName | Export-Csv "prueba.csv"

El carácter pleca, pipeline o simplemente pipe (|) permite conectar la salida de una orden con la entrada de la siguiente.

Escribimos la orden y pulsamos la tecla Intro.

exportar-los-usuarios-de-un-dominio-en-windows-server-2016-a-un-archivo-csv-001

Como puedes imaginar, el resultado será un archivo, con el nombre prueba.csv, donde estarán enumerados todos los usuarios del sistema.

Podemos comprobarlo usando la orden type para mostrar su contenido:

type prueba.csv

De nuevo, escribimos la orden y pulsamos la tecla Intro.

exportar-los-usuarios-de-un-dominio-en-windows-server-2016-a-un-archivo-csv-002

Al momento, obtendremos en pantalla el contenido del archivo…

… aunque, como ves, puede ser un poco complicado interpretarlo.

exportar-los-usuarios-de-un-dominio-en-windows-server-2016-a-un-archivo-csv-003

Lo mejor es realizar el proceso contrario al que hicimos en el artículo Automatizar la creación de usuarios del dominio en Windows Server 2016 con un archivo csv. Es decir, copiarlo en una memoria USB y abrirlo en otro equipo usando un programa de hoja de cálculo. En concreto, para este ejemplo, yo utilizaré LibreOffice Calc, instalado sobre Windows 10.

El resultado será parecido al que muestra la imagen.

exportar-los-usuarios-de-un-dominio-en-windows-server-2016-a-un-archivo-csv-004

Como puedes ver en la imagen, también se han exportado usuarios predeterminados del sistema, como Administrador o invitado. Al realizar la importación en el sistema de destino, estos usuarios reportarán un error, porque ya existirán.

Para evitarlo, puedes borrar las líneas del archivo desde la propia hoja de cálculo y volver a exportarlo. También puedes utilizar un filtro al escribir el cmdlet Get-ADUser. Por ejemplo, pidiendo sólo los usuarios que tengan cualquier contenido en la propiedad Surname, ya que en las cuentas predeterminadas esta propiedad está vacía.

Para lograrlo, bastaría con escribir algo así:

Get-ADUser -Filter {Surname -like "*"} -Properties GivenName, Surname, Name, DisplayName, SamAccountName | Export-Csv "prueba.csv"

Y hasta aquí el artículo de hoy. Espero que te resulte útil.