Introducción
Los monitores de scripts son tan útiles como los scripts que los respaldan. Estos ejemplos muestran configuraciones completas de extremo a extremo — el script, la configuración del monitor y el motivo de cada decisión — para que puedas implementarlos tal cual o usarlos como punto de partida para los tuyos.
Ejemplo 1: Detección de administradores locales no autorizados
Este monitor emite una alerta cuando un dispositivo Windows tiene una cuenta de administrador local que no está en tu lista aprobada — una verificación de cumplimiento y seguridad habitual.
El script compara las cuentas de administrador local habilitadas con una lista autorizada almacenada en un campo personalizado ({{cf_authorized_admins}}). Si encuentra a alguien que no debería estar allí, genera la salida ALERT y sale con el código 1.
Script de PowerShell
$AuthorizedAdmins = "{{cf_authorized_admins}}"
# Get all enabled local admin accounts
$admins = Get-LocalGroupMember -Group "Administrators" |
Where-Object { $_.ObjectClass -eq 'User' -and (Get-LocalUser $_.SID).Enabled -eq $true } |
Select-Object -ExpandProperty Name
# Strip domain prefix, normalize to lowercase
$admins = $admins | ForEach-Object { ($_ -split '\\')[-1] }
$detectedArray = ($admins -join ",") -split ',' | ForEach-Object { $_.Trim().ToLower() }
$authorizedArray = $AuthorizedAdmins -split ',' | ForEach-Object { $_.Trim().ToLower() }
# Find admins not in the authorized list
$unauthorizedAdmins = $detectedArray | Where-Object { $authorizedArray -notcontains $_ }
if ($unauthorizedAdmins.Count -gt 0) {
Write-Output "Unauthorized Admins ALERT: $($unauthorizedAdmins -join ',')"
exit 1
} else {
Write-Output "No unauthorized admins detected."
exit 0
}Configuración del monitor:
Campo | Valor |
Tipo | Ejecutar script |
SO | Windows |
Script | Windows - Unauthorized Admins |
Salida del script | Contiene |
Valor |
|
Frecuencia de ejecución | 1 hora |
Número de activaciones | 1 |
Cuando hay un administrador no autorizado, la salida contiene ALERT y el monitor se activa. Cuando la lista de cuentas está limpia, la salida no contiene ALERT y el monitor permanece en silencio.
💡 CONSEJO: Configura cf_authorized_admins como campo personalizado a nivel de grupo u organización, de modo que una única lista mantenida cubra todos tus dispositivos. Puedes anularla por dispositivo si ciertas máquinas tienen requisitos de administrador distintos.
La Política de Monitoreo de Administradores importa todo lo necesario para ejecutar esta verificación en Windows, macOS y Linux: tres monitores preconfigurados (uno por SO), los tres scripts y el Authorized Admins campo personalizado, y las etiquetas Workstation y Server.
Ejemplo 2: Monitoreo del tiempo de actividad del dispositivo
Este monitor emite una alerta cuando un dispositivo lleva más de 30 días en funcionamiento sin reiniciarse — una señal de que puede haberse omitido ciclos de parches o de que un dispositivo está siendo ignorado.
El script es una única consulta de osquery:
Script de osQuery
SELECT days FROM uptime;
osquery devuelve el número de días desde el último arranque como un entero simple. El monitor compara ese valor directamente usando Mayor que.
Configuración del monitor:
Campo | Valor |
Tipo | Ejecutar script |
SO | Windows (o macOS / Linux — osquery es multiplataforma) |
Script | OsQuery Monitor - Uptime |
Salida del script | Mayor que |
Valor |
|
Frecuencia de ejecución | 24 horas |
Número de activaciones | 1 |
Cuando el tiempo de actividad supera los 30 días, el monitor se activa. Tras un reinicio que reduce el tiempo de actividad por debajo de 30 días, la alerta se resuelve automáticamente.
Al combinar este monitor con una automatización de corrección de Prompt User to Restart la automatización de corrección significa que el usuario recibe una notificación para reiniciar directamente — sin necesidad de intervención de un técnico en el caso habitual.
💡 CONSEJO: osquery se ejecuta en Windows, macOS y Linux. Puedes crear tres monitores separados — uno por SO — apuntando todos al mismo script para cobertura de tiempo de actividad multiplataforma.
La Política de Monitoreo de Uptime importa tres monitores preconfigurados (Windows, macOS y Linux) y el script Osquery Uptime — listos para asignar a un grupo.
Ejemplo 3: Monitoreo de la configuración del servidor DNS
Este monitor emite una alerta cuando un dispositivo Windows usa servidores DNS que no están en tu lista aprobada — útil para detectar configuraciones incorrectas, deriva de DHCP o cambios no autorizados.
El script compara los servidores DNS activos del dispositivo con una lista permitida almacenada en un campo personalizado ({{cf_dns}}). Si alguna interfaz tiene servidores DNS fuera de la lista aprobada, genera la salida ALERT y sale con el código 1.
Script de PowerShell
# Comma-separated list of expected DNS servers
$allowedDnsServers = "{{cf_dns}}"
$allowedDnsServersArray = $allowedDnsServers -split "\s*,\s*"
function Check-DnsServers {
$networkInterfaces = Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { $_.IPEnabled }
foreach ($interface in $networkInterfaces) {
$dnsServers = $interface.DNSServerSearchOrder
Write-Host "Interface: $($interface.Description)"
Write-Host "Allowed DNS servers: $($allowedDnsServersArray -join ', ')"
Write-Host "Current DNS servers: $($dnsServers -join ', ')"
if ($dnsServers -ne $null -and $dnsServers.Count -gt 0) {
$matchingServers = @($dnsServers | Where-Object { $allowedDnsServersArray -contains $_ })
if ($matchingServers.Count -eq $dnsServers.Count) {
Write-Host "SUCCESS: DNS servers match the allowed list."
exit 0
} else {
Write-Host "ALERT: Not all DNS servers are in the allowed list."
exit 1
}
} else {
Write-Host "ALERT: No DNS servers configured"
exit 0
}
}
}
Check-DnsServers
Configuración del monitor:
Campo | Valor |
Tipo | Ejecutar script |
SO | Windows |
Script | Windows Monitor - DNS Servers |
Salida del script | Contiene |
Valor |
|
Frecuencia de ejecución | 1 hora |
Número de activaciones | 1 |
Cuando se detecta un servidor DNS fuera de la lista permitida, la salida contiene ALERT junto con el nombre de la interfaz y los servidores DNS reales configurados — visibles en el payload de la alerta para un diagnóstico rápido. Cuando todas las interfaces coinciden con la lista permitida, no se genera ninguna alerta.
💡 CONSEJO: Configura cf_dns como campo personalizado a nivel de grupo, de modo que distintos sitios o entornos de clientes pueden tener sus propias listas de servidores DNS aprobados sin necesidad de crear políticas de monitor separadas.
La Política de Monitoreo de DNS importa tres monitores preconfigurados (Windows, macOS y Linux) y el script de monitoreo de DNS. También configura el cf_dns campo personalizado para que puedas definir los servidores DNS permitidos a nivel de grupo o dispositivo sin ninguna configuración adicional.
Más ejemplos
La Level Library en level.io/library cuenta con una colección creciente de scripts y políticas de monitor listos para importar. Explora por categoría para encontrar monitores de seguridad, salud del disco, estado de aplicaciones y más — o envía el tuyo.
Preguntas frecuentes
¿Necesito crear el script antes de poder usarlo en un monitor? Sí — el script debe estar guardado en tu biblioteca de scripts antes de poder seleccionarlo en un monitor. Si importas un script desde la Level Library, se añade a tu biblioteca automáticamente y queda disponible de inmediato.
¿Puedo modificar un script importado? Sí. Al importar se crea una copia en tu cuenta — los cambios que realices no afectan al recurso original de la biblioteca ni a otros usuarios.
El enlace de importación me lleva a una página de inicio de sesión. ¿Es lo esperado? Sí — necesitas haber iniciado sesión en Level para importar. Después de iniciar sesión serás redirigido a la confirmación de importación.



