Introducción a PowerShell - Diferencias con CMD y Conceptos Básicos
🔑 Diferencias principales
| Característica | 🖥️ CMD | ⚡ PowerShell |
|---|---|---|
| Idioma | ⌨️ Solo comandos CMD y batch. | 📜 Cmdlets, alias de Batch, CMD y PS. |
| Uso de comandos | ❌ Salida de texto plano, no puede pasarse como objeto. | ✅ Salida en objetos, puede encadenarse entre comandos. |
| Salida | 📝 Solo texto. | 📦 Objetos estructurados. |
| Ejecución paralela | ⏳ Un comando a la vez. | 🔀 Multiproceso en paralelo. |
👉 PowerShell no es solo una CLI, también es un lenguaje de scripting basado en .NET, extensible, automatizable y multiplataforma (Windows/Linux).
🎯 ¿Por qué elegir PowerShell sobre CMD?
-
🤖 Automatización de tareas repetitivas.
-
🔐 Mejor seguridad y control de permisos.
-
🌐 Integración con Azure, Microsoft 365, Active Directory.
-
📦 Soporte para módulos y herramientas externas.
-
🛠️ Más capacidades para pentesting y defensa (aunque más registrado en logs que CMD).
🚪 Cómo abrir PowerShell
-
🔍 Windows Search → Buscar PowerShell.
-
🖥️ Windows Terminal → Permite abrir CMD, PS, WSL, etc. en una sola app.
-
📝 PowerShell ISE → Entorno para programar/debuggear scripts PS.
-
⛓️ Desde CMD → Ejecutar
powershell.exe.
📌 Navegación básica en PowerShell
| Cmdlet | Alias | Emoji | Descripción |
|---|---|---|---|
Get-Location |
pwd, gl |
📍 | Muestra el directorio actual. |
Set-Location |
cd, sl |
📂 | Cambia de directorio. |
Get-ChildItem |
ls, dir, gci |
📁 | Lista contenido de un directorio. |
Get-Content |
cat, type, gc |
📜 | Muestra el contenido de un archivo. |
🆘 Obtener ayuda
| Cmdlet | Emoji | Uso |
|---|---|---|
Get-Help <cmdlet> |
❓ | Muestra ayuda de un comando. |
Get-Help <cmdlet> -Online |
🌐 | Abre la doc oficial en web. |
Update-Help |
🔄 | Descarga/actualiza ayuda en local. |
🔍 Descubrir comandos
| Cmdlet | Emoji | Uso |
|---|---|---|
Get-Command |
🔎 | Lista todos los cmdlets disponibles. |
Get-Command -Verb get |
🟢 | Filtra por verbo (ej. todos los que comienzan con Get-). |
Get-Command -Noun windows* |
🪟 | Filtra por sustantivo (ej. comandos relacionados a Windows). |
📜 Historial
-
Get-History→ 📖 Muestra los comandos de la sesión actual. -
r <número>→ 🔁 Reejecuta un comando anterior por ID. -
PSReadLine → 🗂️ Guarda historial en:
$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt -
🔒 Filtra palabras sensibles como
password,apikey,secret.
🧹 Trucos útiles
| Comando / Tecla | Emoji | Acción |
|---|---|---|
Clear-Host / cls |
🧹 | Limpia la pantalla. |
CTRL+R |
⏮️ | Busca en historial. |
CTRL+L |
🧼 | Limpieza rápida de pantalla. |
F7 |
📜 | Historial interactivo desplazable. |
↑ / ↓ |
🔼🔽 | Navegar entre comandos previos. |
Tab / Shift+Tab |
🔁 | Autocompletar comandos. |
🏷️ Alias más útiles
| Alias | Cmdlet real | Emoji |
|---|---|---|
pwd |
Get-Location |
📍 |
ls |
Get-ChildItem |
📁 |
cd |
Set-Location |
📂 |
cat |
Get-Content |
📜 |
clear |
Clear-Host |
🧹 |
curl / wget |
Invoke-WebRequest |
🌐 |
fl / ft |
Format-List / Format-Table |
📊 |
man |
Get-Help |
❓ |