Guía definitiva para gestionar usuarios de Windows con PowerShell

  • PowerShell permite automatizar la gestión de usuarios y grupos en Windows local y Active Directory.
  • Existen cmdlets específicos y módulos que amplían las capacidades de administración según el entorno.
  • La gestión masiva mediante scripts y archivos CSV ahorra tiempo y reduce errores en tareas repetitivas.

os gestionar usuarios windows con powershell

PowerShell es mucho más que una línea de comandos tradicional: se trata de una potente consola desarrollada por Microsoft, orientada a objetos y específicamente pensada para la administración avanzada de Windows. También para la gestión de usuarios. Sus cmdlets (comandlets o comandos especiales), siguen una sintaxis verbo-sustantivo y permiten ejecutar acciones concretas sobre elementos del sistema operativo, como usuarios, grupos, procesos, y mucho más.

Al tratarse de un entorno orientado a objetos, los cmdlets de PowerShell trabajan con datos estructurados y objetos, no simplemente con texto plano como en otras consolas. Esto permite filtrar, combinar y manipular los resultados fácilmente a través de la llamada ‘tubería’ (pipe) y otras funciones.

Módulos de PowerShell para la gestión de usuarios

Las funcionalidades de PowerShell se amplían mediante módulos, los cuales incluyen conjuntos de cmdlets específicos para diferentes tareas. Por ejemplo, el módulo Microsoft.PowerShell.LocalAccounts contiene todos los cmdlets necesarios para gestionar cuentas locales en equipos sin dominio. En entornos corporativos con Active Directory, el módulo ActiveDirectory habilita la administración avanzada de cuentas y grupos de dominio.

Para ver los módulos instalados y disponibles en tu sistema puedes ejecutar:

Get-Module -ListAvailable

Si querem encontrar un módulo específico relacionado con la gestión de cuentas locales, ejecutamos:

Get-Module -ListAvailable -Name Microsoft.PowerShell.LocalAccounts

Para consultar los comandos incluidos en un módulo concreto, por ejemplo, para ver todo lo disponible en LocalAccounts, hay que ejecutar:

Get-Command -Module Microsoft.PowerShell.LocalAccounts

Si necesitas buscar comandos con la palabra «user», puedes usar:

Get-Command *user*

Finalmente, para actualizar la ayuda de PowerShell (lo cual es muy recomendable antes de comenzar), se puede ejecutar este comando para tener referencia completa de los comandos y parámetros instalados:

Update-Help

powershell

Administración de usuarios locales con PowerShell

Muchas tareas cotidianas de gestión de cuentas de usuario se pueden realizar fácilmente desde PowerShell gracias a los cmdlets apropiados. Estas tareas incluyen crear, modificar, eliminar y auditar usuarios o grupos locales en equipos que no forman parte de un dominio.

  Análisis de estabilidad de Windows 11 en PCs antiguos tras varios meses

Obtener información de usuarios locales

  • Para listar todas las cuentas de usuario locales existentes:
Get-LocalUser
  • Si buscas información de una cuenta concreta:
Get-LocalUser -Name "Administrador"

Crear un nuevo usuario local

  • PowerShell permite crear nuevos usuarios con una gran variedad de parámetros:
New-LocalUser -Name "Usuario1" -FullName "Nombre Apellido" -Description "Usuario de ejemplo"
  • Si quieres crear un usuario con contraseña de forma segura:
$password = Read-Host -AsSecureString
New-LocalUser -Name "Usuario2" -Password $password -FullName "Segundo Usuario" -Description "Usuario número 2"

Parámetros habituales:

  • -Name: nombre de usuario (obligatorio)
  • -Password: contraseña
  • -FullName: nombre completo
  • -Description: descripción breve
  • -AccountExpires: fecha en que expira la cuenta
  • -Disabled: crea la cuenta como deshabilitada
  • -NoPassword: permite crear la cuenta sin contraseña

También es posible crear usuarios masivamente importando desde archivos CSV y usando scripts. Por ejemplo:

$usuarios = Import-Csv -Path "usuarios.csv"
foreach ($u in $usuarios) {
  $pwd = ConvertTo-SecureString $u.password -AsPlainText -Force
  New-LocalUser $u.user -Password $pwd
}

Modificar y eliminar cuentas de usuario local

  • Modificar atributos de usuarios (descripción, nombre o contraseña):
Set-LocalUser -Name "Usuario1" -Description "Nuevo responsable TIC"
  • Cambiar contraseña de usuario local:
$password = Read-Host -AsSecureString
Set-LocalUser -Name "Usuario1" -Password $password
  • Renombrar usuario:
Rename-LocalUser -Name "Usuario2" -NewName "usuario.nuevo"
  • Eliminar cuenta de usuario local:
Remove-LocalUser -Name "Usuario1"
  • Para eliminar usuarios en lote a partir de un archivo CSV:
$usuarios = Import-Csv -Path "usuariosbaja.csv"
foreach ($u in $usuarios) {
  Remove-LocalUser -Name $u.user
}
qué es Robycopy
Artículo relacionado:
Comandos imprescindibles de PowerShell y CMD para dominar Windows como un experto

Gestión de grupos locales con PowerShell

La administración de grupos de usuarios es igual de sencilla, permitiendo crear, modificar o borrar grupos desde la consola.

New-LocalGroup -Name "Empleados" -Description "Grupo de empleados"
  • Agregar usuarios a un grupo:
Add-LocalGroupMember -Group "Empleados" -Member "usuario.nuevo"
  • Listar miembros de un grupo:
Get-LocalGroupMember -Name "Empleados"
  • Eliminar usuario de un grupo:
