Com gestionar usuaris de Windows des de PowerShell: guia total

Darrera actualització: octubre 23, 2025
Autor: 2c0bi
  • Estructura de cmdlets, mòduls i ajuda per administrar identitats amb PowerShell.
  • Operacions completes sobre usuaris i grups locals i Active Directory.
  • Automatització amb CSV i scripts per a altes/baixes massives i canvis d‟atributs.
  • Panorama de gestió a Microsoft 365 (usuaris, grups, llicències) amb PowerShell.

Gestió d'usuaris amb PowerShell

Gestionar usuaris des de PowerShell és una d'aquestes habilitats que, un cop la domines, t'estalvia un temps brutal i et dóna un control total del teu entorn. És igual si treballes amb un equip aïllat, amb un clúster de servidors o amb un domini complet: fer-ho per consola és més ràpid, scriptable i repetible que barallar-te amb finestres.

A més, molts servidors no tenen interfície gràfica per rendiment, seguretat o simple economia de recursos. PowerShell encaixa com un guant en aquest escenari: un shell modern, orientat a objectes i amb una sintaxi consistent de verb-substantiu que permet operar a baix nivell sense haver de recordar cada palanca del sistema.

PowerShell en dues pinzellades: cmdlets, ajuda i filosofia

PowerShell es basa en cmdlets amb sintaxi verb-substantiu (per exemple, 'New-LocalUser'), orientats a treballar amb objectes del sistema en comptes de text pla. Això implica que pots canalitzar (pipeline) resultats a altres cmdlets i filtrar per propietats amb total comoditat.

Per donar-vos suport en el dia a dia, actualitzeu els continguts d'ajuda amb 'Update-Help' i consulta exemples reals amb 'Get-Help Nom-Cmdlet -Examples'. Mantenir l'ajuda al dia us permetrà descobrir paràmetres, usos i matisos que no recordareu de memòria.

Els cmdlets estan agrupats en mòduls funcionals. Per exemple, tot allò de comptes locals viu a 'Microsoft.PowerShell.LocalAccounts', mentre que el directori actiu s'administra amb el mòdul 'ActiveDirectory'. Càrrega i consulta el disponible amb 'Get-Module -ListAvailable' i després inspecciona les seves ordres amb 'Get-Command -Module NomDelModul'.

La canalització és clau: pots fer filtres expressius amb 'Where-Object'. La sintaxi moderna et deixa escriure alguna cosa com 'Where-Object Name -like 'LocalAccounts*» en lloc del clàssic '$_.Name -like '*LocalAccounts*», quedant més llegible i fàcil de mantenir.

Administrar comptes locals i AD amb PowerShell

Usuaris locals: llistar, crear, modificar i eliminar

El mòdul 'Microsoft.PowerShell.LocalAccounts' ofereix cmdlets per administrar usuaris i grups locals. Comprova que està disponible amb 'Get-Module -ListAvailable -Name Microsoft.PowerShell.LocalAccounts' i explora les ordres amb 'Get-Command -Module Microsoft.PowerShell.LocalAccounts'.

Per obtenir comptes locals, feu servir 'Get-LocalUser'. Aquest cmdlet torna tant comptes integrats (com 'Administrador' o 'Convidat') com els que creus tu. Accepta filtres per nom ('-Name') i fins i tot per identificador de seguretat (SID):

Get-LocalUser
Get-LocalUser -Name 'Administrador'
Get-LocalUser -SID 'S-1-5-21-...'  # Ejemplo de consulta por SID

La sortida és un objecte 'LocalUser' que inclou, entre d'altres, la propietat 'PrincipalSource' (Windows 10/Server 2016 o superior) indicant el seu origen: 'Local', 'Active Directory', 'Compte Microsoft' o 'Microsoft Entra group'.

Crear usuaris és tan simple com executar 'New-LocalUser'. Podeu arrencar amb el mínim (nom) o definir una contrasenya segura i altres atributs des del primer moment:

# Alta básica (sin contraseña; la cuenta no podrá iniciar sesión hasta que se habilite y asigne clave)
New-LocalUser -Name 'Usuario1' -Description 'Cuenta de pruebas'

# Alta con contraseña solicitada por consola
$password = Read-Host -AsSecureString
New-LocalUser -Name 'Usuario2' -Password $password -FullName 'Usuario 2 curso' -Description 'Usuario número 2'

Entre els paràmetres més útils de 'New-LocalUser' estan -AccountExpires, -AccountNeverExpires, -Description, -Disabled, -FullName, -NoPassword, -UserMayNotChangePassword y -Confirmar. Tria la combinació que t'encaixi amb la política de permisos al Windows 10.

Si necessites anomenar o ajustar atributs, combina 'Rename-LocalUser' i 'Set-LocalUser':

Rename-LocalUser -Name 'Usuario2' -NewName 'i.landajuela'
Set-LocalUser -Name 'i.landajuela' -Description 'Responsable TIC'
Get-LocalUser -Name 'i.landajuela' | Set-LocalUser -FullName 'Iker Landajuela'
Set-LocalUser -Name 'i.landajuela' -PasswordNeverExpires $false

Per controlar l'inici de sessió, recordeu que podeu deshabilitar o habilitar comptes locals directament:

Disable-LocalUser -Name 'Usuario1'
Enable-LocalUser -Name 'i.landajuela'

El canvi de contrasenya en un compte existent es fa amb 'Set-LocalUser -Password':

$password = Read-Host -AsSecureString
Get-LocalUser -Name 'i.landajuela' | Set-LocalUser -Password $password

Per a la eliminació, 'Remove-LocalUser' és directe i admet canalització. Convé llistar l'estat després de l'esborrat per validar el resultat:

Remove-LocalUser 'Usuario1'
Get-LocalUser | Format-Table Name, Enabled

Grups locals: alta, membres i neteja

Consulta primer el que tens amb 'Get-LocalGroup' i detall d'un grup amb 'Get-LocalGroup -Name'. Per crear un contenidor lògic nou:

New-LocalGroup -Name 'Empleados' -Description 'Grupo empleados'

Afegir i treure membres és tasca de 'Add-LocalGroupMember' i 'Remove-LocalGroupMember'. Accepten usuaris locals i de domini (usant el format 'DOMINI\compte'):

Add-LocalGroupMember -Group 'Empleados' -Name 'i.landajuela' -Verbose
Add-LocalGroupMember -Group 'Empleados' -Name 'DOMINIO\i.landajuela'
Get-LocalGroupMember -Name 'Empleados'
Remove-LocalGroupMember -Group 'Empleados' -Name 'i.landajuela'

Si el grup deixa de ser necessari, pots esborrar-ho sense complicació:

Remove-LocalGroup -Name 'Empleados'

Active Directory (AD DS): preparar l'entorn i les primeres consultes

Per a un domini, el primer és verificar la teva versió de PowerShell i carregar el mòdul 'ActiveDirectory'. Comprova la versió amb 'Get-Host' o '$PSVersionTable.PSVersion' i, si treballes al Windows Server 2012 R2, assegura't de tenir WMF 5.1 instal·lat per accedir a cmdlets actuals.

Obre PowerShell com a administrador i importa el mòdul:

Import-Module ActiveDirectory

Connecta't conceptualment al bosc i al domini consultant la seva informació amb 'Get-ADForest' y 'Get-ADDomain'. Pots seleccionar només camps clau i donar format a la sortida per veure-la a taula, llista o fins i tot en una quadrícula interactiva:

Get-ADForest | Select-Object Name, Domains, ForestMode
Get-ADDomain | Select-Object Name, DomainMode
Get-ADDomain | Select-Object Name, DomainMode | Format-Table
Get-ADDomain | Select-Object Name, DomainMode | Format-List
Get-ADDomain | Select-Object Name, DomainMode | Out-GridView

Per saber on estàs trepitjant, identifica controladors de domini i filtra propietats amb '-Filter' o 'Select-Object':

Get-ADDomainController -Filter * | Select-Object Name, IPv4Address, Site, OperationMasterRoles

Usuaris a Active Directory: alta, consulta, canvis i baixa

Crear usuaris d'AD és cosa de 'New-ADUser'. L'alta mínima defineix el nom de l'objecte, però normalment és afegir nom, cognoms i ubicació (OU o contenidor) dins del directori. Convé preparar la contrasenya com a objecte segur:

# Alta mínima
New-ADUser -Name 'Victor'

# Alta más completa con ubicación
New-ADUser -Name 'Victor' -GivenName 'Victor' -Surname 'Genovés' -Path 'CN=Users,DC=somebooks,DC=local'

# Alta con contraseña (ejemplo genérico)
$userPassword = ConvertTo-SecureString -AsPlainText -Force -String 'ContraseñaSegura123!'
New-ADUser -Name 'jioller2' -Description 'Segunda Cuenta de Nacho' -Enabled $true -AccountPassword $userPassword

Per a consultar la informació d'un usuari, 'Get-ADUser' a pèl torna allò bàsic. Si vols veure-ho tot, fes servir '-Properties *' i, si la sortida és enorme, recolza't en 'more' per paginar:

Get-ADUser 'Victor' -Properties * | more

també pots auditar quants usuaris hi ha al domini amb un simple recompte:

(Get-ADUser -Filter *).Count

Un cop creat el compte, l'habitual és assignar-la a grups amb 'Add-ADGroupMember'. Recorda que utilitza el 'SamAccountName' del compte:

Add-ADGroupMember 'GrupoPrueba' 'jioller'

Per a modificar atributs (descripció, ciutat, departament, etc.) utilitza 'Set-ADUser' amb els paràmetres apropiats. Si hi ha espais, és prudent mantenir la cadena entre cometes:

Set-ADUser 'jioller' -Description 'Usuario de Nacho'

Quant a contrasenyes, si coneixes l'actual, sol·licita el canvi interactiu amb 'Set-ADAccountPassword'; si no, fes servir '-Reset' per forçar el restabliment:

Set-ADAccountPassword 'jioller'
Set-ADAccountPassword 'jioller' -Reset

Si un compte està bloquejat per intents fallits, la solució és desbloquejar- amb 'Unlock-ADAccount', i pots provar primer amb '-WhatIf' per simular:

Unlock-ADAccount 'jioller' -Verbose
Unlock-ADAccount 'jioller' -WhatIf

La eliminació a AD es realitza amb 'Remove-ADUser' especificant la identitat; per exemple, amb el nom distingit del compte ('CN=…,OU=…,DC=…'). No confonguis aquest cmdlet amb 'Remove-LocalUser', que és exclusivament per a comptes locals:

Remove-ADUser -Identity 'CN=Victor,CN=Users,DC=somebooks,DC=local'

Grups a Active Directory: informació i membres

Per revisar dades d'un grup específic, feu servir 'Get-ADGroup' amb el nom del grup. És ràpid per confirmar tipus, àmbit o atributs clau:

Get-ADGroup 'GrupoPrueba'

Si el que busques és saber qui pertany a un grup i el tipus d'objecte de cada entrada (usuari, grup, etc.), 'Get-ADGroupMember' us mostra d'una ullada:

Get-ADGroupMember 'GrupoPrueba'

Gestió massiva amb CSV (local i domini)

Per a altes a granel, la recepta típica és un CSV amb capçaleres clares i un bucle 'foreach' que processi línia a línia. En local, una estructura mínima pot ser 'user,password':

# usuarios.csv
user,password
usuario01,password01
usuario02,password02

Importa el fitxer i crea cada compte local convertint la contrasenya a SecureString. Aquest patró evita ficar contrasenyes en clar al cmdlet de creació:

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

Per a esborrats massius, només cal un CSV amb la capçalera 'user' i un bucle que truqui a 'Remove-LocalUser':

# borradousuarios.csv
user
usuario01
usuario02

$lista = Import-Csv -Path 'borradousuarios.csv'
foreach ($i in $lista) {
  Remove-LocalUser $i.user
}

Si fas el mateix a Active Directory, adapta el cmdlet d'alta/esborrat i la destinació (ou/Path) a la teva estructura. Com a guia, utilitza 'New-ADUser' i 'Remove-ADUser', i considera parametritzar OU, UPN, llicències, etc., segons les teves polítiques.

Get-LocalUser en profunditat: sintaxi, filtres i exemples útils

El cmdlet 'Get-LocalUser' accepta dos conjunts de paràmetres principals: per nom ('-Name') i per SID ('-SID'). Tots dos admeten valors a la canalització i '-Name' suporta comodins:

# Sintaxis esencial
Get-LocalUser  <String[]>]
Get-LocalUser  <SecurityIdentifier[]>]

Exemples pràctics que et treuen problemes en segons: per nom exacte, per compte Microsoft vinculat o per SID específic:

# Por nombre
Get-LocalUser -Name 'AdminContoso02'

# Cuenta conectada a Microsoft Account
Get-LocalUser -Name 'MicrosoftAccount\[email protected]'

# Por SID
Get-LocalUser -SID 'S-1-5-21-9526073513-1762370368-3942940353-500'

Combina 'Get-LocalUser' amb 'Where-Object' per cerques flexibles aprofitant comodins ('*') i filtrat per columnes/propietats:

Get-LocalUser | Where-Object Name -like 'Admin*' | Select-Object Name, Enabled, Description

Trucs de productivitat, requisits i GUI alternativa

Abans de posar-te a fons, mantingues l'ajuda actualitzada i revisa versions. En entorns antics com Windows Server 2012 R2, instal·la WMF 5.1 per accedir a cmdlets moderns. T'evitaràs errors rars i paràmetres que no existeixen.

Per localitzar cmdlets per paraula clau, utilitza 'Get-Command' amb '-Module' o '-Name' i fes cerques tipus 'usuari' o 'group' segons idioma del teu entorn. És una forma ràpida de descobrir capacitats sense sortir de la consola.

Si preferiu una vista gràfica puntual, obriu 'lusrmgr.msc' per gestionar usuaris i grups locals. No és tan àgil com scriptar, però et pot ajudar a validar canvis en viu o resoldre una urgència visualment.

Recorda sempre validar el que fas: revisa membres de grups, estats d''Enabled/Disabled', dates d'expiració de comptes i la propietat 'PasswordNeverExpires' d'acord amb les polítiques de la teva organització.

Microsoft 365 des de PowerShell: panorama d'operacions clau

Més enllà de l'equip i del domini, molts administradors gestionen usuaris al núvol. Amb PowerShell i Microsoft Graph pots gestionar comptes de Microsoft 365 i automatitzar tasques clàssiques: altes, baixes, actualització d'atributs, membres de grups, gerents (manager) i administració de llicències.

A nivell operatiu, les accions típiques inclouen crear usuaris (individual i massiu), llistar tots els usuaris, actualitzar propietats, afegir/treure usuaris de grups (també en lot), assignar i retirar llicències i, arribat el cas, eliminar comptes. L'enfocament és similar al d'AD: cmdlets consistents i pipelins per encadenar passos.

Per començar amb M365, planteja't un mòdul de connexió al teu tenant, rols adequats i patrons repetibles: scripts parametritzats, fitxers CSV per a càrregues massives i comprovacions automàtiques (existència prèvia, llicències disponibles, pertinences requerides).

Seguretat i bones pràctiques en administrar identitats

Treballar amb identitats exigeix ​​mim: utilitza sempre SecureString per a contrasenyes, evita que quedin en text clar en scripts i repositoris, i contempla el xifratge de credencials si automatitzes en tasques programades.

aplica el principi de mínim privilegi: no executis la consola com a administrador si no és necessari, i limita permisos de compte de servei i dels scripts d'automatització segons el seu abast real, i considera mesures per evitar que els usuaris instal·lin programari.

Si toquejaràs de debò, munta abans un entorn de proves (maqueta/pilot) per evitar ensurts en producció. A AD DS, prova en una OU de laboratori; en local, utilitza una VM d'un sol ús. Verifica que tot funciona i després desplega el procediment de producció.

Per a auditoria ràpida, combina 'Get-ADUser -Filter *' amb 'Select-Object' i recomptes, o genera informes periòdics sobre altes, baixes i canvis de membres. Tenir aquesta foto al dia t'estalvia maldecaps.

Amb PowerShell pots cobrir el cicle complet de gestió d'usuaris i grups: des de comptes locals amb 'Microsoft.PowerShell.LocalAccounts', passant pel domini amb 'ActiveDirectory', fins a Microsoft 365 amb Graph/PowerShell. Si a tot això li sumes ajudes com 'Update-Help', cerques amb 'Get-Command' i filtres nets en pipeline, tindràs un flux sòlid per crear, consultar, modificar, bloquejar/desbloquejar, resetejar contrasenyes, gestionar membres i orquestrar càrregues massives amb CSV de forma segura i eficient.

Article relacionat:
Com configurar usuaris a Windows 7