> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/es/automatizacion/triggers.md).

# Disparadores

Ejecute scripts de PowerShell Universal automáticamente en eventos como la finalización de trabajos, el inicio del servidor, el inicio de sesión de usuario, la sincronización de git o los cambios de e

> Los desencadenadores requieren una [licencia](/powershell-universal/es/licensing.md).

Los desencadenadores inician automáticamente scripts de PowerShell Universal cuando se producen eventos de la plataforma. Úselos para la gestión global de errores, notificaciones, integraciones y automatización basada en eventos.

> Los trabajos desencadenados no inician desencadenadores adicionales. Los desencadenadores se almacenan en `triggers.ps1`.

## Eventos de desencadenador

Puede crear desencadenadores para los siguientes eventos:

* Trabajo iniciado, cancelado, completado, completado con error, solicitando comentarios, fallido y agotado el tiempo de espera
* Aplicación (Dashboard) iniciada, detenida y sesión expirada
* Event Hub conectado y desconectado
* Error en la comprobación de estado
* Servidor iniciado y deteniéndose
* Nuevo inicio de sesión de usuario e inicio de sesión de usuario
* Uso de un token de aplicación revocado
* Error de autenticación de API y error de API
* Sincronización de Git
* Licencia expirada y licencia próxima a expirar
* Equipo sin conexión
* Notificación creada

### Notificación creada

El evento **Notificación creada** se ejecuta cuando PowerShell Universal crea una notificación a través del servicio de notificaciones o de la API de notificaciones. Úselo para enrutar las alertas de la plataforma a sistemas como Teams, correo electrónico, gestión de tickets o herramientas de supervisión.

El script del desencadenador recibe la notificación creada en el parámetro `$Notification`. Incluye el ID de la notificación, el título, la descripción, el nivel, la hora de creación, el trabajo de origen, el script, el dashboard, la licencia, la identidad y el seguimiento de pila cuando está disponible.

```powershell
param($Notification)

if ($Notification.Level.ToString() -eq 'Error') {
    Send-MailMessage -To 'operations@example.com' `
        -Subject $Notification.Title `
        -Body $Notification.Description
}
```

Cree el desencadenador en **Automatización > Desencadenadores** seleccionando **Notificación creada** como tipo de evento, o defínalo en un repositorio de configuración:

```powershell
New-PSUTrigger `
    -Name 'Route error notifications' `
    -EventType NotificationCreated `
    -TriggerScript 'RouteNotification.ps1'
```

Las notificaciones generadas cuando se inicia un trabajo desencadenado no provocan este evento. Esto evita que los desencadenadores de notificaciones creen de forma recursiva más trabajos desencadenados por notificaciones.

### Nuevo inicio de sesión de usuario

El evento Nuevo inicio de sesión de usuario se produce cuando un usuario accede por primera vez a PowerShell Universal. El script recibe un parámetro `$User` con la información del usuario.

```powershell
@{
    Name = 'username'
    Roles = @()
}
```

### Inicio de sesión de usuario

El evento Inicio de sesión de usuario se produce cuando un usuario accede a PowerShell Universal. El script recibe un parámetro `$data` con la información del usuario.

```powershell
@{
    UserName = 'username'
    RemoteIpAddress = ''
    LocalPort = ''
    RemotePort = ''
}
```

### Uso de un token de aplicación revocado

El evento de token de aplicación revocado se produce cuando se utiliza un token de aplicación revocado. El script recibe un parámetro `$data` que contiene el contenido del token de aplicación como una cadena.

### Sincronización de Git

El evento Sincronización de Git se produce tanto en las sincronizaciones de Git correctas como en las fallidas. El script recibe un parámetro `$data` con el estado de Git.

```csharp
public class GitStatus
{
    public long Id { get; set; }
    public string CommitId { get; set; }
    public DateTime Timestamp { get; set; }
    public TimeSpan SyncTime { get; set; }
    public int Changes { get; set; }
    public string Location { get; set; }
    public string Remote { get; set; }
    public GitStatusResult Result { get; set; }
    public string ResultMessage { get; set; }
    public string ComputerName { get; set; }
}
```

### Equipo sin conexión

El evento Equipo sin conexión proporciona el objeto del equipo en el parámetro `$Data`.

```powershell
class Computer {
    [long]$Id
    [string]$Name
    [DateTime]$HeartBeat
    [ComputerStatus]$Status
    [bool]$Maintenance
    [bool]$Deleted
    [List[ComputerTag]]$Tags
    [string]$Version
    [DateTime]$FileSyncTimestamp
    [string]$DeploymentVersion
    [string]$DeploymentName
    [string]$GitSettings
    [string]$GitBranch
    [ComputerType]$Type
}
```

## Desencadenadores globales

Los desencadenadores globales ejecutan el script asignado cada vez que se produce el evento seleccionado. Por ejemplo, este desencadenador ejecuta `Script.ps1` cada vez que se inicia cualquier trabajo:

```powershell
New-PSUTrigger -Name 'Job started' -EventType JobStarted -TriggerScript 'Script.ps1'
```

## Desencadenadores de recursos

Los desencadenadores de recursos se ejecutan únicamente cuando se produce un evento en el recurso seleccionado. Por ejemplo, este desencadenador se ejecuta cuando se detiene el dashboard seleccionado:

```powershell
New-PSUTrigger `
    -Name 'Dashboard stopped' `
    -EventType DashboardStopped `
    -TriggerScript 'Script.ps1' `
    -Dashboard 'Dashboard'
```

## Metadatos del evento

Un trabajo creado por un desencadenador recibe metadatos sobre el evento que lo invocó. Los desencadenadores de trabajos reciben un parámetro `$Job` y los desencadenadores de dashboard reciben un parámetro `$Dashboard`. Los desencadenadores de estado del servidor no reciben ningún parámetro. Los desencadenadores de notificaciones reciben `$Notification`.

```powershell
param($Job)
$Job
```

## Condiciones

Utilice el parámetro `-Condition` de `New-PSUTrigger` para determinar si el desencadenador debe ejecutarse. La condición se ejecuta localmente en el servidor y debe devolver `$true` o `$false`.

Por ejemplo, esta condición se ejecuta solo cuando la variable de entorno `Environment` está establecida en `production`:

```powershell
New-PSUTrigger -Condition { $Env:Environment -eq 'production' }
```

## Cmdlets de PowerShell

Gestione los desencadenadores con `New-PSUTrigger`, `Get-PSUTrigger`, `Set-PSUTrigger` y `Remove-PSUTrigger`.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/powershell-universal/es/automatizacion/triggers.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