Remove-LocalGroupMember -Group "Empleados" -Member "usuario.nuevo"
  • Borrar grupo local:
Remove-LocalGroup -Name "Empleados"
transferencia de archivos lenta en Windows 11
Artículo relacionado:
Qué son los permisos NTFS y cómo gestionarlos correctamente en Windows

Administrar cuentas en Active Directory (AD) mediante PowerShell

En redes corporativas, la gestión de usuarios va mucho más allá de los equipos locales. El control de cuentas, grupos y permisos en Active Directory (AD) es el día a día de cualquier departamento de IT. PowerShell facilita enormemente la administración, permitiendo desde tareas básicas hasta operaciones masivas y automatización avanzada.

  • Antes de empezar, asegúrate de importar el módulo de Active Directory:
Import-Module ActiveDirectory
  • Comprobar versión de PowerShell:
Get-Host
$PSVersionTable.PSVersion

Auditoría y consulta de información de dominio y usuarios

  • Obtener información del dominio y del bosque de AD: Este proceso permite gestionar usuarios en entornos híbridos o en la nube con Azure AD, facilitando la sincronización y control de accesos.
Get-ADForest
Get-ADDomain
  • Puedes filtrar la salida para mostrar sólo información relevante:
Get-ADDomain | Select Name, DomainMode | Format-Table
  • Consultar controladores de dominio:
Get-ADDomainController
  • Obtener información de un usuario concreto:
Get-ADUser usuario -Properties *
  • Consultar sólo campos específicos, por ejemplo, la descripción o la fecha de creación:
Get-ADUser usuario -Properties Description, whenCreated
  • Para listar todos los usuarios dados de alta:
Get-ADUser -Filter *
  • ¿Quieres contar el número de usuarios en el dominio?
(Get-ADUser -Filter *).Count

Crear y eliminar usuarios en Active Directory

  • Primero, define la contraseña:
$pass = ConvertTo-SecureString -AsPlainText -Force -String "TuContraseñaSegura"
  • Crear usuario con contraseña y otras propiedades:
New-ADUser -Name "NuevoUsuario" -Description "Cuenta de prueba" -Enabled $true -AccountPassword $pass

Puedes añadir más parámetros como -GivenName, -Surname o -DisplayName para mayor personalización.

  • Eliminar usuario de AD:
Remove-ADUser -Identity "UsuarioAEliminar"
  • Para eliminar usuarios de forma masiva, importa un archivo CSV con los nombres y utiliza:
$usuarios = Import-Csv -Path "usuariosaeliminar.csv"
foreach ($u in $usuarios) {
  Remove-ADUser -Identity $u.user
}

Gestión de miembros y grupos de Active Directory

  • Comprobar a qué grupos pertenece un usuario:
Get-ADUser usuario -Properties MemberOf
  • Ver miembros de un grupo concreto:
Get-ADGroupMember "GrupoEjemplo"
  • Añadir usuarios a un grupo:
Add-ADGroupMember "GrupoEjemplo" usuario1,usuario2
  • Eliminar usuarios de un grupo:
Remove-ADGroupMember "GrupoEjemplo" usuario1,usuario2
  • Crear un grupo nuevo en AD:
New-ADGroup -Name "GrupoNuevo" -GroupScope Global -Path "OU=Departamentos,DC=dominio,DC=local"

Gestión masiva de usuarios en Active Directory

  • Para crear múltiples cuentas a partir de un archivo CSV:
$usuarios = Import-Csv -Path "usuarios.csv"
foreach ($u in $usuarios) {
  $pass = ConvertTo-SecureString $u.password -AsPlainText -Force
  New-ADUser -Name $u.user -AccountPassword $pass -Enabled $true
}

De igual forma, para eliminarlas masivamente solo necesitas modificar el bucle para usar Remove-ADUser.

  La falsa actualización de Windows que esconde un peligroso malware ladrón de contraseñas

Gestión de usuarios en la nube y Microsoft 365

No solo en entornos locales o de dominio es útil PowerShell: también puedes usarlo para gestionar usuarios en entornos de Microsoft 365 y Azure AD. Esto permite unificar la administración en sistemas híbridos de forma centralizada.

Conectar PowerShell a tu inquilino de Microsoft 365 y administrar usuarios: Esto es fundamental para gestionar usuarios Windows con PowerShell en entornos híbridos y en la nube.

  • Asignar licencias a usuarios
  • Crear, modificar y eliminar cuentas
  • Gestionar roles y permisos

Para ello, necesitarás instalar los módulos específicos para Microsoft 365 o Azure AD y seguir el proceso de login y autenticación correspondiente.

transferencia de archivos lenta en Windows 11
Artículo relacionado:
Cómo cambiar la ubicación predeterminada de las carpetas del sistema en Windows 11

Consejos y buenas prácticas para la administración con PowerShell

  • Siempre realiza cambios primero en entornos de pruebas, evitando ejecutar scripts directos en sistemas de producción.
  • Utiliza la ayuda integrada de PowerShell (Get-Help) para consultar ejemplos y sintaxis antes de ejecutar comandos avanzados.
  • Guarda y versiona tus scripts para poder reutilizarlos y depurarlos fácilmente.
  • En la gestión masiva, valida bien los archivos CSV y los parámetros antes de lanzar importaciones o eliminaciones.

La gestión de usuarios en Windows con PowerShell permite automatizar tareas complejas, optimizar la administración de grandes volúmenes de cuentas, y asegurar una mayor precisión en la serie de operaciones cotidianas en entornos de TI. Dominar estas herramientas es clave para incrementar la eficiencia y el control en la gestión de sistemas tanto locales como en la nube.