Si has arribat fins aquí preguntant-te si val la pena aprendre a fer una automatització de PowerShell sense ser administrador de sistemes, ja t'avanço alguna cosa: la resposta sol ser un sí rotund. Tot i que moltes guies se centren en tasques d'administració de servidors, dominis o núvols corporatius, PowerShell és una eina brutal tant per automatitzar el dia a dia al teu equip com per obrir-te portes al món professional, encara que ara mateix no gestiones un Active Directory ni una infraestructura complexa.
Alhora, és cert que el potencial real de PowerShell brilla quan s'usa per a automatització massiva : gestió d'usuaris, moviments a Active Directory, control de recursos a Microsoft 365, Azure, Power Apps… Per això, en aquest article veurem què es pot fer, com es fa i en quins escenaris et pot venir de cinema, tant si ets admin com si només vols portar el teu producte.
Té sentit PowerShell si no ets administrador?
Molta gent es planteja que, si no voleu tocar servidors, dominis ni xarxes, PowerShell potser no té utilitat en el seu dia a dia . I és normal pensar-ho quan la majoria d'exemples que es veuen parlen de boscos d'Active Directory, controladors de domini, llicències de Microsoft 365 o desplegaments a Azure.
Tanmateix, fins i tot com a usuari “de peu” pots automatitzar tasques repetitives : netejar fitxers temporals, comprovar l'ús de memòria o disc, llançar aplicacions amb diferents paràmetres, fer còpies de seguretat simples, processar fitxers CSV, etc. i programar-les amb el Programador de tasques per automatitzar manteniment.
Dit això, on realment s'enlaira és quan l'uses per administrar infraestructures Microsoft : Active Directory, Azure, Microsoft 365, Power Apps, Dynamics 365, etc. Aquí és on entren en joc els mòduls i cmdlets d'administració que veurem a continuació i on et pots estalviar centenars d'hores de treball manual.
Cmdlets de PowerShell per automatitzar plataformes Microsoft
PowerShell disposa de diferents biblioteques de cmdlets especialitzades per a cada servei de Microsoft. Aquestes biblioteques són mòduls que s'instal·len i carreguen a la sessió de PowerShell per poder executar ordres específiques de cada plataforma.
Power Apps: automatitzar entorns, apps i connexions
Els cmdlets de Power Apps estan pensats perquè tant creadors com administradors puguin gestionar entorns, aplicacions i fluxos sense dependre sempre del portal web. Amb ells podeu llistar entorns, veure aplicacions, revisar connectors i connexions, o crear fluxos de treball de govern sobre qui pot crear què i on.
Per exemple, amb ordres com Get-AdminPowerAppEnvironment pots obtenir un llistat complet d'entorns, veure el nom per mostrar, el GUID i altres detalls essencials per a automatitzacions posteriors. Això és clau quan necessites treballar després amb scripts que actuen sobre un entorn concret.
Microsoft 365: automatització orientada a l'usuari
A l'entorn de Microsoft 365, PowerShell s'utilitza per automatitzar tasques relacionades amb usuaris i llicències . Des d'assignar o revocar llicències de forma massiva, fins a revisar quins usuaris tenen un pla determinat, deshabilitar comptes, configurar propietats, etc. i, si necessiteu aprofundir, podeu consultar guies per administrar usuaris des de PowerShell.
Utilitzar cmdlets de Microsoft 365 us permet, per exemple, gestionar altes i baixes quan entra o surt personal de l'organització, sense haver de donar mil voltes pel portal d'administració. És especialment útil quan parlem de centenars d'usuaris i polítiques que cal aplicar amb precisió.
Dynamics 365 i Dataverse
En entorns amb bases de dades sobre Dataverse, els mòduls de PowerShell per a Dynamics 365 aporten compatibilitat amb l' API d'administració en línia i amb la implementació de solucions automatitzades a diferents entorns.
Això es tradueix que pots desplegar solucions, moure components entre entorns, administrar configuracions o llançar tasques repetitives sense haver de fer-ho a mà cada cop. És un enfocament perfecte per a escenaris amb diverses organitzacions, entorns de prova i producció.
Azure PowerShell
La biblioteca d'Azure PowerShell permet que qualsevol component d'Azure formi part de la teva solució automatitzada : màquines virtuals, xarxes, emmagatzematge, gateways, etc. També et serveix per integrar recursos locals, com ara una porta d'enllaç d'aplicació, a la configuració global de la teva infraestructura.
Aquest tipus d'automatització és clau quan vols mantenir consistència entre entorns , desplegar infraestructura com a codi o executar tasques recurrents (apagat de màquines fora d'horari, revisió de costos, etc.).
Exemples de tasques administratives amb Power Apps i PowerShell
Per il·lustrar el potencial de PowerShell al govern de Power Apps, podem veure algunes tasques típiques orientades a entorns i aplicacions . El cmdlet de capçalera és Get-AdminPowerAppEnvironment, que torna la llista d'entorns disponibles.
En executar-lo sense paràmetres, aconseguiràs informació clau de cada entorn , com ara el nom visible, el seu identificador (GUID) i altres dades. Aquest GUID és imprescindible per a operacions posteriors més detallades.
Si voleu localitzar l'entorn predeterminat de l'inquilí, podeu aplicar paràmetres addicionals , com -Default, que filtren el resultat per trobar aquest entorn genèric ràpidament.
Un cop coneixeu el GUID o el nom intern de l'entorn, podeu utilitzar-lo per aprofundir en els vostres detalls , per exemple, llistant connexions, aplicacions associades o fluxos. Combinant cmdlets amb l'operador de canalització (pipe) és possible encadenar consultes: obtenir l'entorn i, sobre aquest resultat, llançar altres cmdlets com ara Get-AdminPowerAppConnection.
Gràcies a la canonada ia la manipulació de propietats amb ordres com Select o Group , és possible transformar la sortida, agrupar aplicacions per entorn i generar objectes personalitzats que mostrin de forma clara, per exemple, el nombre d'apps per cada entorn, juntament amb el nom descriptiu.
Exemple ràpid: comprovació de memòria amb PowerShell

Perquè es vegi que PowerShell també és útil sense ser administrador de dominis, pots fer servir un cmdlet tan simple com Get-CimInstance sobre la classe Win32_OperatingSystem per consultar la memòria lliure del sistema.
Combinant aquesta informació amb una petita expressió de càlcul, pots convertir la memòria lliure a GB, arrodonir-la i comparar-la amb un llindar passat com a paràmetre a un script (per exemple, 80 GB). Segons el resultat, mostrareu un avís de memòria baixa o un missatge indicant que tot està correcte.
Aquest tipus de script, encara que senzill, exemplifica bé com PowerShell barreja objectes, operacions matemàtiques i control de flux (condicionals) per crear utilitats ràpides que pots adaptar al teu entorn sense necessitat de grans coneixements previs i executar-les des de Windows Terminal.
Executar programes com a usuari normal des d'un script elevat
Un problema força comú és tenir un script que necessita executar-se amb privilegis dadministrador per a certes tasques (per exemple, canvis de sistema), però que al mateix temps ha de llançar una aplicació que volem corri amb permisos dusuari estàndard.
Imagina un script amb menú i bucles que reinicia aplicacions amb diferents arguments. Algunes d'aquestes accions requereixen elevació, però el programa final hauria de llençar-se sense privilegis elevats . Usar Start-Process amb paràmetres com -RunAs o -Credential pot obligar-te a introduir la contrasenya cada vegada, cosa que és poc pràctica.
La solució passa per jugar amb contextos de seguretat , aprofitar l'usuari interactiu actual o delegar el llançament en un altre procés que no estigui elevat. No és una cosa trivial, però deixa clar com PowerShell pot gestionar processos i permisos de manera força sofisticada, més enllà de la simple execució d'ordres.
Preparar PowerShell per treballar amb Active Directory
Si gestionaràs usuaris, grups o equips en un AD DS Server, el primer pas és verificar la versió de PowerShell instal·lada. Algunes funcionalitats requereixen versions concretes o, com a mínim, saber què tens per evitar comportaments inesperats.
Comandes com Get-Host , $PSVersionTable o directament $PSVersionTable.PSVersion us permeten comprovar versió i característiques. Get-Host torna informació sobre la consola, mentre que PSVersionTable ofereix un resum detallat de la versió de PowerShell i altres dades de l'entorn.
Un cop comprovat que tot està en ordre, heu d' importar el mòdul d'Active Directory , que és el que afegeix tots els cmdlets necessaris per treballar amb usuaris, grups, boscos, dominis, controladors, etc. El mòdul s'anomena precisament ActiveDirectory.
Per fer-ho, és recomanable obrir la consola de PowerShell amb permisos d'administrador i executar Import-Module ActiveDirectory. Si no apareix cap error, el mòdul queda carregat i llest per utilitzar. A partir d'aquest moment, cmdlets com ara Get-ADUser, New-ADUser, Get-ADDomain o Get-ADGroup estaran disponibles.
Consulteu informació del bosc i del domini
Un cop teniu accés al mòdul d'Active Directory, una pràctica molt habitual és obtenir una vista general de la infraestructura . Per això, es fan servir cmdlets que informen sobre el bosc (forest), el domini i els controladors de domini.
Informació del bosc d'AD DS
El cmdlet Get-ADForest retorna dades del bosc, com ara el nom, la llista de dominis, els llocs, l'arrel del domini, les particions, el mestre de noms de domini i el nivell funcional.
Aquesta sortida es pot filtrar amb Select i l'operador de canonada per mostrar només els camps que us interessen. Per exemple, només el mestre de noms de domini o el nivell funcional, cosa molt útil durant auditories o tasques de revisió.
Informació del domini
De manera similar, el cmdlet Get-ADDomain ofereix informació sobre el domini actual: nom del domini, dominis fills, domini pare, arrel DNS, nivell funcional, bosc al qual pertany, nom NetBIOS, emulador PDC, mestre RID o mestre d'infraestructura.
També aquí podeu utilitzar pipes i Select per mostrar només alguns camps, com Name o DomainMode, o combinar-los a la mateixa sortida. Això ajuda a verificar ràpidament l'estat i la configuració del domini sense haver de navegar per consoles gràfiques.
Formats de sortida: taula, llista i finestra
PowerShell permet modelar la presentació de la informació per fer-la més còmoda de llegir . Les ordres Format-Table (FT), Format-List (FL) i Out-GridView són tres opcions molt utilitzades.
Per exemple, podeu canalitzar la sortida de Get-ADDomain a FT per visualitzar-la a la taula , a FL per veure-la en format de llista amb més detall, oa Out-GridView per obrir una finestra interactiva on filtrar i ordenar.
Controladors de domini
El cmdlet Get-ADDomainController us dóna informació sobre els DC de la vostra infraestructura. És possible utilitzar el paràmetre -Filter per seleccionar només certs controladors o, de nou, combinar-lo amb Select per mostrar camps específics (nom, lloc, rol, etc.).
Gestió d'usuaris a Active Directory amb PowerShell
Un dels usos més habituals de PowerShell amb AD DS és la gestió de comptes d'usuari : consultes, altes i baixes, canvis de contrasenya, desbloquejos i modificacions d'atributs.
Consultar usuaris i propietats
El cmdlet bàsic per obtenir informació d'usuaris és Get-ADUser . Podeu utilitzar-lo indicant directament el nom del compte per veure les vostres dades principals.
Si necessiteu informació més detallada, el paràmetre -Properties us indica quins camps voleu veure. Per exemple, podeu mostrar totes les propietats amb * o només algunes com CN, UserPrincipalName, whenCreated o whenChanged, segons convingui.
També és molt útil llançar una consulta general com Get-ADUser -Filter * i combinar-la amb .Count per saber quants usuaris hi ha donats d'alta al domini. Això serveix com a petita auditoria ràpida per detectar altes inesperades o verificar volums.
Alta i baixa d'usuaris individuals
Per crear nous usuaris a Active Directory, el cmdlet clau és New-ADUser . Abans de fer-lo servir, és freqüent preparar la contrasenya amb ConvertTo-SecureString, ja que per defecte no s'admet passar una contrasenya en text pla sense aquesta conversió.
Un cop tingueu la contrasenya segura en una variable, podeu crear l'usuari amb el mínim (nom i contrasenya) o afegir paràmetres com Description, habilitar el compte des del primer moment o definir altres atributs.
Quant a l'eliminació, en entorns locals és habitual veure ordres com Remove-LocalUser per esborrar comptes del sistema local. Per a usuaris de domini, es farien servir cmdlets equivalents, remenant el compte directament de l'AD. A més, pots filtrar usuaris per patrons de nom utilitzant -Filter amb expressions del tipus Name -like «cadena*» i combinant-ho amb Select per llistar només el camp Name.
Altes i baixes massives d'usuaris mitjançant CSV
Un dels punts forts de PowerShell és l' automatització massiva d'operacions . Per crear o eliminar molts usuaris alhora, el més habitual és fer servir fitxers CSV i scripts que els recorren línia a línia.
En el cas de la creació massiva a nivell local, pots tenir un fitxer CSV amb columnes user i password i diverses files amb els parells usuari/contrasenya. Importeu el fitxer amb Import-Csv a una variable (per exemple, $llistad'usuaris) i després recorreu aquesta llista amb un bucle foreach.
Dins del bucle, converteixes la contrasenya a SecureString i crides a cmdlets com New-LocalUser o New-ADUser segons treballs a l'equip local o al domini. Així, per cada fila del CSV, es crea un usuari usant les dades de la línia. Si treballeu amb fitxers locals, podeu automatitzar tasques amb fitxers per preparar o validar aquests CSV abans d'importar-los.
Per a l'eliminació massiva, el procés és gairebé idèntic, però el CSV sol contenir només el nom d'usuari. Després d'importar-ho, un foreach recorre la llista i truca a Remove-LocalUser o ordres equivalents d'AD per a cada compte registrat.
Canviar contrasenyes i desbloquejar comptes
El cmdlet Set-ADAccountPassword permet modificar o resetejar contrasenyes. Si coneixeu la contrasenya actual, només cal executar l'ordre i seguir el flux que sol·licita l'actual i la nova.
Si no coneixeu la contrasenya anterior, podeu utilitzar el modificador -Reset per establir-ne una de nova directament sense necessitar la vella. Aquest enfocament és molt típic en suport tècnic quan un usuari ha oblidat la contrasenya i no hi pot accedir.
Per desbloquejar comptes bloquejats, el cmdlet adequat és Unlock-ADAccount . Afegint el paràmetre -Verbose obtindràs missatges detallats del que està passant. A més, si voleu fer una prova sense executar realment l'acció, el paràmetre -WhatIf simula l'operació indicant-vos què passaria.
Modificar altres atributs d'usuari
Quan necessites canviar dades com ara descripció, departament, ciutat o altres camps de l'usuari, el cmdlet que entra en joc és Set-ADUser . Amb ell podeu indicar l'usuari objectiu i la propietat a modificar.
Per exemple, si voleu afegir una descripció, convé recordar que els textos amb espais han d'anar entre cometes, per evitar problemes d'interpretació. A partir d'aquí, podeu anar encadenant ordres o scripts que ajustin diversos atributs d'una sola vegada.
Gestió de grups a Active Directory amb PowerShell
A més d'usuaris, PowerShell també permet manejar grups i membres de forma molt còmoda, cosa fonamental en qualsevol entorn de directori.
Consultar grups i membres
Per veure dades d'un grup concret, el cmdlet a utilitzar és Get-ADGroup , passant-li el nom del grup. Obtenir informació sobre el grup us ajuda a revisar la vostra configuració, àmbit, tipus i altres detalls.
Si voleu veure quins usuaris pertanyen a un grup, l'ordre adequada és Get-ADGroupMember . La sortida inclou informació bàsica de cada objecte membre, com el nom, el tipus d'objecte o el SID, cosa que simplifica la revisió de permisos i accessos.
Afegir usuaris a grups
Per incloure usuaris nous en un grup existent, s'utilitza el cmdlet Add-ADGroupMember . Normalment, se us passa el nom del grup i després l'identificador de l'usuari, que en aquest context sol ser el SamAccountName.
Aquest enfocament és perfecte per automatitzar altes de personal : a més de crear el compte, un script pot afegir-lo automàticament als grups adequats (departament, permisos d'aplicacions, accés a recursos, etc.), evitant errors manuals.
Automatitzar migracions d'usuaris entre unitats organitzatives
Una altra tasca molt comuna és la migració massiva d'usuaris entre OUs a l'Active Directory, per exemple quan es reestructura l'organització, es canvien departaments o es reorganitza l'arbre d'AD.
Una manera eficaç de fer-ho és partir d'un fitxer d'Excel convertit a CSV amb columnes que indiquin l'usuari, la ubicació actual i la nova OU de destinació. Aquest CSV s'importa a PowerShell i es recorre amb un bucle, construint la ruta LDAP de l'objecte d'usuari i la ruta de destinació.
El cmdlet clau aquí és Move-ADObject , al qual es passa l'identificador de l'objecte (la ruta LDAP construïda, per exemple amb CN=Usuari,OU=Origen,DC=…) i el TargetPath que indica l'OU de destinació. Cada iteració del bucle mou un usuari de la ubicació antiga a la nova.
Aquest mateix plantejament es pot adaptar per ajustar atributs massivament , canviar descripcions, modificar ciutats, actualitzar correus electrònics, etc. El truc és que PowerShell llegeix cada fila del CSV com un objecte amb propietats, que després pots utilitzar als teus scripts.
Crear fitxers CSV per a altes massives amb New-ADUser
Per donar d'alta molts usuaris en un domini, el més net és preparar un fitxer CSV ben estructurat que contingui a la primera fila els noms de les propietats, ia partir d'aquí una fila per usuari amb els seus valors.
El full de càlcul (LibreOffice Calc, Excel, etc.) us permet definir columnes com GivenName, Surname, SamAccountName, UserPrincipalName, etc., que han de coincidir exactament amb els arguments del cmdlet New-ADUser però sense el guió.
Un cop hagis emplenat tots els usuaris, exportes el full a format CSV, escollint el delimitador de camps (normalment coma) i deixant les opcions per defecte tret que necessitis ajustaments específics. Després, és recomanable obrir el fitxer amb el Bloc de notes per verificar que el contingut està correcte: encapçalats a la primera línia i valors separats per comes a les següents.
Importar usuaris des de CSV a Windows Server amb PowerShell
Quan el CSV ja està llest, el portes al servidor (copiant-lo a Documents, per exemple) i, des d'una sessió de PowerShell amb el mòdul d'Active Directory carregat, comences la importació.
El primer pas és executar Import-Csv sobre el fitxer per comprovar que PowerShell reconeix bé les columnes. Veureu que cada línia es converteix en un objecte on cada propietat es correspon amb una columna del CSV.
Si la sortida és l'esperada, ja podeu encadenar l'ordre amb New-ADUser usant la canonada , de manera que cada objecte importat s'utilitzi com a entrada per al cmdlet de creació de comptes. Així, en una sola línia, podeu donar d'alta tots els usuaris del fitxer.
Aprofitant que moltes propietats seran comunes, és bona idea afegir paràmetres a New-ADUser en aquesta mateixa línia, com ara -Enabled $True per crear els comptes actius des del principi, o -AccountPassword combinat amb ConvertTo-SecureString per assignar una contrasenya per defecte.
També podeu especificar el contenidor o unitat organitzativa de destinació mitjançant el paràmetre -Path , indicant una ruta LDAP com CN=Users,DC=domini,DC=local o una altra OU. Després d'executar l'ordre, podeu validar el resultat usant Get-ADUser -Filter * o filtrant pels usuaris acabats de crear.
Combinant tot això, es veu clarament que PowerShell no és només una consola “per a admins”, sinó una plataforma d'automatització capaç de gestionar des de petits scripts domèstics fins a l'operació completa d'un bosc d'Active Directory, llicències de Microsoft 365, entorns de Power Apps i recursos d'Azure; tant si avui no administres res com si demà et toca portar un domini sencer, dominar aquests cmdlets i la lògica amb CSV, canonades i objectes et dóna un marge de maniobra enorme per estalviar temps, reduir errors i tenir un control fi sobre tot el teu entorn Microsoft. Comparteix el tutorial i més usuaris coneixeran els passos per gestionar aquesta automatització de PowerShell.
