Automatizar la creación de usuarios del dominio en Windows Server 2016 con un archivo csv
El nombre CSV, proviene del inglés comma-separated values y hace referencia a la extensión que se asigna a un archivo de texto plano que contiene una serie de datos en formato de tabla.
En su interior, cada fila de la tabla estará representada por una línea de texto. Dentro de cada fila, los diferentes elementos estarán separados por comas (o puntos y comas en algunos casos).
Como puedes intuir, resultará muy sencillo hacer una lista de usuarios usando este tipo de archivos. Pues bien, hoy aprenderemos a crear un archivo csv de estas características. Después explicaremos cómo podemos importar las cuentas de usuario que contenga dentro del dominio de Windows Server 2016 que hemos estado utilizando en estos últimos artículos.
En particular, puedes revisar los siguientes artículos:
-
Instalar un dominio básico en Windows Server 2016 sin interfaz gráfica.
-
Consultar la estructura de un dominio de Windows Server 2016 desde la línea de comandos.
-
Administrar usuarios del dominio desde la línea de comandos de Windows Server 2016 (Parte I).
-
Administrar usuarios del dominio desde la línea de comandos de Windows Server 2016 (Parte II).
-
Administrar usuarios del dominio desde la línea de comandos de Windows Server 2016 (Parte III).
Crear un archivo csv con la lista de usuarios
Podemos crear el archivo csv en cualquier ordenador. No es necesario hacerlo en el servidor Windows Server 2016.
En nuestro caso, usaremos un equipo con Windows 10.
Más tarde, bastará con usar una memoria USB para copiar el archivo en el ordenador de destino..
Aunque podemos crear un archivo csv desde cualquier editor de texto plano, como por ejemplo el Bloc de notas, yo te voy a mostrar mi método preferido, que consiste en usar una hoja de cálculo. En concreto, yo utilizaré LibreOffice Calc, pero funciona de un modo casi idéntico si utilizas otras, como Microsoft Excel.
Comenzaremos por crear un nuevo documento. Después, en la primera fila, escribiremos los nombres de las propiedades (de los argumentos), que necesitaríamos para el cmdlet New-ADUser, que ya hemos usado en otras ocasiones.
En este sentido,debes tener en cuenta las siguientes precauciones:
-
El nombre de cada propiedad debe ir en una celda diferente, dentro de la misma fila.
-
El nombre de la propiedad debe coincidir exactamente con el del argumento de New-ADUser, pero sin el guión. Es decir, el argumento -GivenName aparecerá aquí como GivenName.
-
La primera celda ocupada debe ser la A1. Es decir, la primera de la hoja.
Una vez completada la primera fila, en las siguientes completaremos los datos de diferentes usuarios que debamos dar de alta. Uno por cada fila. Debemos comprobar que cada dato queda en su columna correspondiente.
En definitiva, el resultado será similar al que muestra la siguiente imagen.
Cuando hayas completado el contenido, lo siguiente será exportarlo con el formato csv. Para lograrlo, basta con hacer clic en el menú Archivo.
De este modo, conseguimos que se muestre la ventana Guardar como. En ella, navegamos hasta el lugar donde crearemos el archivo csv. En nuestro caso, en la carpeta Documentos.
Una vez allí, desplegamos la lista Tipo de archivo.
A continuación, le damos nombre al archivo.
En este momento, LibreOffice Calc nos avisa de que el formato en el que estamos guardando el archivo no admite características de aspecto (recuerda que se trata de texto plano).
Después, aparece una ventana donde se nos pregunta por algunas características del archivo que vamos a generar. En concreto, podremos establecer el juego de caracteres a utilizar, el delimitador que usaremos para separar cada campo y cómo delimitaremos el texto.
Debajo, podremos elegir algunas características complementarias.
En cualquier caso, nosotros dejaremos las opciones predeterminadas.
Comprobar el resultado obtenido
Para comprobar que el archivo se ha exportado correctamente, bastará con abrir el Explorador de archivos y desplazarnos hasta el lugar donde lo hemos guardado. Recuerda que usamos la carpeta Documentos.
Cuando lo encontremos, hacemos clic sobre él con el botón derecho del ratón.
Al instante, se abrirá el Bloc de notas de Windows 10 y, en su interior, se cargará el archivo csv.
Importar los usuarios del archivo csv en el directorio de Windows Server 2016
Después del paso anterior, sólo tendremos que copiar el archivo (en nuestro caso, usuarios.csv) en un dispositivo externo (por ejemplo, una memoria USB) y llevarlo hasta el servidor.
Una vez allí, lo hemos copiado en la carpeta del administrador. Si lo prefieres, puedes dejarlo en el dispositivo externo pero, cuando lo uses, debes acordarte de indicar la ruta en la que se encuentra.
Como en ocasiones anteriores, usaremos cmdlets de PowerShell para realizar la tarea. Por lo tanto, lo primero que haremos será ejecutar el propio PowerShell.
A partir de aquí, comenzaremos a aplicar las diferentes ordenes…
A continuación, utilizamos el cmdlet Import-Csv para comprobar que PowerShell identifica correctamente el contenido del archivo. En particular, la sintaxis será como sigue:
Import-Csv .\usuarios.csv
Como salida, el cmdlet mostrará la lista de usuarios, donde cada campo queda identificado con el nombre de su correspondiente propiedad.
Si la salida no tiene el formato que muestra la imagen siguiente, debes comprobar el formato del archivo cvs, porque probablemente obtengas errores al realizar la importación.
Si todo es correcto, bastará con redirigir la salida de la orden anterior para que actúe como entrada para el cmdlet New-ADUser. Algo como esto:
Import-Csv .\usuarios.csv | New-ADUser
Sin embargo, podemos aprovechar para asignar valores a otras propiedades de las nuevas cuentas, siempre que éstos vayan a ser iguales en todas ellas. En nuestro caso, incluiremos las siguientes:
-
-Enabled $True, para que las nuevas cuentas estén habilitadas desde el primer momento.
-
-AccountPassword (ConvertTo-SecureString -AsPlainText «Usuario.123» -Force), que establece una contraseña predeterminada para las nuevas cuentas de usuario. En particular, la contraseña Usuario.123.
-
-Path «CN=Users,DC=somebooks,DC=local», para indicar el contenedor en el que se almacenarán las cuentas.
Por lo tanto, la orden que empleraremos será como sigue:
Import-Csv .\usuarios.csv | New-ADUser -Enabled $True -AccountPassword (ConvertTo-SecureString -AsPlainText "Usuario.123" -Force) -Path "CN=Users,DC=somebooks,DC=local"
Un instante después, el trabajo habrá terminado.
Y hasta aquí el artículo de hoy. Espero que te resulte útil.