Automatizar la creación de usuarios del dominio en Windows Server 2022 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 2022 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 2022 sin interfaz gráfica.
-
Consultar la estructura de un dominio de Windows Server 2022 desde la línea de comandos.
-
Administrar usuarios del dominio desde la línea de comandos de Windows Server 2022 (Parte I).
-
Administrar usuarios del dominio desde la línea de comandos de Windows Server 2022 (Parte II).
-
Administrar usuarios del dominio desde la línea de comandos de Windows Server 2022 (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 2022.
En nuestro caso, usaremos un equipo con Windows 11.
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.
En el menú de contexto que aparece, elegimos Abrir con y, después, buscamos la opción Bloc de notas.
Ahora buscamos Bloc de notas.
Al instante, se abrirá el Bloc de notas de Windows 11 y, en su interior, se cargará el archivo csv.
Importar los usuarios del archivo csv en el directorio de Windows Server 2022
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.
Recuerda que, si te encuentras en sconfig, deberás salir de la herramienta. Lo puedes conseguir usando la opción 15 del menú.
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.
Observa que se han producido errores al importar los caracteres con tilde. He preferido dejarlo así, para ilustrar el problema, pero podrías resolverlo eligiendo un conjunto de caracteres diferente en la exportación o, sencillamente, evitando el uso de tildes en el el archivo de origen.
Si el resultado te parece adecuado, solo quedará 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 emplearemos será esta:
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. Solo tenemos que consultar la relación de usuarios del sistema, para comprobar que todo ha sido correcto.
Por ejemplo, usaremos el cmdlet Get-ADUser, como en otros artículos:
Get-ADUser -Filter *
Y hasta aquí el artículo de hoy. Espero que te resulte útil.