====== Que es powershell? ====== PowerShell es un lenguaje de scripting y una shell de línea de comandos desarrollado por Microsoft para automatizar tareas, administrar sistemas y controlar aplicaciones. Se puede considerar como el equivalente moderno del Command Prompt (CMD), pero mucho más potente. ¿Qué puede hacer? Con PowerShell puedes: * Administrar Windows, macOS y Linux. * Automatizar tareas repetitivas. * Administrar usuarios, discos, servicios y procesos. * Trabajar con archivos y carpetas. * Consultar bases de datos. * Leer y escribir archivos CSV, XML y JSON. * Administrar servicios en la nube como Microsoft 365 y Azure. * Controlar VMware, Hyper-V, NetBackup, Active Directory, Exchange, etc., mediante módulos específicos. Por ejemplo, listar todos los procesos: Get-Process Listar todos los servicios: Get-Service Mostrar los archivos de una carpeta: Get-ChildItem ¿Por qué es diferente de CMD? CMD trabaja principalmente con texto. PowerShell trabaja con objetos. Por ejemplo: Get-Process Cada proceso es un objeto con propiedades como: Puedes acceder directamente a ellas: Get-Process notepad | Select-Object Name, Id, CPU No tienes que analizar texto como en CMD. Los cmdlets Los comandos de PowerShell se llaman cmdlets y siguen la forma: Verbo-Sustantivo Ejemplos: Get-Service Stop-Service Start-Service New-Item Remove-Item Copy-Item Move-Item Esto hace que sean fáciles de recordar. Variables $nombre = "Adonis" Write-Host $nombre También puedes guardar listas: $archivos = Get-ChildItem C:\Temp Tuberías (Pipelines) Una de las características más potentes. Get-Process | Where-Object CPU -gt 100 Hace lo siguiente: Obtiene todos los procesos. Envía cada objeto por la tubería (|). Filtra solo los que usan más de 100 segundos de CPU. También puedes ordenar: Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Automatización Puedes crear scripts .ps1. Ejemplo: $fecha = Get-Date Write-Host "Hola" Write-Host "Hoy es $fecha" Y ejecutarlo: .\script.ps1 Funciones Puedes crear tus propios comandos function Saludar { param($Nombre) Write-Host "Hola $Nombre" } Saludar "Carlos" Ejemplo práctico Supón que quieres saber cuánto espacio libre tienen todos los discos: Get-CimInstance Win32_LogicalDisk | Select-Object DeviceID, @{Name="Libre(GB)";Expression={[math]::Round($_.FreeSpace/1GB,2)}} ¿En qué sistemas funciona? ==PowerShell Core (PowerShell 7) funciona en:== ✅ Windows ✅ Linux ✅ macOS Con prácticamente el mismo lenguaje. ¿Por qué es tan popular entre administradores de sistemas? Porque permite automatizar prácticamente cualquier tarea. Por ejemplo: Revisar cientos de servidores. Copiar archivos automáticamente. Enviar correos cuando ocurre un error. Comprobar el estado de servicios. Leer registros (logs). Administrar máquinas virtuales. Crear informes en CSV o Excel. Programar tareas para que se ejecuten solas. Fuente:chatGPT