Implementación de un Botón de Pánico en Red Local

Imagina que estás gestionando una red local y necesitas un mecanismo de supervivencia pura: un botón de pánico. ¿Cómo activarías una alarma masiva cuando «algo» está pasando, requiriendo asistencia inmediata?

Lo primero es entender la lógica base: necesitamos un evento local que dispare un canal central, el cual reenvía la alerta a todos los equipos conectados. Desde ahí, podemos decidir si queremos algo rápido y simple, o una arquitectura más elaborada con mensajería pub/sub.

Diagrama esquemático de un servidor central enviando señales a múltiples ordenadores en una red local para activar el sistema de alerta.
Arquitectura básica: el servidor central reenvía las alertas a toda la red local.

Si nos enfocamos en Windows, el objetivo es claro: queremos que la alerta sea imposible de ignorar. Al principio podríamos pensar en usar herramientas básicas, pero verás que no son suficientes.

El problema de las alertas discretas

Pensaste quizás en usar msg.exe. Sin embargo, esa herramienta solo muestra un cuadrito discreto en el escritorio. Si quieres algo más impactante—un mensaje emergente grande que parezca un aviso de cierre de sesión remoto y obligue a mirar—necesitas soluciones más robustas.

Aquí es donde entra la verdadera potencia de Windows: los scripts PowerShell combinados con bibliotecas visuales. Puedes crear ventanas modales masivas que aparecen encima de todo, incluso si el usuario está en pantalla completa o tiene la sesión bloqueada.

La ventana modal imposible de ignorar

Aquí tienes un ejemplo directo usando PowerShell y WPF para lograr ese efecto visual molesto pero funcional:

Vista de pantalla completa con una alerta de sistema superpuesta a todas las demás ventanas, obligando al usuario a hacer clic para cerrar.
La ventana emergente WPF en PowerShell bloqueando la interacción del usuario.
Add-Type -AssemblyName PresentationFramework

[System.Windows.MessageBox]::Show(
    "🚨 ALERTA DE RED 🚨nnSe ha detectado una situación que requiere asistencia inmediata.nPor favor contacte a soporte técnico AHORA.",
    "ALERTA CRÍTICA",
    [System.Windows.MessageBoxButton]::OK,
    [System.Windows.MessageBoxImage]::Warning,
    [System.Windows.MessageBoxOptions]::ServiceNotification
)

El detalle clave aquí es la opción ServiceNotification. Esto hace que el mensaje aparezca incluso si la sesión está bloqueada, funcionando como un aviso de cierre remoto. Además, se muestra siempre encima de todas las ventanas.

Si lo quieres aún más grande y dramático, puedes usar una ventana WPF personalizada con dimensiones específicas para centrarla en pantalla:

Representación visual de una herramienta de administración enviando comandos a un servidor específico dentro de la red.
Ejecución remota mediante PsExec para mostrar la alerta solo en un equipo seleccionado.
$window = New-Object System.Windows.Window
$window.Title = "🚨 ALERTA DE EMERGENCIA 🚨"
$window.WindowStartupLocation = "CenterScreen"
$window.Topmost = $true
$window.Width = 600
$window.Height = 300
...
$button.Add_Click({ $window.Close() })

Disparar la alerta a un equipo específico

Ahora que tenemos el aviso, ¿cómo lo activamos solo en un equipo concreto? Hay tres vías principales para lograrlo.

La primera es usar WinRM / PowerShell Remoting. Si WinRM está habilitado, puedes apuntar directamente al equipo:

Invoke-Command -ComputerName PC-OFICINA-07 -ScriptBlock { ... }

Luego está la vía directa: PoShExec (PsExec). Si no quieres tocar GPOs, usas PsExec con el flag -i para ejecutarlo en contexto interactivo:

Representación del planificador de tareas ejecutando una alerta automática en ausencia de usuarios.
Uso de tareas programadas para activar el botón de pánico incluso si no hay nadie en el equipo.
psexec \PC-OFICINA-07 -i powershell.exe -ExecutionPolicy Bypass -File alerta.ps1

Finalmente, la vía silenciosa: Tareas Programadas Remotas. Usando schtasks, puedes disparar la alerta aunque el usuario no esté logueado aún:

schtasks /create /s PC-OFICINA-07 /sc once /st 00:00 ...

Elige según tus necesidades: PsExec para urgencias, WinRM si tienes infraestructura ordenada, o tareas programadas para fiabilidad absoluta. Con esto, tu red local tiene un botón de pánico totalmente funcional y difícil de ignorar.