M365Con 2027 – conferencia online gratuita · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Primeros pasos con la automatización con PowerShell: guía para principiantes

By ·

¡Bienvenido a la guía definitiva para principiantes sobre la automatización con PowerShell! Si alguna vez te has sentido agobiado por las tareas diarias y repetitivas de TI, como crear cuentas de usuario, revisar registros o configurar permisos manualmente, estás en el lugar correcto. Windows PowerShell es una herramienta excepcionalmente potente que convierte tus tareas de administración más frus

Automatically translated with AI from the original post. Read the English original

¡Bienvenido a la guía definitiva para principiantes sobre la automatización con PowerShell! Si alguna vez te has sentido abrumado por las tareas repetitivas del día a día de TI, como crear cuentas de usuario, revisar registros o configurar permisos manualmente, has llegado al lugar correcto. Windows PowerShell es una herramienta excepcionalmente potente, diseñada para convertir tus tareas de administración frustrantes y rutinarias en procesos rápidos, fiables y automatizados. Tanto si administras equipos locales como si trabajas en la nube de Microsoft 365 u orquestas recursos de Azure, PowerShell te ofrece las capacidades de línea de comandos que necesitas para tener éxito.

En este artículo repasaremos los fundamentos de PowerShell, desde entender por qué la automatización es esencial hasta preparar tu entorno, localizar scripts prefabricados fiables y escribir tu primer script personalizado. Si te interesa profundizar en estos conceptos y escuchar experiencias reales de expertos del sector, no dejes de consultar nuestro episodio de podcast relacionado: PowerShell Automation with Harm Veenstra [MVP].

Puntos clave

  • PowerShell automatiza las tareas repetitivas de TI, ahorrando tiempo y reduciendo errores. Así puedes centrarte en proyectos más importantes.
  • Usar PowerShell en Microsoft 365 y Azure mejora tu capacidad para gestionar usuarios y recursos de forma eficiente, yendo más allá de lo que ofrece la interfaz gráfica.
  • La comunidad de PowerShell es amplia y muy solidaria. Participa en foros y podcasts para aprender de otros y compartir tus experiencias.
  • Empieza a crear scripts con comandos sencillos. Usa los cmdlets y parámetros integrados para crear potentes scripts de automatización.
  • Prueba siempre tus scripts en un entorno seguro antes de ejecutarlos en producción. Así evitarás errores y protegerás tus sistemas de TI.
  • Organiza tus scripts con una estructura clara. Usa nombres descriptivos y comentarios para que sean fáciles de entender y de mantener.
  • La seguridad es fundamental. Configura las directivas de ejecución y firma tus scripts para asegurarte de que son seguros de ejecutar en tu entorno.
  • Sigue aprendiendo y adaptándote. PowerShell evoluciona, así que mantente al día de las nuevas funciones y buenas prácticas para mejorar tus habilidades de automatización.

PowerShell es divertido: ¿por qué automatizar?

Beneficios de la automatización

Seguramente te preguntes por qué tantos profesionales de TI hablan de automatización. Con PowerShell puedes convertir tareas aburridas y repetitivas en procesos rápidos y fiables. Ahorras tiempo y evitas errores. Imagina ejecutar un script que crea cuentas de usuario en segundos. Una empresa logró una reducción del 70 % del tiempo dedicado a esta tarea tras pasarse a los scripts de automatización con PowerShell. Otra organización, Brose, automatizó más de 170 tareas y recuperó más de 4 000 horas en solo 18 meses. Eso sí que es eficiencia.

Esto es lo que obtienes con la automatización con PowerShell:

  • Flujos de trabajo optimizados que reducen los errores manuales.
  • Más tiempo para proyectos importantes.
  • Mayor eficiencia y mejor rendimiento en todo tu equipo de TI.

Cuando automatizas, mejoras el rendimiento de TI y facilitas tu trabajo diario. Puedes centrarte en objetivos más ambiciosos en lugar de pasarte el día haciendo clic en menús.

Enfoque en el ecosistema de Microsoft

Si trabajas con Microsoft 365 o Azure, PowerShell es tu mejor aliado. Obtienes capacidades de automatización avanzadas que van más allá de lo que ofrece la interfaz gráfica. Con los scripts de automatización con PowerShell puedes gestionar cientos de usuarios, configurar permisos y encargarte de los informes de cumplimiento normativo de forma masiva. Accedes a configuraciones más profundas y filtras datos a los que la interfaz gráfica no puede llegar.

Veamos algunos bloques básicos de la automatización con PowerShell en el ecosistema de Microsoft:

  • Operaciones masivas para la gestión y administración de usuarios.
  • Capacidades avanzadas de automatización para la remediación de seguridad y los informes de cumplimiento.
  • Mejor rendimiento de TI gracias a una gestión y administración más rápidas.

Puedes usar PowerShell para automatizar tareas en Exchange, Teams e Intune. Aumentas la eficiencia y el rendimiento mientras mantienes tus sistemas seguros. La automatización te permite gestionar la remediación con rapidez y aplicar directivas para los informes de cumplimiento.

Comunidad y aprendizaje

No tienes que aprender PowerShell por tu cuenta. La comunidad es enorme y siempre está dispuesta a ayudar. Puedes encontrar scripts, compartir ideas y hacer preguntas en foros como r/PowerShell en Reddit, PowerShell en GitHub y el blog de la comunidad de PowerShell. El podcast PowerShell Is Fun te trae historias y consejos de profesionales de TI reales, haciendo que aprender sea entretenido.

