os
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
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.
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
}
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"
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.
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.
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.
