Enviá notificaciones push a tu móvil con ntfy.sh mediante PowerShell

Kovasky Buezo | Jul 8, 2025 min de lectura

Intro

Tenía algunas tareas de PowerShell configuradas en mi servidor sin forma de conocer su estado a menos que revisara los registros de eventos. Iniciar sesión y buscar información en los registros se convierte en una molestia cuando tenés que revisar más de uno. Buscaba un método que consumiera menos tiempo, así que encontré la forma de enviar alertas push a mi móvil usando ntfy.sh.

Prerrequisitos

Para que esta configuración funcione, debés tener una instancia de ntfy.sh. Podés encontrar las instrucciones de instalación aquí y mi archivo personal docker compose aquí.

Estoy utilizando la versión predeterminada de PowerShell que viene instalada en Windows Server 2016 y encontré algunos problemas para alcanzar mi endpoint de ntfy debido a fallas en la validación de certificados. Para evitar esto, agregué lo siguiente en mi script.

Add-Type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
    public bool CheckValidationResult(
    ServicePoint srvPoint, X509Certificate certificate,
    WebRequest request, int certificateProblem) {
        return true;
    }
}
"@

[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

$allProtocols = [System.Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12'
[System.Net.ServicePointManager]::SecurityProtocol = $allProtocols

Script de PowerShell

Para enviar un mensaje a ntfy, solo tenés que agregar una solicitud POST a tu script de la siguiente manera:

$bearerToken="tu token codificado"

$Request = @{
  Method = "POST"
  URI = "https://ntfy.tudominio.com/scripts?auth=$bearerToken"
  Headers = @{
    Title = $title # title es el encabezado de la notificación
  }
  Body = $body # body es el contenido de tu notificación
}
Invoke-RestMethod @Request

Para obtener un token de acceso, iniciá sesión en tu interfaz web de ntfy y navegá a la configuración de tu cuenta. Creá un token de acceso y asegurate de seleccionar Token never expires. Una vez creado, copiá el token y formatealo como Bearer tk_token. Finalmente, codificá toda la string en base64 usando una herramienta en línea como ésta.

Listo!

Si todo está configurado correctamente, recibirás información de estado de tus scripts directamente en tu teléfono.