Cómo crear y administrar usuarios en Windows con PowerShell

  • PowerShell permite crear, modificar y eliminar usuarios y grupos locales o de dominio de forma eficiente.
  • La automatización masiva con scripts y archivos CSV reduce errores y ahorra tiempo en la gestión de usuarios.
  • La utilización de cmdlets organizados en módulos facilita la administración avanzada y segura de cuentas.

Cómo crear y administrar usuarios en Windows con PowerShell

Dominar la gestión de usuarios en Windows a través de PowerShell supone una auténtica ventaja tanto para administradores de sistemas como para entusiastas que buscan agilizar procesos y automatizar tareas repetitivas. PowerShell es una herramienta poderosa que permite controlar en detalle usuarios, grupos y permisos en máquinas locales y en dominios, ideal para entornos empresariales, pero también útil a nivel particular cuando queremos tener bajo control quién accede a nuestro equipo y cómo lo hace.

Si bien muchos asocian la gestión de usuarios a la interfaz gráfica, quienes dan el salto a la administración vía línea de comandos descubren una flexibilidad y agilidad que no tiene comparación. PowerShell nos brinda, mediante sus cmdlets, la capacidad de crear usuarios, añadirlos a grupos, modificar sus propiedades, realizar operaciones masivas y, por supuesto, automatizar el día a día IT con scripts reutilizables. En este artículo te enseñaré a trabajar con usuarios y grupos locales y de dominio en Windows, con ejemplos prácticos, scripts y las mejores prácticas desde PowerShell.

¿Por qué usar PowerShell para gestionar usuarios en Windows?

El uso de PowerShell para administrar usuarios en Windows es cada vez más común en empresas y entornos profesionales. La línea de comandos elimina la necesidad de la interfaz gráfica, lo que reduce consumo de recursos, acelera las tareas y abre la puerta a la automatización. Además, es indispensable en servidores, máquinas virtuales y estaciones sin entorno gráfico.

PowerShell es un lenguaje de scripting orientado a objetos que interactúa directamente con el sistema operativo, permitiendo trabajar con cmdlets (comandlets) para realizar acciones concretas sobre objetos, como cuentas de usuario y grupos, con tan solo unas líneas de código.

Conceptos básicos: Cmdlets y módulos en PowerShell

Un aspecto fundamental de PowerShell es el uso de los llamados cmdlets, pequeños comandos con el formato verbo-sustantivo, como New-LocalUser o Add-LocalGroupMember. Cada cmdlet realiza una acción específica sobre un objeto del sistema. Estos cmdlets suelen estar organizados en módulos temáticos, como el módulo Microsoft.PowerShell.LocalAccounts para la gestión de usuarios y grupos locales.

Para descubrir los cmdlets disponibles, puedes usar comandos como:

  • Get-Module -ListAvailable: Lista todos los módulos instalados.
  • Get-Command -Module Microsoft.PowerShell.LocalAccounts: Muestra los cmdlets del módulo para cuentas locales.
  • Get-Help New-LocalUser: Consulta la ayuda detallada de cualquier cmdlet.

Creación y administración de usuarios locales con PowerShell

En máquinas Windows no unidas a un dominio, la gestión de usuarios locales suele ser fundamental. PowerShell ofrece cmdlets específicos para crear, modificar, consultar o eliminar cuentas de usuario locales. A continuación, repasaremos los pasos más importantes y ejemplos reales para que puedas aplicarlo fácilmente.

1. Crear un nuevo usuario local

El cmdlet principal para esto es New-LocalUser. Puedes crear un usuario básico con el siguiente comando:

New-LocalUser -Name "UsuarioEjemplo" -NoPassword -Description "Cuenta de pruebas"

Sin embargo, lo más habitual y seguro es establecer una contraseña encriptada:

$Password = Read-Host -AsSecureString
New-LocalUser -Name "UsuarioEjemplo" -Password $Password -FullName "Nombre Completo"
-Description "Cuenta de usuario para laboratorio"

El parámetro -Password requiere un objeto SecureString, por eso usamos Read-Host -AsSecureString para introducir la contraseña de forma segura sin mostrarla en pantalla.

2. Añadir el usuario a un grupo

Para dar permisos adicionales (por ejemplo, convertir al usuario en administrador), usa el siguiente cmdlet:

Add-LocalGroupMember -Group "Administradores" -Member "UsuarioEjemplo"

Esto incorpora el usuario creado al grupo de administradores locales, dándole todos los privilegios necesarios para gestionar el equipo.

3. Consultar usuarios locales y sus propiedades

  • Get-LocalUser: Lista todos los usuarios locales.
  • Get-LocalUser -Name "Administrador": Muestra información de un usuario específico.
  • Get-LocalUser | Format-Table Name,Enabled: Visualiza el estado (habilitado/deshabilitado) de todas las cuentas.

4. Modificar usuarios locales

Para cambiar atributos de un usuario:

Set-LocalUser -Name "UsuarioEjemplo" -Description "Nueva descripción"
Set-LocalUser -Name "UsuarioEjemplo" -PasswordNeverExpires $true

Para cambiar la contraseña protegiendo la privacidad:

$Password = Read-Host -AsSecureString
Set-LocalUser -Name "UsuarioEjemplo" -Password $Password

5. Eliminar o deshabilitar cuentas de usuario locales

Deshabilitar (para impedir el acceso sin borrar la cuenta):

Disable-LocalUser -Name "UsuarioEjemplo"

Eliminar la cuenta:

Remove-LocalUser -Name "UsuarioEjemplo"

6. Renombrar usuarios y modificar atributos adicionales

Rename-LocalUser -Name "AntiguoNombre" -NewName "NuevoNombre"
Set-LocalUser -Name "NuevoNombre" -FullName "Nuevo Nombre Completo"

Gestión de grupos locales desde PowerShell

La administración de grupos es tan importante como la de usuarios, ya que los grupos permiten asignar permisos de forma colectiva. Los cmdlets más relevantes son:

  • Get-LocalGroup: Lista todos los grupos del sistema.
  • New-LocalGroup -Name "Empleados" -Description "Grupo de empleados": Crea un grupo nuevo.
  • Add-LocalGroupMember -Group "Empleados" -Member "UsuarioEjemplo": Añade un usuario al grupo.
  • Get-LocalGroupMember -Name "Empleados": Consulta los miembros del grupo.
  • Remove-LocalGroupMember -Group "Empleados" -Member "UsuarioEjemplo": Elimina un usuario del grupo.
  • Remove-LocalGroup -Name "Empleados": Borra el grupo.

Gestión de usuarios y grupos en Active Directory (AD DS) con PowerShell

En entornos corporativos, lo habitual es trabajar con usuarios y grupos de dominio gestionados mediante Active Directory (AD DS). PowerShell permite interactuar con el dominio siempre que el módulo ActiveDirectory esté cargado. Este módulo se importa así:

Import-Module ActiveDirectory

Comprobar versión de PowerShell y módulo AD

  • $PSVersionTable.PSVersion o Get-Host: Consulta la versión instalada.
  • Import-Module ActiveDirectory: Importa el módulo necesario si aún no está disponible.

Consultas sobre el dominio y los usuarios

  • Get-ADDomain: Información del dominio actual.
  • Get-ADUser -Identity usuario: Datos de un usuario concreto.
  • Get-ADUser -Filter *: Listado completo de usuarios.
  • Get-ADUser -Filter '*' | Select Name: Muestra sólo los nombres.
  • (Get-ADUser -Filter *).count: Cuenta total de usuarios.

Crear usuarios de dominio (AD DS)

El comando clave para esto es New-ADUser. Para crear un usuario, primero necesitas definir la contraseña como objeto SecureString:

$userpassword = ConvertTo-SecureString -AsPlainText -Force -String "ContraseñaSegura"
New-ADUser -Name "NuevoUsuario" -AccountPassword $userpassword -Enabled $true

También puedes añadir descripción, habilitar la cuenta o establecer otros atributos:

New-ADUser -Name "Usuario2" -Description "Cuenta adicional" -Enabled $true -AccountPassword $userpassword

Modificar usuarios de dominio

  • Set-ADUser -Identity nombre -Description "Nueva descripción": Cambia la descripción.
  • Set-ADUser -Identity nombre -City "Madrid": Añade o modifica la ciudad.

Borrar usuarios de dominio

Para eliminar cuentas en AD, por ejemplo:

Remove-ADUser -Identity "UsuarioAEliminar"

Gestión de grupos en Active Directory

  • Get-ADGroup "GrupoPrueba": Información de un grupo.
  • Get-ADGroupMember "GrupoPrueba": Lista de miembros.
  • Add-ADGroupMember "GrupoPrueba" NuevoUsuario: Añade usuario a un grupo.

Cambiar la contraseña y desbloquear cuentas en AD

  • Set-ADAccountPassword usuario: Cambia o resetea la contraseña.
  • Unlock-ADAccount usuario: Desbloquea usuario bloqueado.

Automatización y gestión masiva de usuarios con PowerShell

Uno de los grandes puntos fuertes de PowerShell es la capacidad de trabajar en masa con cientos o miles de cuentas, ideal para nuevos despliegues, migraciones o departamentos con mucha rotación de personal.

Creación masiva de usuarios con CSV y scripts

Preparar un archivo CSV (por ejemplo, usuarios.csv) con la cabecera y datos:

nombre,contra
usuario01,clave01
usuario02,clave02
usuario03,clave03

Luego, usa este script para importar y crear usuarios locales:

$usuarios = Import-Csv -Path "c:\ruta\usuarios.csv"
foreach ($i in $usuarios) {
  $clave = ConvertTo-SecureString $i.contra -AsPlainText -Force
  New-LocalUser $i.nombre -Password $clave -AccountNeverExpires -PasswordNeverExpires
  Add-LocalGroupMember -Group "usuarios" -Member $i.nombre
}

Este script crea cada usuario con contraseña y los añade al grupo indicado. Permite repetir procesos y ahorrar horas de trabajo manual, evitando errores humanos.

Eliminación masiva de usuarios

Para borrar en bloque los mismos usuarios, simplemente modifica el script:

$usuarios = Import-Csv -Path "c:\ruta\usuarios.csv"
foreach ($i in $usuarios) {
  Remove-LocalUser $i.nombre
}

Buenas prácticas y consejos para gestionar usuarios con PowerShell

  • Realiza pruebas siempre en entornos de laboratorio antes de aplicar cambios en producción.
  • Protege la seguridad de las contraseñas usando SecureString y no introduciendo claves en texto plano.
  • Documenta y comenta tus scripts para facilitar el mantenimiento y auditoría.
  • Automatiza procesos repetitivos para ahorrar tiempo y reducir el margen de error.
  • Consulta la ayuda integrada en PowerShell con Get-Help para ver ejemplos y parámetros de cada cmdlet.
  • Utiliza filtros y pipelines para refinar resultados y trabajar de forma más eficiente.

PowerShell es mucho más que un simple reemplazo de la consola de comandos: es un entorno de gestión potente y moderno para administrar usuarios, grupos y políticas en Windows. Tanto si tu objetivo es crear un usuario puntual, gestionar una red local o administrar cientos de cuentas en un Directorio Activo, dominar los cmdlets y la lógica de PowerShell te permitirá optimizar y automatizar tareas rutinarias, ganar en seguridad y mantener controlada una infraestructura IT en crecimiento.

Artículo relacionado:
Cómo administrar los usuarios en Windows 10