Estos son algunos de los mejores lugares para conectar y aprender:

RecursoDescripción
PowerShell Resources - Level1Techs ForumsForo impulsado por la comunidad para compartir scripts y consejos
Scripting BlogBlog oficial de Microsoft con consejos de scripting
PowerShell en GitHubRepositorio de código abierto y centro de la comunidad
r/PowerShell en RedditForo activo con más de 190 000 suscriptores
PowerShell + DevOps Global SummitConferencia anual para hacer contactos y aprender

Puedes unirte a eventos como PSConfEU o RTPSUG para conocer a otros profesionales de TI y compartir tus scripts de automatización con PowerShell. La comunidad te ayuda a desarrollar tus habilidades y a mejorar el rendimiento de TI cada día.

Estos recursos te dan los bloques básicos de la automatización con PowerShell. Aprendes trucos nuevos, mejoras tus scripts y te mantienes al día con las capacidades avanzadas de automatización. Compartir y aprender juntos hace que la automatización con PowerShell sea divertida y gratificante.

Scripts y configuración de PowerShell

PowerShell Scripts & Setup

¿Qué son los scripts?

Empecemos por lo básico. Cuando oigas hablar de scripts de PowerShell, se refieren a un conjunto de instrucciones que PowerShell sigue para completar una automatización. Escribes estos scripts para indicarle a PowerShell exactamente qué hacer, paso a paso. Piensa en los scripts como recetas para tu equipo. Cada línea del script es un comando o instrucción que PowerShell entiende.

Quizá te preguntes qué forma un buen script de PowerShell. Estas son las partes esenciales que trabajan juntas para que tus scripts sean potentes:

  1. Cmdlets: Son los comandos principales de PowerShell. Usan un formato Verbo-Sustantivo, como Get-Process o Set-Location. Los cmdlets son los bloques básicos de tus scripts.
  2. Parámetros: Los usas para cambiar la forma en que funcionan los cmdlets. Los parámetros empiezan con un guion, como -Name o -Force. Te ayudan a controlar los detalles de cada comando.
  3. Canalizaciones: Las canalizaciones te permiten encadenar comandos. Usas el símbolo de barra vertical (|) para enviar la salida de un comando a otro. Esto hace que tus scripts sean claros y eficientes.
  4. Variables: Las variables empiezan con el símbolo de dólar ($). Las usas para almacenar información, como números o texto, y reutilizarla en tus scripts.
  5. Objetos, propiedades y métodos: Todo en PowerShell es un objeto. Los objetos tienen propiedades (como campos de datos) y métodos (acciones que puedes realizar). Usas la notación de punto para trabajar con ellos en tus scripts.

Cuando combinas estas partes, creas scripts de powershell que pueden automatizar todo tipo de tareas de TI. Puedes automatizar la creación de usuarios, la gestión de archivos o incluso operaciones complejas en la nube. Cuanto más practiques, más verás cómo estos componentes hacen que tus scripts sean flexibles y potentes.

Primeros pasos

No necesitas una configuración sofisticada para empezar con scripts de powershell. La mayoría de los equipos con Windows ya tienen powershell instalado. Si usas Windows Server 2008 R2 o posterior, o Windows 7 o superior, ya estás listo para empezar. Solo tienes que asegurarte de tener la versión adecuada y algunos otros elementos preparados.

Aquí tienes un resumen rápido de lo que necesitas antes de empezar a escribir tus primeros scripts de powershell:

RequisitoDescripción
Servidor del almacén de identidadesNetIQ Identity Manager 4.8 o superior y NetIQ eDirectory (nivel compatible con Identity Manager o superior).
Windows PowerShellInstalado de forma predeterminada en Windows Server 2008 R2 y posteriores, y en Windows 7 y posteriores. Se admiten las versiones hasta la 5.x.
Microsoft .NET FrameworkSe requiere la versión 4.0 o superior; también debe estar instalada la característica .NET Framework 3.5.
Otro softwareSi utilizas el Script Service para Windows PowerShell, debes instalar el módulo Microsoft Web Services Enhancement.

Si usas un Mac o Linux, puedes instalar PowerShell Core. Funciona de forma casi idéntica, así que puedes ejecutar tus scripts de powershell en distintas plataformas. Una vez que lo tengas todo configurado, puedes abrir powershell y empezar a escribir comandos de inmediato.

Consejo: Ejecuta siempre powershell como administrador cuando necesites realizar cambios en el sistema. Así tus scripts tendrán los permisos necesarios para completar la automatización.

Elegir editores

Hay varias opciones excelentes para escribir scripts de powershell. El editor adecuado puede hacer que tu camino hacia la automatización sea mucho más fluido. Algunos editores te ayudan a detectar errores, ofrecen sugerencias y te permiten probar los scripts mientras los escribes.

Aquí tienes una comparativa rápida de los editores más populares para scripts de powershell:

Editor de códigoCaracterísticas
Visual Studio Code (VSCode)- Editor ligero
- IntelliSense para autocompletado según el contexto
- Terminal integrada para ejecución y depuración
Windows PowerShell ISE- Interfaz fácil de usar
- Funciones de depuración sólidas
- Autocompletado según el contexto

