Aula  ·  Windows & PowerShell  /  Lección 08
08Lección 8 · Programar la consola

Scripting en PowerShell

El salto de teclear comandos a automatizarlos. Scripts .ps1, variables y objetos, if/switch, bucles for/foreach/while, funciones con parámetros, $args, try/catch y la ExecutionPolicy (qué es y por qué te protege). Cerramos con un script real de informe del sistema y el contraste con los .bat clásicos.

Progreso del trackLección 08 de 10
powershell.exe
PS C:\> .\informe.ps1 -Top 3 === Informe del 29/10/2026 09:12 === -- Top 3 procesos por CPU -- chrome 5120 61.4 PS C:\>
▶
Vídeo de la lección. Míralo para ver todos estos comandos en acción, paso a paso y sin prisa.
Ver el vídeo →

🤖De teclear comandos a AUTOMATIZARLOS

Un script es, sencillamente, una lista de comandos guardada en un fichero para que se ejecuten solos, en orden, las veces que quieras. Es el salto de "hago esto a mano cada día" a "lo escribo una vez y la máquina lo repite".

En PowerShell los scripts son ficheros con extensión .ps1. Los editas con el Bloc de notas, con VS Code (lo ideal) o con el ISE, y los lanzas desde la consola. Todo lo que ya sabes (cmdlets, pipeline, Where/Select/Sort) sigue valiendo: ahora solo lo empaquetas.

# informe.ps1 — tu primer script Write-Host "Hola, soy tu primer script" Get-Date Get-Process | Sort-Object CPU -Descending | Select-Object -First 3

Para contrastar: un .bat (o .cmd) es el equivalente clásico en CMD — también es una lista de comandos en un fichero de texto. Sirve para cosas sencillas, pero PowerShell es muchísimo más potente para scripts de verdad. Lo vemos al final.

🔑La ExecutionPolicy: por qué tu primer script "no se ejecuta"

La primera vez que lances un .ps1 probablemente veas un error de "ejecución de scripts deshabilitada". No es un fallo: es una medida de seguridad llamada ExecutionPolicy. Windows, por defecto, no corre scripts a la ligera para protegerte de uno malicioso que llegue por correo o descarga.

▸ExecutionPolicy (entenderla y ajustarla)3 comandos
Get-ExecutionPolicy
consulta la política actual (suele ser Restricted).
Get-ExecutionPolicy -List
la política en cada ámbito (usuario, máquina...).
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
la opción recomendada: corre TUS scripts locales, pero exige firma a los descargados de internet. Solo afecta a tu usuario.

Los niveles, de más a menos seguro: Restricted (no corre scripts), AllSigned (solo firmados), RemoteSigned (los tuyos sí, los de internet solo firmados) y Unrestricted (corre todo; no recomendable).

RemoteSigned a nivel CurrentUser es el equilibrio profesional: te deja trabajar con tus scripts sin abrir la puerta a los de procedencia dudosa. Entender POR QUÉ existe esta barrera es más valioso que saltarla: es tu primera línea de defensa frente a scripts hostiles.

🔒

El resto de la lección está en el Laboratorio

Esto es una muestra gratuita. La lección completa (los 11 bloques restantes con sus chuletas de comandos copiables, diagramas y el resumen) está dentro, junto a tu Kali en el navegador, las máquinas, el Arsenal y el tutor Rio.

Únete para desbloquearla →