Automatización de la Creación de Usuarios en Windows con PowerShell

La gestión eficiente de usuarios es un aspecto crucial de la administración de sistemas, especialmente en entornos empresariales con un gran número de usuarios. PowerShell, con su potente framework de scripting y su integración profunda con Windows, ofrece una solución robusta para automatizar tareas administrativas, incluyendo la creación de usuarios. En este artículo, presentamos un script de PowerShell que recorre un archivo CSV para añadir usuarios a un sistema Windows, utilizando su DNI como contraseña.

Estructura del Archivo CSV

Para este ejemplo, usaremos un archivo CSV usuarios.csv con la siguiente estructura, donde cada campo está separado por punto y coma (;):

usuario;contraseña;nombre;dni
user1;pass1;Juan Perez;12345678
user2;pass2;Laura Gomez;87654321
user3;pass3;Carlos Ruiz;12348765

Este archivo contiene la información necesaria para crear los usuarios: nombre de usuario, contraseña (que no utilizaremos, dado que la contraseña será el DNI), nombre completo y DNI.

Script de PowerShell para Añadir Usuarios

El siguiente script de PowerShell, AgregarUsuarios.ps1, lee el archivo CSV, omite la primera línea de cabecera y ejecuta un bucle para añadir cada usuario al sistema, estableciendo su DNI como contraseña.

# Ruta al archivo CSV
$archivoCsv = ".\usuarios.csv"

# Verificar si el archivo CSV existe
if (-not (Test-Path $archivoCsv)) {
    Write-Host "El archivo $archivoCsv no existe."
    exit
}

# Importar el archivo CSV, omitiendo la primera línea
$usuarios = Import-Csv -Path $archivoCsv -Delimiter ';'

foreach ($usuario in $usuarios) {
    # Obtener los detalles del usuario del CSV
    $nombreUsuario = $usuario.usuario
    $nombreCompleto = $usuario.nombre
    $dni = $usuario.dni

    # Verificar si el usuario ya existe
    if (Get-LocalUser -Name $nombreUsuario -ErrorAction SilentlyContinue) {
        Write-Host "El usuario $nombreUsuario ya existe. Omitiendo..."
    } else {
        # Crear el usuario
        $userInfo = @{
            Name        = $nombreUsuario
            FullName    = $nombreCompleto
            Description = "Creado mediante script PowerShell"
            Password    = $dni
            PasswordNeverExpires = $false
            UserMayNotChangePassword = $false
            AccountNeverExpires = $false
        }
        New-LocalUser @userInfo | Out-Null

        # Establecer el DNI como contraseña y forzar el cambio de contraseña en el primer inicio de sesión
        $securePassword = ConvertTo-SecureString $dni -AsPlainText -Force
        Set-LocalUser -Name $nombreUsuario -Password $securePassword -PasswordNeverExpires $false -UserMayNotChangePassword $false

        Write-Host "Usuario $nombreUsuario añadido exitosamente."
    }
}

Write-Host "Proceso de añadir usuarios completado."

Instrucciones para Ejecutar el Script

  1. Guardar el Script: Copia el código proporcionado en un archivo llamado AgregarUsuarios.ps1.
  2. Ejecutar PowerShell como Administrador: Para añadir usuarios locales, necesitas permisos de administrador. Abre PowerShell con derechos de administrador.
  3. Habilitar la Ejecución de Scripts: Por defecto, PowerShell restringe la ejecución de scripts. Puedes permitir temporalmente la ejecución de scripts con el siguiente comando:
   Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
  1. Ejecutar el Script: Navega al directorio donde guardaste el script y ejecútalo con el comando:
   .\AgregarUsuarios.ps1

Consideraciones de Seguridad

  • Este script establece el DNI como contraseña, lo cual puede no cumplir con las políticas de seguridad de tu organización. Considera implementar políticas de contraseñas más seguras.
  • Asegúrate de revertir los cambios en la política de ejecución de scripts de PowerShell una vez completada la tarea para mantener la seguridad del sistema.

Conclusión

Automatizar la creación de usuarios en Windows mediante PowerShell y archivos CSV no solo ahorra tiempo, sino que también reduce el potencial de error humano. Este enfoque demuestra la flexibilidad y el poder de PowerShell para la administración de sistemas Windows, facilitando la gestión de usuarios en entornos

grandes y dinámicos. Con prácticas de seguridad adecuadas y una planificación cuidadosa, los scripts de PowerShell se convierten en una herramienta indispensable para los administradores de sistemas.

shallow focus photography of macbook
Photo by Nao Triponez on Pexels.com

Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad