Tutorial de Powershell para principiantes

⚡ Resumen inteligente

PowerShell Scripting es un motor de automatización orientado a objetos construido sobre el marco .NET. Combina cmdlets, scripts y un lenguaje de scripting para ayudar a los administradores de TI a automatizar WindowsAdministre servicios y conecte máquinas remotas desde una única línea de comandos.

  • 🚀 Inicie la consola correcta: Abra PowerShell o PowerShell ISE desde el menú Inicio y ejecútelo como administrador cuando necesite privilegios elevados.
  • 🧩 Utilice cmdlets, no comandos de texto: Los cmdlets siguen un patrón de nomenclatura verbo-sustantivo y devuelven objetos .NET, por lo que la salida puede fluir hacia el siguiente cmdlet a través de una canalización.
  • 🔐 Establezca la política de ejecución con cuidado: Utilice Set-ExecutionPolicy con RemoteSigned para equilibrar la seguridad y la comodidad al ejecutar scripts .ps1.
  • 📁 Escriba scripts .ps1 reutilizables: Combine cmdlets, variables y canalizaciones en un archivo de texto con la extensión .ps1 para automatizar tareas administrativas repetitivas.
  • 🤖 Combina PowerShell con la IA: Los asistentes de IA convierten las solicitudes en lenguaje sencillo en scripts de PowerShell listos para ejecutar y explican los cmdlets desconocidos línea por línea.

Tutorial de Powershell para principiantes

¿Qué es PowerShell?

Windows PowerShell es un motor de automatización orientado a objetos y un lenguaje de scripting. Está diseñado para profesionales de TI y administradores de sistemas que necesitan controlar y automatizar la administración de Windows y otras aplicaciones. PowerShell amplía los conceptos aprendidos en Windows símbolo del sistema y Windows Host de scripts con nuevos objetos, cmdlets y una potente canalización.

Combina la flexibilidad de la programación, la velocidad de la línea de comandos y la profundidad de una herramienta de administración con interfaz gráfica. Con ella, los administradores pueden resolver problemas de forma eficiente y ahorrar horas de trabajo manual. Este tutorial explica los aspectos esenciales que necesitas para aprender PowerShell desde cero.

¿Por qué usar PowerShell?

Las razones más importantes para usar PowerShell son:

  • Ofrece una experiencia de línea de comandos bien integrada para el sistema operativo.
  • Proporciona acceso completo a todos los tipos del framework .NET.
  • Con la confianza de los administradores de sistemas en todas las empresas.
  • Permite manipular componentes de servidores y estaciones de trabajo con tan solo unas pocas líneas de código.
  • Diseñado para administradores de sistemas con una sintaxis clara de verbo-sustantivo.
  • Más seguro que correr VBScript o otros lenguajes de scripting heredados.

Historial de PowerShell

PowerShell 1.0 se lanzó por primera vez en 2006. Actualmente, PowerShell está en la versión 7.2 y posteriores. Con cada nueva versión, sus capacidades y entornos de alojamiento crecieron significativamente.

Historial de versiones de PowerShell:

  • PowerShell 1.0 — apoyó la administración local de Windows 2003 Server.
  • PowerShell 2.0 — integrado con Windows 7 y Windows Servidor 2008 R2. Se añadieron funciones de acceso remoto, transacciones, trabajos en segundo plano, eventos y depuración.
  • PowerShell 3.0 — enviado con Windows 8 y Windows Servidor 2012 como parte del Windows Marco de gestión. Se añadieron tareas programadas, conectividad de sesión y carga automática de módulos.
  • PowerShell 4.0 — enviado con Windows 8.1 y Windows Server 2012 R2. Se agregó la configuración de estado deseado, la depuración mejorada y el diagnóstico de red.
  • PowerShell 5.0 — parte de Windows Marco de administración 5. Se agregaron depuración remota, definiciones de clases y enumeraciones .NET.
  • PowerShell 7.2 — Desarrollado con .NET 6.0. Añade nuevos operadores, vistas de error dinámicas y notificaciones automáticas de versión.

Características de PowerShell

  • Acceso remoto mediante PowerShell: ejecutar scripts y cmdlets en una máquina remota.
  • Trabajos de fondo: Ejecutar scripts o flujos de trabajo de forma asíncrona en la máquina local o en varias máquinas remotas.
  • Actas: Permitir que los cmdlets y los desarrolladores realicen operaciones agrupadas que se puedan confirmar o revertir conjuntamente.
  • Concurso completo: Escuchar, transmitir y actuar en función de los eventos del sistema y de la gestión.
  • Transferencia de archivos de red: Compatibilidad nativa con la transferencia de archivos priorizada, asíncrona y con velocidad limitada entre máquinas mediante el Servicio de Transferencia Inteligente en Segundo Plano (BITS).

Cómo iniciar PowerShell

PowerShell viene preinstalado en todas las versiones recientes de Windows. Inícialo de la siguiente manera.

Paso 1) Busque PowerShell en WindowsLuego, selecciónelo y haga clic en él.

Inicie PowerShell

Paso 2) Se abre la ventana de PowerShell.

ventana de PowerShell

Cmdlet frente a comando

A cmdlet (pronunciado “command-let”) es un comando ligero que se utiliza en el entorno de PowerShell. PowerShell invoca cmdlets en la línea de comandos, y puedes crear los tuyos propios utilizando las API de PowerShell. Los cmdlets se diferencian de los comandos de shell tradicionales de las siguientes maneras:

  • Los cmdlets son . NET Framework objetos de clase; no pueden ejecutarse como ejecutables independientes.
  • Los cmdlets se pueden escribir con tan solo una docena de líneas de código.
  • El análisis sintáctico, el formato de salida y la presentación de errores son gestionados por el entorno de ejecución, no por el cmdlet en sí.
  • Los cmdlets trabajan con objetos, por lo que tanto los flujos de texto como los objetos pueden circular a través de las canalizaciones.
  • Los cmdlets se basan en registros y procesan un solo objeto a la vez.

La mayor parte de la funcionalidad de PowerShell se proporciona a través de cmdlets, que siempre utilizan un patrón de nomenclatura verbo-sustantivo (siempre singular). Los cmdlets devuelven objetos, no texto. guión — distinto de un cmdlet — es una serie de comandos almacenados en un archivo de texto con el .ps1 extensión.

Algunos verbos comunes que utilizarás para aprender PowerShell son:

  • Obtén — recuperar algo.
  • Comenzar — haz algo.
  • Oct — generar algo.
  • Parada — detener algo que está en marcha.
  • Establecer — define algo.
  • New — crea algo.

Comandos importantes de PowerShell

Consigue ayuda: Consulta la ayuda sobre comandos y temas de PowerShell.

Ejemplo: mostrar ayuda para el Format-Table mando.

Get-Help Format-Table

cmdlet Obtener-Ayuda

Obtener comando: Obtén información sobre cualquier cosa que pueda ser invocada.

Ejemplo: generar una lista de cmdlets y funciones instaladas en la máquina.

Get-Command

Cmdlet Get-Command

Obtener servicio: Encuentra todos los servicios en la máquina.

Ejemplo: obtener todos los servicios cuyo nombre comience con “vm”.

Get-Service "vm*"

cmdlet Obtener-Servicio

Obtener miembro: muestra qué se puede hacer con un objeto.

Ejemplo: listar los miembros de los servicios de la máquina virtual devueltos por Get-Service.

Get-Service "vm*" | Get-Member

cmdlet Get-Member

Otros cmdlets útiles:

  • Get-Module — muestra los paquetes de comandos instalados.
  • Get-Content — leer un archivo y procesar su contenido.
  • Get-* comodín: lista todos los cmdlets que comienzan con “Get-”.

Ejemplo: crear una carpeta.

New-Item -Path 'X:\Guru99' -ItemType Directory

Salida:

Salida de nuevo elemento

Tipos de datos de PowerShell

PowerShell admite los tipos de datos estándar de .NET, por lo que puede almacenar cualquier valor de forma limpia en una variable.

Tipos de datos de PowerShell

Variables especiales

PowerShell expone una serie de variables especiales integradas. Las más útiles se enumeran a continuación.

