Ejecuta un script guardado en un dispositivo como parte de una automatización. Admite PowerShell, Bash, Python y otros lenguajes. Si tu script necesita datos desde el exterior — como el valor de un campo personalizado o una variable de automatización — puedes asignarlo sin modificar la lógica del script.
⚙️ Requisitos Previos
Debe existir un script guardado en tu biblioteca de scripts, o puedes crear uno en línea. Consulta Scripts para saber cómo crear y organizar scripts.
Debe existir una automatización antes de agregar acciones. Consulta Introducción a las Automatizaciones si aún no has configurado una.
Acción Ejecutar Script
Desde el pipeline de automatización en modo de edición, haz clic en + y selecciona Ejecutar script de la categoría Sistema.
El panel de acción se abre mostrando el campo Script y dos botones: un icono de enlace externo para examinar tus scripts guardados, y Crear script para escribir uno nuevo en línea.
Seleccionar un Script
Haz clic en el icono de enlace externo junto al campo Script para abrir el selector de script guardado. Los scripts están organizados en carpetas — expande cualquier carpeta para examinar su contenido, o usa el campo de búsqueda para encontrar un script por nombre.
Crear un Script en Línea
Haz clic en Crear script para escribir un nuevo script sin salir del editor de automatización. El editor de script se abre como un panel lateral.
Configura lo siguiente:
Nombre del script Un nombre descriptivo para el script. Se guardará en tu biblioteca de scripts y estará disponible para usar en otras automatizaciones.
Lenguaje El lenguaje de script para este script.
Lenguajes soportados: Ansible, Bash, Go, osquery, PowerShell, Python, Zsh.
Tiempo de espera (en segundos) Cuánto tiempo espera Level a que el script se complete antes de marcarlo como fallido. El valor predeterminado es 100 segundos.
Ejecutar como El contexto de cuenta bajo el cual se ejecuta el script.
Opción | Comportamiento |
Sistema local | Se ejecuta como la cuenta SYSTEM — elevada, sin contexto de usuario |
Usuario actual | Se ejecuta como el usuario actualmente conectado — útil para operaciones en contexto de usuario como aplicar fondos de pantalla, configurar ajustes de usuario, etc. |
Escribe tu script en el editor de código. Haz clic en {x} para referencia variables y campos personalizados en línea en el script. Cuando hayas terminado, haz clic en Crear script para guardarlo y adjuntarlo a la acción.
Variables de Script
Las variables de script son ranuras de salida nombradas definidas en la pestaña Variables de un script. El script escribe un valor en una variable de script durante la ejecución, y la asignación en el panel de acción determina qué variable de automatización almacena ese valor — haciendo que esté disponible para las acciones y condiciones posteriores en el pipeline.
ℹ️ NOTA: Para pasar datos en un script — contexto del dispositivo, valores de campo personalizado, información del sistema — utiliza variables del sistema o campos personalizados a través del selector {x} en el editor de script. Las variables de script son para capturar la salida, no para proporcionar entrada.
Cuando se selecciona un script con variables definidas, aparece una sección Variables de script en el panel de acción.
Para asignar una variable de script a una variable de automatización:
En la sección Variables de script, encuentra la variable de script que deseas capturar.
Abre la lista desplegable Variables de automatización en la misma fila.
Selecciona una variable de automatización existente, o haz clic en Crear nueva variable.
Cuando el script se ejecuta, el valor que escribe en esa variable de script se almacena en la variable de automatización asignada y se transmite a través del pipeline. Consulta Variables de Automatización para la referencia completa sobre cómo crear y usar variables de automatización.
ℹ️ NOTA: La sección Variables de script solo aparece cuando el script seleccionado tiene al menos una variable definida en su pestaña Variables. Los scripts sin variables no muestran esta sección.
Gestión de Variables de Script
Las variables de script se definen en el script mismo, no en el panel de acción. Abre el editor de script y ve a la pestaña Variables para agregarlas, editarlas o eliminarlas.
Captura de Salida del Script
Hay dos formas de capturar un valor de un script y hacerlo disponible a las acciones posteriores en el pipeline.
Sintaxis de variable en línea
Inserta esta sintaxis en cualquier lugar en la salida de tu script para establecer una variable de automatización a un valor específico:
##{{variable_name=value}}El agente de Level analiza la salida del script en busca de este patrón mientras se ejecuta el script. Toda otra salida — registros, mensajes de estado, cualquier otra cosa — pasa sin cambios. Consulta Establecer Variables Directamente desde Scripts para más detalles y ejemplos.
Esto es útil cuando necesitas un valor específico de un script que también produce otra salida. La variable debe crearse en la pestaña variables de script.
Ejemplo (PowerShell):
# Get local IP address
$ip = (Get-NetIPAddress -AddressFamily IPv4 |
Where-Object {$_.IPAddress -ne "127.0.0.1" -and $_.InterfaceAlias -notlike "*Loopback*"} |
Select-Object -First 1 -ExpandProperty IPAddress)
# Log it normally — this line is ignored for variable purposes
Write-Output "Detected local IP address: $ip"
# Set the automation variable
##{{local_ip=$ip}}
Después de ejecutar este script, local_ip contiene la dirección IP y está disponible para todas las acciones y condiciones posteriores en el pipeline después de la asignación.
Asignar salida completa a una variable
En Opciones adicionales, utiliza Asignar salida de acción a una variable para capturar toda la salida estándar del script en una variable de automatización. Esto funciona para cualquier script sin necesidad de cambios en el script — pero captura todo lo que el script genera, no solo el valor que necesitas.
💡 CONSEJO: Utiliza la sintaxis en línea ##{{variable=value}} cuando tu script produce otra salida que no deseas contamine la variable (registros, mensajes de estado, etc.). Utiliza Asignar salida de acción a una variable cuando la única salida del script es el valor que deseas capturar.
Códigos de Salida
Level utiliza el código de salida del script para determinar si la acción tuvo éxito o falló.
Código de salida | Resultado |
| Acción marcada como exitosa |
No cero (por ejemplo | Acción marcada como fallida |
Tu configuración En caso de fallo de acción en Opciones adicionales controla lo que sucede a continuación — si el pipeline se detiene o continúa.
Asegúrate de que tus scripts se cierren explícitamente con el código apropiado. Si un script se cierra con 0 después de encontrar un error que no manejó, Level tratará la acción como exitosa.
Condiciones
La sección Condiciones te permite restringir cuándo se ejecuta esta acción según los atributos del dispositivo o el resultado de una acción anterior.
Consulta Condiciones de Acción para la referencia completa sobre tipos de condiciones, operadores y valores.
Opciones Adicionales
Expande Opciones adicionales para el nombre de la acción, comportamiento de falla, asignación de variables de salida, intentos, y el botón de alternancia habilitado.
Consulta Descripción General de Acciones para la referencia completa sobre las opciones adicionales disponibles en cada acción.
Preguntas Frecuentes
¿Cuál es la diferencia entre Ejecutar Script y Shell? Ejecutar script ejecuta un script guardado de tu biblioteca — el script está controlado por versión y es reutilizable entre automatizaciones. Shell ejecuta un script ad-hoc escrito directamente en el panel de acción. Usa Ejecutar script cuando la misma lógica necesita ser compartida o mantenida; usa Shell para comandos en línea únicos.
¿Puede el script escribir salida que otras acciones puedan leer? Sí — de dos formas. Define variables de script en la pestaña Variables del script y asígnalas a variables de automatización en el panel de acción; los valores escritos en esas variables durante la ejecución se transmiten a través del pipeline. O utiliza Asignar salida de acción a una variable en Opciones adicionales para capturar la salida estándar completa del script directamente en una variable de automatización sin asignación adicional. También puedes usar la sintaxis en línea
##{{variable_name=value}}para establecer una variable de script durante la ejecución — aún necesita asignarse en el panel de acción para convertirse en una variable de automatización. Consulta Captura de Salida del Script arriba para detalles.¿Qué sucede si el script se agota el tiempo? La acción se marca como fallida. La configuración En caso de fallo de acción en Opciones adicionales controla si el pipeline se detiene o continúa.
¿Quién puede agregar o modificar acciones de Ejecutar Script? Técnicos con permiso para editar automatizaciones en el grupo relevante. Consulta Espacio de Trabajo → Permisos para la configuración del control de acceso.