Visual Studio Code es uno de los favoritos de muchos profesionales de TI. Es rápido, gratuito y funciona en Windows, Mac y Linux. Obtienes sugerencias inteligentes y puedes ejecutar tus scripts de powershell directamente dentro del editor. Windows PowerShell ISE es otra opción sólida, sobre todo si prefieres una interfaz sencilla y buenas herramientas de depuración.

Puedes probar ambos y ver cuál se adapta mejor a tu forma de trabajar. Lo importante es elegir un editor que te ayude a escribir, probar y gestionar tus scripts de powershell con facilidad. Cuando encuentres tu favorito, verás lo rápido que puedes crear automatizaciones para tu entorno de TI.

Nota: No importa qué editor elijas, guarda tus scripts con frecuencia. Un buen hábito es mantenerlos organizados en carpetas, para que puedas encontrarlos y reutilizarlos en futuras automatizaciones.

Ahora ya sabes qué son los scripts de powershell, cómo empezar y qué editores pueden ayudarte. ¡Estás listo para adentrarte en el mundo de la automatización y empezar a hacer que la TI trabaje para ti!

Encuentra y usa scripts listos para usar

Fuentes de scripts

No tienes que empezar cada automatización con powershell desde cero. Muchos profesionales de TI comparten sus scripts en línea, lo que hace tu camino hacia la automatización más fácil. Puedes encontrar scripts para tareas de configuración, cumplimiento y seguridad. Estos scripts te ayudan a automatizar la gestión de usuarios, las operaciones con archivos e incluso la configuración de estado deseado.

Aquí tienes una tabla rápida con algunas fuentes fiables de scripts de automatización de powershell:

FuenteDescripción
Script Resources for IT ProfessionalsOfrece muchos scripts gratuitos de powershell con valoraciones e información de compatibilidad.
PowerShell ResourcesForo de la comunidad con enlaces al blog de scripting de Microsoft y recursos útiles.
PowerShell.orgForos y recursos para aprender PowerShell, ideales tanto para principiantes como para expertos.

También puedes consultar estos sitios para encontrar más scripts y consejos de automatización:

Al usar estas fuentes, accedes a scripts que ayudan con la configuración, la seguridad y el cumplimiento normativo. Puedes automatizar las tareas de TI de forma más rápida y fiable.

Ejecución segura

Antes de ejecutar cualquier script de automatización de PowerShell de internet, debes pensar en la seguridad. No todos los scripts son seguros. Quieres proteger tu entorno de TI y evitar cambios no deseados en la configuración o en los ajustes de seguridad.

Estas son algunas buenas prácticas para la ejecución segura:

  • Establece directivas de ejecución estrictas, como "AllSigned", para que solo se ejecuten los scripts de confianza.
  • Firma tus scripts para verificar su integridad y autenticidad.
  • Usa técnicas de codificación segura, como la validación de entradas y el manejo de errores, para reducir las vulnerabilidades.

Puedes elegir entre distintas directivas de ejecución:

  • Restricted: ningún script puede ejecutarse.
  • AllSigned: solo pueden ejecutarse los scripts firmados por un editor de confianza.
  • RemoteSigned: los scripts locales se ejecutan sin firma, pero los scripts de internet deben estar firmados.
  • Unrestricted: ejecuta todos los scripts, pero muestra una advertencia si proceden de internet.

Estos pasos te ayudan a mantener tu automatización segura y tu configuración estable. Evitas riesgos y garantizas que tus scripts respalden las auditorías de cumplimiento normativo y de configuración de seguridad.

Consejo: revisa siempre los scripts antes de ejecutarlos. Busca comandos inesperados o cambios en la configuración. Quieres confiar en tu automatización, no adivinar lo que hará.

Permisos y directivas

Necesitas los permisos y las directivas adecuados para ejecutar scripts de automatización de PowerShell en tu entorno de TI. Puedes comprobar tu directiva de ejecución actual con:

Get-ExecutionPolicy

Para reforzar la seguridad, establece tu directiva en RemoteSigned o AllSigned:

Set-ExecutionPolicy RemoteSigned

o

Set-ExecutionPolicy AllSigned

Verifica los cambios con:

Get-ExecutionPolicy -List

Puedes establecer las directivas de ejecución en el ámbito Machine, User o Process. Usa siempre el principio de mínimo privilegio y firma tus scripts. Así mantienes tu configuración segura y cumples los requisitos de cumplimiento normativo.

Nota: los permisos importan. Asegúrate de tener el acceso correcto antes de ejecutar scripts de automatización. Así proteges tus sistemas de TI y mantienes la configuración coherente.

Cuando sigues estos pasos, creas un entorno de automatización más seguro. Mantienes tus scripts organizados, tu configuración controlada y tu equipo de TI preparado para cualquier tarea.

Crear scripts personalizados

Primeros pasos con un script

Quieres adentrarte en los scripts de automatización de PowerShell y empezar a crear los tuyos. El proceso resulta sencillo una vez que conoces los pasos. Empiezas abriendo tu editor favorito, como Visual Studio Code o PowerShell ISE. Creas scripts escribiendo un archivo nuevo con la extensión .ps1. Para tu primer script, prueba algo básico. Añade un cmdlet, como Get-Process, para ver los procesos en ejecución de tu equipo.