Variable especial Mareas Ideales para Lecciones
$Error Una matriz de objetos de error que representan los errores más recientes.
$anfitrión Muestra el nombre de la aplicación anfitriona actual.
$Perfil Almacena la ruta completa del perfil de usuario para el intérprete de comandos predeterminado.
$ PID Almacena el identificador del proceso.
$PSUICultura Contiene el nombre de la cultura de interfaz de usuario actual.
$NULO Contiene un valor vacío o nulo.
$falso Contiene el valor booleano FALSO.
$Verdadero Contiene el valor booleano VERDADERO.

Scripts de PowerShell

Los scripts de PowerShell se almacenan en .ps1 archivos. Por defecto, no puede ejecutar un script haciendo doble clic en él; esta medida de seguridad protege el sistema de daños accidentales. Para ejecutar un script, haga clic con el botón derecho en él y elija “Ejecutar con PowerShell”.

Ejecutar con PowerShell

Una política de ejecución controla qué scripts tienen permiso para ejecutarse. Vea la política actual con Get-ExecutionPolicyLos valores posibles incluyen:

  • Restringido — No se permiten scripts. Esta es la configuración predeterminada.
  • TodosFirmados — Solo se ejecutan los scripts firmados por un desarrollador de confianza, y cada uno requiere confirmación.
  • RemoteSigned — Ejecuta tus propios scripts, además de scripts firmados de fuentes confiables.
  • Irrestricto — cualquier script puede ejecutarse (úselo con moderación).

Pasos para cambiar la política de ejecución:

Paso 1) Abra una ventana de PowerShell con privilegios elevados haciendo clic con el botón derecho en PowerShell y seleccionando Ejecutar como administrador.

Ejecutar PowerShell como administrador

Paso 2) Ejecuta los siguientes comandos.

  1. Get-ExecutionPolicy
  2. Set-ExecutionPolicy Unrestricted
  3. entrar: Y en la solicitud de confirmación.
  4. Get-ExecutionPolicy

Política de ejecución de cambios

Primer script de PowerShell

Abre el Bloc de notas y escribe:

Write-Host "Hello, Guru99!"

Guarde el archivo con un .ps1 extensión — por ejemplo, FirstScript.ps1.

Guardar FirstScript.ps1

En PowerShell, ejecute el script con:

& "X:\FirstScript.ps1"

Ejecutar FirstScript.ps1

¿Qué es PowerShell ISE?

El Windows Entorno de scripting integrado de PowerShell (ISE) ISE es el editor predeterminado de PowerShell. En ISE, puedes ejecutar comandos, escribir pruebas y depurar scripts en un entorno gráfico basado en ventanas. Admite edición multilínea, resaltado de sintaxis, autocompletado, ejecución selectiva y mucho más.

PowerShell ISE también ofrece un panel de consola que ejecuta comandos directamente, mientras que los paneles laterales muestran el código fuente de los scripts y las herramientas conectadas a ISE. Se pueden abrir varias ventanas de scripts a la vez, lo cual resulta útil para depurar scripts que dependen de funciones definidas en otros scripts o módulos.

ISE de PowerShell

Recrea el script anterior en ISE:

  1. Pega el código en el editor.
  2. Guarda el script.
  3. Pulsa F5 para ejecutarlo.
  4. Observe la salida en el panel de la consola.

Ejecutar script en ISE

Muestra 2: El siguiente script muestra contenido gratuito. memoria virtual en la maquina.

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory

Script de memoria virtual gratuito

PowerShell Concepts

Los siguientes conceptos conforman el vocabulario del trabajo diario con PowerShell.

Concepto Mareas Ideales para Lecciones
cmdlets Comandos integrados escritos en lenguajes .NET como VB o C#. Los desarrolladores amplían el conjunto cargando o escribiendo complementos de PowerShell.
Funciones Comandos escritos en el propio lenguaje PowerShell, sin necesidad de un IDE como Visual Studio.
Scripts Archivos de texto en el disco con el .ps1 extensión.
Aplicaciones Ya eres Windows programas invocados desde la consola.
Y si Indica al cmdlet que no se ejecute, sino que describa lo que sucedería si lo hiciera.
Confirmar Indica al cmdlet que solicite confirmación antes de ejecutarse.
Verboso Proporciona un mayor nivel de detalle operativo.
Depurar Indica al cmdlet que emita información de depuración.
ErrorAcción Define qué hace el cmdlet en caso de error. Valores permitidos: continue, stop, silentlycontinue, inquire.
variable de error Indica el nombre de la variable que contiene la información de error.
FueraVariable Indica al cmdlet que almacene su resultado en una variable específica.
OctBuffer Retiene un número específico de objetos antes de enviarlos a través del proceso.

Ventajas de usar scripts de PowerShell

  • Los scripts de PowerShell son potentes y concisos: puedes lograr mucho con tan solo unas pocas líneas.
  • Las variables se declaran con el $<variable> sintaxis.
  • Las variables pueden almacenar la salida de comandos, objetos y valores primitivos.
  • No es necesario especificar explícitamente el tipo de variable.

PowerShell frente al símbolo del sistema

PowerShell Símbolo del sistema
Profundamente integrado con WindowsOfrece una interfaz de línea de comandos interactiva y un lenguaje de scripting completo. Interfaz de línea de comandos predeterminada proporcionada por MicrosoftUna sencilla aplicación Win32 que se comunica con otros objetos Win32.
Utiliza cmdlets que se pueden invocar de forma interactiva o mediante scripts de automatización. No hay cmdlets.
Trata la salida como objetos para que pueda fluir hacia otro cmdlet a través de la canalización. La salida es un flujo de texto plano, no objetos.
Avanzado en características, capacidades y arquitectura interna. Interfaz básica, adecuada para tareas por lotes heredadas.

Aplicaciones de PowerShell

PowerShell se ha convertido en la opción estándar para los administradores de TI porque reduce drásticamente el esfuerzo en grandes redes corporativas. Imagínese administrar más de cuatrocientos servidores e implementar una nueva solución de seguridad que depende de un servicio específico que se ejecuta en cada host.

Iniciar sesión manualmente en cada servidor es lento y propenso a errores. Un único script de PowerShell puede analizar todos los servidores en minutos, informar qué hosts ya ejecutan el servicio e incluso habilitarlo en el resto. El script captura la intención una sola vez y la aplica de forma fiable en toda la infraestructura.

Preguntas Frecuentes

PowerShell automatiza Windows Administración de sistemas: gestión de servicios, archivos, usuarios y servidores, mediante una línea de comandos orientada a objetos y un lenguaje de scripting basado en el framework .NET.

Un cmdlet es un objeto de clase .NET ligero que utiliza un nombre compuesto por verbo y sustantivo y devuelve objetos. Un comando tradicional en otros intérpretes de comandos genera texto plano y se encarga de su propio análisis y formato.

PowerShell trabaja con objetos y admite cmdlets, scripts e integración profunda con .NET. El Símbolo del sistema es un intérprete de comandos básico basado en texto cuyos comandos generan texto sin formato en lugar de objetos.

Un archivo .ps1 es un script de PowerShell: un archivo de texto que contiene uno o más comandos de PowerShell. Por defecto, no se puede ejecutar haciendo doble clic; se ejecuta desde la consola o con la opción "Ejecutar con PowerShell".

Abra PowerShell como administrador y ejecute Set-ExecutionPolicy con un valor como RemoteSigned o Unrestricted; luego, confirme. Use Get-ExecutionPolicy para comprobar la configuración actual.

El Entorno de Scripting Integrado (ISE) es el editor gráfico integrado de PowerShell para escribir, ejecutar, probar y depurar scripts, con resaltado de sintaxis, autocompletado mediante la tecla Tab y múltiples pestañas de scripts.

Los asistentes de IA sugieren cmdlets, explican el comportamiento de los scripts y detectan errores mientras escribes. Ayudan a los administradores a automatizar tareas más rápidamente y a convertir solicitudes en lenguaje natural en comandos de PowerShell funcionales.

Sí. Los asistentes de código de IA generan scripts completos de PowerShell a partir de una descripción en lenguaje sencillo, como "listar todos los servicios detenidos y reiniciarlos", y explican cada cmdlet para que puedas revisarlo antes de ejecutarlo.

Resumir este post con: