Redes y Sistemas

Creación masiva de usuarios con PowerShell

¿Necesitas crear cuentas de usuarios masivas? ¿Necesitas eliminarlas? Te contamos como hacerlo en PowerShell en unos sencillos pasos.

Publicado el 24 de Enero de 2019
Compartir

Muchas veces necesitamos crear o eliminar una gran cantidad de cuentas de usuarios, para evitar tener que ir creando o eliminando cada cuenta, vamos a ver como hacerlo facilmente utilizando PowerShell una vez.

Cómo crear usuarios de forma masiva con PowerShell

En esta práctica vamos a crear un script que nos permita crear cuentas de usuario y después eliminar las mismas. Para ello vamos abrimos PowerShell ISE como administrador, lo que hacemos desde el menú Inicio buscando la misma y ejecutándola.

Lo primero que tenemos que hacer es crear un fichero en el que se encuentren los usuarios. Para ello, por ejemplo, escribimos en la consola el comando notepad usuarios.csv, con lo que se creará ese archivo usando la aplicación Notepad.

Una vez creado ese archivo vamos a insertar en el mismo una lista con los usuarios y sus contraseñas, pero antes hay que escribir la cabecera, que es obligatoria. En el documento escribimos lo siguiente:

nombre,contra
	usuario01,usuario01
	usuario02,usuario02
	usuario03,usuario03

Una vez hayamos introducido las cabeceras y los usuarios y contraseñas de prueba, guardamos el archivo, recordando que debe tener extensión .csv.

Para comprobar que se ha creado correctamente, en la consola de PowerShell escribimos el comando Get-Content c:\...\usuarios.csv, indicando la ruta en la que hemos guardado el archivo. Una vez ejecutado nos debe aparecer en pantalla el contenido que habíamos guardado en el archivo correspondiente.

Una vez tenemos el archivo creado, el siguiente paso será desarrollar una estructura que nos permita crear usuarios de forma masiva, y que además debe ser una estructura repetitiva. Este script lo haremos en el editor de PowerShell ISE, dónde iremos escribiendo el mismo.

Comenzamos creando un comentario que sea el siguiente:

#Creación de usuarios de forma masiva.

Después vamos a coger los datos, lo que haremos desde el fichero que creamos anteriormente, y eso lo haremos a través de una variable:

$usuarios=Import-Csv -Path c:\...\usuarios.csv

A continuación debemos tratar los datos obtenidos de ese fichero. Lo haremos con una variable de control llamada i y construyendo un comando para crear usuarios con clave.

Para crear un usuario con contraseña se necesita encriptar la misma, lo que se hace con el comando ConvertTo-SecureString, en el que se indica que la contraseña es texto plano y que se fuerce esa encriptación.

Una vez tenemos la contraseña, pasamos a crear el usuario, al que asignamos la contraseña previamente creada e indicamos que nunca expire ni la cuenta ni la contraseña asociada. También hacemos que estos usuarios puedan acceder al escritorio.

foreach  ($i in $usuarios)
	{
		$clave=ConvertTo-SecureString $i.contra -AsPlainText -Force
		New-LocalUser $i.nombre -Password $clave -AccountNeverExpires -PassNeverExpires
		Add-LocalGroupMember -Group usuarios -Member $i.nombre
	}

Finalmente el script queda de la siguiente forma:

#Creación de usuarios de forma masiva.
	$usuarios=Import-Csv -Path c:\...\usuarios.csv
	foreach  ($i in $usuarios)
	{
		$clave=ConvertTo-SecureString $i.contra -AsPlainText -Force
		New-LocalUser $i.nombre -Password $clave -AccountNeverExpires -PassNeverExpires
		Add-LocalGroupMember -Group usuarios -Member $i.nombre
	}

Vamos a entender paso a paso el mismo. Lo primero que necesitamos es coger los datos de un fichero, lo que hacemos en la línea 2, de forma que lea el archivo indicado y que lea los datos que contiene.

Después, como a cada línea de ese fichero debe crear un usuario, debe ir tomando los datos poco a poco. Para ello toma la contraseña del primer usuario y la convierte en clave segura, crea el usuario con el nombre que aparece en el fichero y le asigna la contraseña ya segura.

Además le genera las opciones de que la cuenta nunca expire y la contraseña tampoco, y lo añade al grupo de usuarios.

Guardamos este script con el nombre creaciondeusuarios.ps1, lo ejecutamos en la consola de PowerShell ISE y comprobamos que se crean los tres usuarios que habíamos indicado inicialmente.

Si queremos comprobar que se han creado correctamente, escribimos el comando get-localuser y nos aparecen los tres usuarios (usuario01, usuario02 y usuario03).

Cómo eliminar usuarios de forma masiva con PowerShell

Vamos a ver cómo eliminar las cuentas de usuario de forma masiva, lo que haremos de forma también muy sencilla.

Para ello vamos a generar el siguiente script:

#Creación de usuarios de forma masiva.
	$usuarios=Import-Csv -Path c:\...\usuarios.csv
	foreach  ($i in $usuarios)
	{
		Remove-LocalUser $i.nombre
	}

Una vez lo tenemos creado lo ejecutamos y comprobamos que ha funcionado. Para ello ejecutamos el comando get-localuser y comprobamos que no aparece ninguno de los usuarios que anteriormente se habían creado.

Si quieres aprender en profundidad PowerShell, puedes hacer el Curso de PowerShell para principiantes de nuestro profesor experto, Manuel Fco Domínguez. 

curso-powershell

Recuerda que puedes comenzar este curso con tu suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.


Compartir este post

También te puede interesar...

Tecnología

Como usar Show-command en PowerShell para administradores GUI

23 Enero 2019 Manuel Fco Domínguez Tienda
Curso de PowerShell

Curso de PowerShell para principiantes

1 hora y 46 minutos · Curso

Aprende a utilizar PowerShell desde cero con este curso de PowerShell para principiantes y saca todo el potencial de esta gran herramienta de linea de …

  • Sistemas Operativos
Artículos
Ver todos