...

*Cube-Host– servicios completos en la nube!!

PowerShell para la automatización: una herramienta universal para profesionales de TI

PowerShell for automation: a universal tool for IT professionals

PowerShell es una potente herramienta de automatización y administración para administradores de sistemas. Le permite ejecutar scripts, administrar servicios y usuarios, controlar eventos e interactuar con sistemas externos y API. En esta guía, aprenderá paso a paso cómo utilizar PowerShell para tareas prácticas.

Instalación y configuración

  1. Descargue PowerShell 7+ desde el sitio web oficial: https://github.com/PowerShell/PowerShell
  2. Abra PowerShell o PowerShell ISE (el editor de scripts integrado).

Permita la ejecución de scripts ejecutando lo siguiente:

  Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  

Primer script «Hello.ps1»

Cree un archivo con el nombre «Hello.ps1» y pegue lo siguiente:

  Write-Host "Hello, PowerShell automation!"
Get-Date
$env:USERNAME  

Ejecute el script con el siguiente comando:

  .\Hello.ps1  

Fundamentos de la sintaxis

PowerShell se basa en una estructura clara y concisa:

  • Comandos: Get-Process, Start-Service, Stop-Computer
  • Variables: $user = «Admin»
  • Condiciones: if ($x -gt 10) { … }
  • Bucle: foreach ($item in $list) { … }

Utilice el editor PowerShell ISE o Visual Studio Code con la extensión PowerShell para resaltar y autocompletar.

Estilo y estructura del script

Recomendamos seguir los siguientes principios:

  • Nombrar las funciones en estilo verbo-sustantivo: Get-Report, Start-Backup
  • Utilizar Try-Catch para tratar los errores
  • Añadir comentarios y descripciones de los parámetros (Docblocks)
  • Separar la lógica por funciones y módulos

Ejemplo: supervisión de la memoria

  param([int]$Threshold = 80)

$mem = Get-CimInstance Win32_OperatingSystem |
    Select @{Name='FreeGB'; Expression={[math]::Round($_.FreePhysicalMemory/1MB,2)}}

if ($mem.FreeGB -lt $Threshold) {
    Write-Warning "Memory low: $($mem.FreeGB) GB"
} else {
    Write-Host "Memory OK: $($mem.FreeGB) GB"
}
  

El script comprueba si hay suficiente espacio libre y muestra una advertencia si no es así.

Programador de tareas

Puede ejecutar scripts de PowerShell según una programación:

  • Abra el programador de tareas
  • Cree una nueva tarea → pestaña «Acción»

Especifique lo siguiente:

  powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\Hello.ps1"  
  • Configure un activador basado en el tiempo o en eventos.

Administración de usuarios

Usuarios locales:

  $pass = Read-Host -AsSecureString "Введите пароль"
New-LocalUser -Name "TestUser" -Password $pass -FullName "Тестовый пользователь"
Disable-LocalUser -Name "TestUser"
Remove-LocalUser -Name "TestUser"  

Active Directory (con archivo CSV):

  Import-Csv users.csv | ForEach-Object {
    New-ADUser -Name $_.Name -SamAccountName $_.Login `
    -AccountPassword (ConvertTo-SecureString $_.Password -AsPlainText -Force) -Enabled $true
}  

Supervisión de eventos de Windows

  Get-WinEvent -LogName System -MaxEvents 10 |
Format-Table TimeCreated, Id, Message  

Filtrado:

  Get-WinEvent -FilterHashtable @{LogName='Application'; Id=1000; StartTime=(Get-Date).AddDays(-1)}  

Exportar a CSV:

  ... | Export-Csv "C:\Logs\app.csv" -NoTypeInformation  

Copia de seguridad y archivo

  $src = "C:\Important"
$dst = "D:\Backup\Backup_$(Get-Date -Format 'yyyyMMdd').zip"
Compress-Archive -Path "$src\*" -DestinationPath $dst

Add-Content "D:\Backup\backup_log.txt" "Backup: $(Get-Date) → $dst"  

Este script crea un archivo a partir de una carpeta y registra la copia de seguridad.

Notificaciones por correo electrónico

  Send-MailMessage -From "admin@domain.com" -To "team@company.com" `
 -Subject "Backup report" -Body "Backup completed successfully." `
 -SmtpServer "smtp.domain.com" -Attachments "D:\Backup\*.zip"  

Integración con CI/CD y la nube

  • Puede utilizar PowerShell en GitHub Actions, Azure Automation Runbooks o en VPS SSD.

Ejemplo de GitHub Actions:

  - name: Run PowerShell script
  run: pwsh ./monitor.ps1  
  • En Azure, puede ejecutar un script con RBAC y registros de ejecución según una programación.

PowerShell no es solo un shell, sino una herramienta de automatización universal. Aprenderá rápidamente los conceptos básicos con ejemplos prácticos para respaldar y eliminar archivos antiguos, así como para ejecutar programas. Importante: pruebe siempre los scripts con el parámetro -WhatIf o en un entorno de prueba para evitar cambios no deseados.