Aquí tienes una guía rápida para crear scripts de automatización de PowerShell:

  1. Abre tu editor y crea un archivo .ps1 nuevo.
  2. Añade un cmdlet, como Get-Process, a tu script.
  3. Guarda el archivo.
  4. Modifica la directiva de ejecución si es necesario. Usa Set-ExecutionPolicy RemoteSigned para permitir los scripts locales.
  5. Ejecuta tu script y revisa los resultados.

Puedes usar este proceso en muchas tareas de automatización. A medida que creas scripts, ganas confianza y aprendes cómo PowerShell puede facilitar el trabajo de TI.

Consejo: empieza poco a poco. Prueba tus scripts con comandos sencillos antes de pasar a automatizaciones más complejas.

Guardar y ejecutar

Guardar y ejecutar scripts de automatización de PowerShell es una parte clave de tu flujo de trabajo. Guardas tu script con un nombre claro, como GetUserInfo.ps1. Mantén tus scripts organizados en carpetas para acceder a ellos fácilmente. Cuando quieras ejecutar tu script, abre PowerShell y ve a la carpeta. Escribe .\GetUserInfo.ps1 y pulsa Intro.

Si encuentras problemas de permisos, revisa tu directiva de ejecución. Puedes usar Get-ExecutionPolicy para ver la configuración actual. Cámbiala con Set-ExecutionPolicy si es necesario. Este paso te ayuda a ejecutar scripts de automatización de PowerShell de forma segura y eficiente.

Nota: Guarda siempre tus scripts antes de ejecutarlos. Así evitas perder cambios y mantienes tu automatización fiable.

Conceptos básicos de depuración

Depurar scripts de automatización de PowerShell te ayuda a corregir problemas y mejorar tu automatización. Usas cmdlets como Test-Connection, Resolve-DnsName y Test-NetConnection para comprobar problemas de red. Añades lógica condicional a tus scripts para que gestionen condiciones en tiempo real. Modularizar tus scripts facilita su mantenimiento y escalado.

Registrar anomalías te da pistas cuando algo sale mal. Puedes usar Write-Output o Write-Host para mostrar mensajes y seguir el progreso del script. PowerShell Remoting te permite comprobar la conectividad en varios dispositivos.

Aquí tienes una tabla con técnicas comunes de depuración:

TécnicaDescripción
Test-ConnectionComprueba si un dispositivo responde a ping
Resolve-DnsNameDiagnostica problemas de DNS
Lógica condicionalGestiona errores y resultados inesperados
Scripts modularesDivide los scripts en partes más pequeñas y reutilizables
Registro (logging)Registra anomalías para la resolución de problemas
PowerShell RemotingComprueba la conectividad en sistemas remotos

Mejoras tus scripts de automatización de PowerShell aplicando estas técnicas. La depuración te ayuda a crear scripts que funcionan siempre, haciendo que la automatización de TI sea fluida y fiable.

Aviso: No te desanimes si tus scripts fallan al principio. Todo profesional de TI aprende resolviendo problemas y corrigiendo scripts. ¡Mejorarás con la práctica!

Fundamentos de scripting

Variables y datos

Usas variables en PowerShell para almacenar y gestionar información. Las variables siempre empiezan por el signo de dólar. Por ejemplo, puedes escribir $name = "Alex" para guardar un nombre o $age = 25 para un número. Incluso puedes capturar el resultado de un comando, como $processes = Get-Process, que guarda todos los procesos en ejecución para usarlos más adelante.

PowerShell te facilita el trabajo con tipado dinámico. Esto significa que no tienes que preocuparte por declarar el tipo de datos. La variable cambia su tipo según lo que le asignes. Puedes almacenar una cadena, un número o incluso una lista en la misma variable en distintos momentos. Esta flexibilidad te ayuda a escribir scripts con rapidez y a adaptarte a distintas tareas de automatización.

Los datos en PowerShell se dividen en dos grandes grupos. Los tipos de valor, como los enteros, contienen sus propios datos. Los tipos de referencia, como las matrices, apuntan a objetos que contienen los datos reales. Por ejemplo, un entero es autocontenido, pero una matriz puede contener muchos elementos o estar vacía. Esta estructura te da control sobre cómo gestionas la información en tus scripts.

Gestión de archivos

Gestionar archivos y carpetas es una parte importante de la automatización con PowerShell. Puedes crear, copiar, mover o eliminar archivos con solo unos cuantos comandos. Estas son algunas tareas comunes que podrías necesitar:

  • Crear una carpeta nueva:
    New-Item C:\TempPowerShell -Type Directory
  • Copiar un archivo:
    Copy-Item C:\Scriptstest.txt C:\Test
  • Mover un archivo:
    Move-Item C:\Scriptstest.zip C:\Test -Force
  • Eliminar un archivo:
    Remove-Item C:\Scriptstest.txt
  • Eliminar archivos con más de 30 días:
    $path = 'C:\YourDirectory'
    Get-ChildItem $path | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | Remove-Item

También puedes crear archivos de texto nuevos, añadir datos o eliminar carpetas y su contenido. Estos comandos te ayudan a automatizar la gestión de archivos y a mantener tu entorno de TI organizado. Ahorras tiempo y evitas errores al dejar que los scripts se encarguen de estas tareas.

Consejo: Prueba siempre tus scripts con un conjunto reducido de archivos antes de ejecutarlos sobre datos importantes. Así mantienes a salvo tus sistemas de TI.

Bucles y lógica

A menudo necesitas repetir acciones o tomar decisiones en tus scripts de PowerShell. Los bucles y la lógica te permiten hacerlo. Estos son los principales tipos de bucle:

Tipo de bucleDescripción
ForEjecuta un bloque de código un número determinado de veces.
ForEachRecorre cada elemento de una lista o matriz.
WhileSigue ejecutándose mientras una condición sea verdadera.
Do-WhileEjecuta el código al menos una vez y, después, evalúa la condición.
Do-UntilSe ejecuta hasta que una condición se cumple.

La lógica te permite controlar lo que ocurre en tus scripts. Las instrucciones If-Else te permiten ejecutar código solo cuando una condición es verdadera. Las instrucciones Switch te ayudan a comparar un valor con muchas opciones. Incluso puedes usar el operador ternario para tomar decisiones rápidas.

Aquí tienes un ejemplo sencillo. Si quieres comprobar si existe un archivo, puedes escribir:

if (Test-Path "C:\Test\myfile.txt") {
    Write-Output "File found!"
} else {
    Write-Output "File not found."
}

Los bucles y la lógica hacen que tus scripts de PowerShell sean potentes. Puedes automatizar tareas de TI complejas y gestionar muchas situaciones con unas pocas líneas de código.

Funciones

Hablemos de una de las características más interesantes de PowerShell: las funciones. Si quieres que tus scripts hagan más y sigan organizados, necesitas usar funciones. Piensa en una función como en un miniprograma dentro de tu script. Le das un nombre, le indicas qué debe hacer y, después, la llamas cada vez que necesites esa tarea. Así tus scripts quedan más limpios y son más fáciles de gestionar.

Quizá te preguntes: "¿Por qué debería usar funciones?". La respuesta es sencilla. Cuando escribes una función, puedes reutilizarla en distintos scripts. No tienes que copiar y pegar el mismo código en todas partes. Esto te ahorra tiempo y te ayuda a evitar errores. Si necesitas actualizar algo, solo lo cambias en un único lugar.

Aquí tienes un ejemplo sencillo de una función de PowerShell:

function Get-Greeting {
    param (
        [string]$Name
    )
    "Hello, $Name! Welcome to PowerShell automation."
}
Get-Greeting -Name "Alex"

¿Ves lo fácil que es? Defines la función una vez y, después, la llamas tantas veces como quieras con distintos nombres.

Veamos algunas ventajas clave de usar funciones en tus scripts:

VentajaDescripción
ReutilizaciónUsa la misma función en muchos scripts.
MantenibilidadActualiza tu código en un solo lugar y todos los scripts que usan la función recibirán la corrección.
Funcionalidad mejoradaAcepta entrada desde la canalización y usa parámetros integrados como -Verbose y -ErrorAction.

También puedes hacer tus funciones más potentes añadiendo parámetros. Así puedes pasar valores distintos cada vez que ejecutas la función. Las funciones de PowerShell pueden incluso aceptar entrada desde la canalización, lo que significa que puedes encadenar comandos para automatizar tareas avanzadas.

Consejo: Usa nombres claros para tus funciones. Así tú y tu equipo entenderán de un vistazo qué hace cada una.

Otra cosa interesante: PowerShell ofrece parámetros integrados como -Verbose y -ErrorAction. Estos facilitan el uso y la depuración de tus funciones. También puedes añadir texto de ayuda a tus funciones. De este modo, cualquiera que use tu script sabrá exactamente cómo utilizar cada función.

Aquí tienes una tabla rápida que muestra cómo las funciones potencian tu automatización:

CaracterísticaBeneficio
Entrada por canalizaciónHace que tu función funcione con otros comandos en una canalización.
Parámetros integradosMejora la experiencia de usuario con opciones para obtener más detalles o gestionar errores.

Cuando empiezas a usar funciones, conviertes scripts sencillos en herramientas potentes. Haces que tu automatización sea modular, flexible y está preparada para cualquier situación. ¡Prueba a escribir tu próximo script con funciones y verás lo mucho más fácil que se vuelve tu camino con PowerShell! 🚀

Automatiza en Microsoft 365 y más allá

Automate Across Microsoft 365 & Beyond

Gestión de usuarios

Te encargas de la gestión de usuarios a diario en Microsoft 365. Con PowerShell puedes automatizar estas tareas y facilitar tu trabajo de TI. No tienes que hacer clic en interminables menús ni rellenar formularios. En su lugar, usas scripts de automatización de PowerShell para hacer las cosas de forma rápida y precisa.

Así puedes usar PowerShell para las tareas habituales de gestión de usuarios:

  1. Crear cuentas de usuario nuevas. Puedes escribir un script que lea la información de un archivo CSV y configure las cuentas de los nuevos empleados. Esto te ahorra horas durante el proceso de incorporación.
  2. Deshabilitar o eliminar cuentas de usuario inactivas. Puedes identificar a los usuarios que no han iniciado sesión recientemente y quitarles el acceso. Así se mantiene el entorno seguro y se respaldan los requisitos de cumplimiento.
  3. Actualizar atributos de usuario. Puedes programar scripts que cambien los cargos o la información de contacto según los datos de RRHH. Así el directorio se mantiene actualizado y resulta más sencillo de administrar.

Ves PowerShell en acción cuando automatizas estas tareas. Mejoras la eficiencia y reduces los errores. Las aplicaciones reales de la automatización con PowerShell hacen que la gestión de usuarios sea sencilla y fiable. Puedes dedicarte a proyectos más importantes en lugar de tareas rutinarias.

Consejo: prueba a automatizar la incorporación de usuarios con PowerShell. Notarás cuánto tiempo ahorras y lo consistentes que son tus resultados.

Tareas de archivos y carpetas

Gestionar archivos y carpetas puede resultar abrumador. Trabajas con cientos de documentos, informes y registros. PowerShell te ayuda a automatizar la gestión de archivos y a mantener tus sistemas de TI organizados.

Puedes usar scripts de automatización de PowerShell para:

  • Crear carpetas para proyectos o departamentos nuevos.
  • Copiar archivos en ubicaciones de copia de seguridad.
  • Mover documentos a carpetas de archivo.
  • Eliminar archivos antiguos que ya no necesitas.

Por ejemplo, puedes escribir un script que elimine los archivos con más de 30 días de antigüedad. Así tu almacenamiento se mantiene limpio y se respaldan los requisitos de cumplimiento. También puedes automatizar la gestión de permisos de las carpetas para asegurarte de que solo accedan las personas adecuadas.

Este es un script sencillo para eliminar los archivos con más de un mes de antigüedad:

$path = 'C:\YourDirectory'
Get-ChildItem $path | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | Remove-Item

Ves PowerShell en acción cuando automatizas la gestión de archivos. Reduces el trabajo manual y mejoras la seguridad. Las aplicaciones reales de la automatización con PowerShell te ayudan a mantener tu entorno de TI ordenado y eficiente.

Nota: prueba siempre tus scripts con un conjunto pequeño de archivos antes de ejecutarlos sobre datos importantes. Así proteges tus sistemas de TI y respaldas los requisitos de cumplimiento.

Automatización de red

La gestión de red es una parte importante de TI. Necesitas comprobar conexiones, supervisar dispositivos y solucionar problemas. PowerShell te ofrece herramientas potentes para automatizar la red. Puedes usar cmdlets para reemplazar las herramientas de línea de comandos antiguas y obtener mejores resultados.

Esta tabla muestra cómo los scripts de automatización de PowerShell mejoran la gestión de red:

Comando tradicionalEquivalente en PowerShellVentaja clave
ipconfigGet-NetIPAddressSalida en forma de objetos, filtrado más sencillo
ipconfig /allGet-NetIPConfigurationSalida estructurada y completa
pingTest-ConnectionSe puede programar y devuelve objetos
tracertTest-NetConnection -TraceRouteDiagnósticos integrados
nslookupResolve-DnsNameMás opciones de consulta y mejor salida
netstatGet-NetTCPConnectionFiltrado potente
route printGet-NetRouteFácil de analizar y manipular
arp -aGet-NetNeighborCaché de vecinos basada en objetos

Puedes automatizar las comprobaciones de estado de la red con PowerShell. Este es un script que comprueba si tus servidores son accesibles:

# Network Health Check Script
$servers = @("dc01.local", "fileserver.local", "webserver.local")
foreach ($server in $servers) {
    $result = Test-NetConnection -ComputerName $server -WarningAction SilentlyContinue
    if ($result.PingSucceeded) {
        Write-Host "$server is reachable" -ForegroundColor Green
    } else {
        Write-Host "$server is UNREACHABLE" -ForegroundColor Red
    }
}

Usas scripts de automatización de PowerShell para supervisar tu red y solucionar problemas rápidamente. Mejoras la seguridad y respaldas los requisitos de cumplimiento manteniendo tus sistemas en buen estado. La gestión resulta más sencilla cuando automatizas las tareas de red.

Aviso: automatiza tus comprobaciones de red con PowerShell. Detectarás los problemas a tiempo y mantendrás tu entorno de TI funcionando sin contratiempos.

Integración con la nube

Quieres llevar tu automatización a la nube. PowerShell lo hace fácil. Puedes conectarte a Microsoft 365, Azure y otros servicios en la nube con solo unos pocos comandos. Así puedes gestionar usuarios, recursos y configuraciones desde cualquier lugar.

Empieza instalando los módulos adecuados. Para Microsoft 365, usa los módulos ExchangeOnlineManagement y MSOnline. Para Azure, instala Az o AzureAD. Estos módulos te dan acceso a cientos de cmdlets diseñados para la gestión en la nube.

Aquí tienes un ejemplo rápido. Puedes conectarte a Microsoft 365 con:

Connect-ExchangeOnline -UserPrincipalName yourname@yourdomain.com

Una vez conectado, puedes automatizar tareas como la creación de buzones, la asignación de licencias o la gestión de grupos. Incluso puedes programar estos scripts para que se ejecuten automáticamente, así no se te escapa ningún paso.

PowerShell también funciona con las API de Microsoft Graph. Esto abre la puerta a una automatización avanzada. Puedes gestionar Teams, SharePoint e Intune con un único script. El podcast PowerShell Is Fun suele compartir experiencias sobre el uso de Graph para automatizar incorporaciones, migraciones y permisos. Obtienes más control y flexibilidad que solo con la interfaz web.

Estas son algunas formas de usar PowerShell para la integración con la nube:

  • Automatiza la incorporación de usuarios en Microsoft 365 y Azure.
  • Gestiona licencias y pertenencias a grupos en lote.
  • Migra buzones o archivos entre inquilinos.
  • Configura canales de Teams y permisos de forma automática.
  • Supervisa los recursos de la nube y genera informes.

Consejo: prueba siempre tus scripts primero en un entorno que no sea de producción. Así evitarás sorpresas y mantendrás segura tu configuración en la nube.

La integración en la nube con PowerShell te ahorra tiempo y reduce el trabajo manual. Puedes abordar cambios a gran escala con confianza. Además, tu entorno de TI será más coherente y fiable.

Seguridad y gobernanza

Cuando automatizas, debes pensar en la seguridad y en la gobernanza. PowerShell te ofrece herramientas muy potentes, pero hay que usarlas con criterio. Un solo script puede modificar cientos de cuentas o configuraciones. Si no sigues las buenas prácticas, corres el riesgo de exponer tu entorno.

Empieza por establecer directivas de ejecución estrictas. Permite que se ejecuten solo los scripts de confianza. Muchas organizaciones lo aprendieron por las malas. Por ejemplo, una institución financiera sufrió una brecha de seguridad porque alguien ejecutó un script no verificado. Después de imponer la firma de scripts y directivas estrictas, redujeron su riesgo.

La firma de scripts es otro paso clave. Al firmar tus scripts demuestras que proceden de un origen de confianza. Una universidad mejoró la seguridad de su automatización al adoptar una directiva sólida de firma de scripts. Además, esto elevó la calidad de su base de código.

También deberías usar técnicas de codificación segura. Elimina las credenciales codificadas en tus scripts. Valida todos los parámetros antes de ejecutar comandos. Una empresa minorista redujo su superficie de ataque siguiendo estos pasos. Hicieron que su automatización fuera más segura y fiable.

Estas son algunas buenas prácticas de seguridad y gobernanza en la automatización con PowerShell:

  • Configura las directivas de ejecución como RemoteSigned o AllSigned.
  • Firma todos los scripts antes de ejecutarlos en producción.
  • Almacena las credenciales de forma segura, nunca en texto plano.
  • Valida los parámetros de entrada para evitar errores.
  • Revisa los scripts con regularidad para detectar comandos arriesgados.
  • Documenta cada script y su finalidad.
Buena prácticaPor qué importa
Firma de scriptsGarantiza que solo se ejecute código de confianza
Almacenamiento seguro de credencialesProtege la información sensible
Validación de parámetrosEvita el uso accidental o malintencionado
Revisiones periódicasDetecta los riesgos de seguridad antes de que causen daños
DocumentaciónAyuda a tu equipo a entender la automatización y a confiar en ella

Nota: la seguridad no es una tarea puntual. Revisa tus scripts con frecuencia y actualiza tus prácticas a medida que cambien las amenazas.

También puedes usar el control de acceso basado en roles. Concede a los usuarios solo los permisos que necesitan para ejecutar scripts de automatización. Así se limita el impacto si algo sale mal.

PowerShell Is Fun destaca a menudo la importancia de la comunidad. Comparte tus consejos de seguridad y las lecciones que hayas aprendido. Ayuda a otros a evitar errores comunes. Cuando te centras en la seguridad y la gobernanza, proteges tu organización y generas confianza en tu automatización.

Crea tu biblioteca de scripts

Organiza y documenta

Quieres que tu colección de scripts de PowerShell crezca contigo. La organización importa. Cuando mantienes tus scripts ordenados, ahorras tiempo y evitas confusiones. Empieza creando carpetas para las distintas áreas de TI, como gestión de usuarios, automatización de archivos o cumplimiento. Dale a cada script un nombre claro que indique lo que hace. Añade comentarios al principio de tus scripts para explicar su finalidad y cualquier requisito especial.

Una buena documentación beneficia a todo tu equipo. Puedes usar una tabla para hacer seguimiento de las mejores prácticas para organizar y documentar tus scripts:

Buena prácticaDescripción
Guarda los runbooks junto con los scriptsGarantiza la continuidad operativa y el soporte durante las interrupciones.
Aplica el principio de mínimo privilegioReduce el riesgo limitando los permisos de las cuentas a lo estrictamente necesario.
Protege los datos sensiblesEvita guardar contraseñas y credenciales en texto plano; utiliza almacenamiento seguro.
Asegura la legibilidad del códigoUsa nombres claros, un formato coherente y comentarios para facilitar la colaboración.
Implementa un control de cambiosAplica revisión por pares y planes de implementación documentados para detectar problemas antes del despliegue.
Gestiona los fallos correctamenteRegistra los errores y documenta las rutas de reversión para mantener el control de la ejecución de los scripts.
Centraliza el repositorio de scriptsProporciona una única fuente de verdad y reduce las desviaciones de versión entre los miembros del equipo.

Mantienes tus scripts seguros y fáciles de encontrar. También contribuyes al cumplimiento normativo al asegurarte de que cada script tenga un historial y un propósito claros.

Compartir y colaborar

No tienes por qué trabajar solo. Compartir tus scripts con el equipo hace que todos sean más fuertes. Usa un repositorio central, como GitHub o Azure DevOps, para almacenar tus scripts. Así, tu equipo puede acceder a las versiones más recientes y evitar confusiones. También puedes usar herramientas de gestión de proyectos para hacer seguimiento de los cambios y asignar tareas.

Esta tabla muestra las funciones que te ayudan a compartir y colaborar en scripts:

FunciónDescripción
Gobernanza y gestiónSimplifica la gestión de scripts de PowerShell y el uso compartido de informes dentro de los equipos.
Informes en tiempo realGenera informes que se pueden consultar y compartir fácilmente con los compañeros mediante un enlace sencillo.
Opciones de exportaciónPermite exportar los informes a Excel o PDF para su análisis o distribución.
Programación de informesLos usuarios pueden programar la generación automática de informes, ahorrando tiempo y esfuerzo.
Interfaz intuitivaOfrece una interfaz fácil de usar para gestionar scripts e informes de forma eficaz.
Funciones de gestión de proyectosOfrece herramientas para revisar sitios de proyecto, seguridad y permisos, lo que mejora la colaboración en equipo.

Mejoras el cumplimiento normativo y la seguridad cuando compartes scripts de forma controlada. Además, facilitas la revisión del código y la detección de problemas antes de que afecten a tu entorno de TI.

Consejo: Programa reuniones periódicas para revisar los scripts en conjunto. Detectarás los problemas a tiempo y aprenderéis unos de otros.

Sigue aprendiendo

En TI nunca dejas de aprender. PowerShell cambia rápido y aparecen nuevas funciones constantemente. Mantente al día siguiendo la documentación oficial y participando en los debates de la comunidad. Puedes hacer preguntas, compartir tus logros en automatización y recibir consejos de expertos.

Estas son algunas excelentes formas de seguir aprendiendo:

  • Consulta la documentación oficial de primeros pasos de PowerShell.
  • Visita el panel de la comunidad para ver las contribuciones y el estado del proyecto.
  • Participa en los debates abiertos de GitHub para conectar con otros usuarios.
  • Chatea con la comunidad en Discord, IRC o Slack.

Desarrollas tus habilidades y te mantienes a la vanguardia de la automatización. Además, ayudas a tu equipo a estar preparado para las nuevas normativas de cumplimiento y los retos de TI.

Destacado: Tu biblioteca de scripts crece contigo. Sigue organizando, compartiendo y aprendiendo. Convertirás tus scripts en herramientas potentes para cada tarea de TI.


Puedes empezar hoy mismo a automatizar con PowerShell y transformar tu rutina de TI. Muchas organizaciones han automatizado la aplicación de parches, el cumplimiento y el despliegue de software, ahorrando tiempo y reforzando la seguridad. Cuando te unes a la comunidad de PowerShell, adquieres nuevas habilidades, creas amistades y te mantienes a la vanguardia en TI. Prueba a experimentar con scripts, organiza tu propia biblioteca y comparte tus logros.

El camino de PowerShell es divertido y gratificante.
¿Listo para los siguientes pasos?

  1. Escucha el podcast PowerShell Is Fun.
  2. Conecta con profesionales de TI en los foros de PowerShell.
  3. Practica la programación de scripts y sigue aprendiendo.

Preguntas frecuentes

¿Para qué se usa PowerShell?

Usas PowerShell para automatizar tareas en Windows, Microsoft 365 y Azure. Te ayuda a gestionar usuarios, archivos, redes y servicios en la nube. Con scripts puedes ahorrar tiempo y reducir errores.

¿Necesito saber programar para empezar con PowerShell?

No, no necesitas experiencia en programación. Puedes empezar con comandos sencillos e ir desarrollando tus habilidades. La comunidad de PowerShell y sus recursos facilitan mucho el aprendizaje.

¿Cómo ejecuto un script de PowerShell?

Guarda tu script con la extensión .ps1. Abre PowerShell, ve a la carpeta donde está tu script y escribe:

.\yourscript.ps1

Pulsa Intro. ¡Y listo!

¿PowerShell es solo para Windows?

No, PowerShell funciona en Windows, macOS y Linux. Puedes instalar PowerShell Core en cualquiera de estos sistemas. Así podrás automatizar tareas en distintas plataformas.

¿Dónde puedo encontrar scripts de PowerShell ya hechos?

Puedes encontrar scripts en sitios como PowerShell.org, GitHub y Scripting Blog. Muchos profesionales de TI comparten sus scripts en línea. Revisa siempre los scripts antes de ejecutarlos.

¿Cómo mantengo mis scripts seguros?

Consejo: firma tus scripts y configura las directivas de ejecución en RemoteSigned o AllSigned. Almacena las credenciales de forma segura. Revisa tus scripts con frecuencia para detectar posibles riesgos.

¿PowerShell puede conectarse a Microsoft 365 y Azure?

¡Sí! Puedes usar módulos como ExchangeOnlineManagement y Az para conectarte. Así podrás automatizar la gestión de usuarios, los informes y las tareas en la nube con solo unos cuantos comandos.


🎧 Escucha este episodio

¿Quieres una explicación práctica sobre la automatización con PowerShell junto a Harm Veenstra [MVP]? Este episodio desglosa el tema con un lenguaje claro y muestra por qué importa para Microsoft 365, Azure, Power Platform, la seguridad, la IA y el trabajo moderno.

Escucha este episodio si quieres:

  • Entender los conceptos clave de la automatización con PowerShell junto a Harm Veenstra [MVP]
  • Ver cómo encaja en el ecosistema tecnológico de Microsoft
  • Descubrir dónde puede aportar valor práctico a tu organización

También te pueden interesar estos episodios relacionados de M365 FM:

Descubre más conversaciones prácticas sobre Microsoft en M365 FM.

Entities in this article

PowerShell Automation Agent skill Microsoft 365 Compliance Microsoft .NET GitHub Harm Veenstra Visual Studio Code

Related articles

RSS