Introduction
Los monitores de script son tan útiles como los scripts detrás de ellos. Estos ejemplos muestran configuraciones completas de extremo a extremo – el script, la configuración del monitor y por qué se tomó cada decisión – para que pueda implementarlas tal como están o usarlas como punto de partida para las suyas propias.
Ejemplo 1: Detección de administradores locales no autorizados
Este monitor alerta cuando un dispositivo Windows tiene una cuenta de administrador local que no está en su lista aprobada – una verificación de cumplimiento y seguridad común.
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í, produce ALERT and exits with code 1.
PowerShell Script
$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
}
Monitor configuration:
Field | Value |
Tipo | Run script |
OS | Windows |
Script | Windows - Unauthorized Admins |
Script output | Contains |
Value |
|
Run frequency | 1 hour |
Trigger count | 1 |
Cuando hay un admin no autorizado presente, la salida contieneALERT y el monitor se dispara. Cuando la lista de cuentas es limpia, la salida no contiene ALERT and the monitor stays quiet.
💡 TIP: Set cf_authorized_adminscomo un campo personalizado en el nivel de grupo u organización para que una sola lista mantenida cubra todos sus dispositivos. Puede anularlo por dispositivo si máquinas específicas tienen requisitos de admin diferentes.
La política de monitoreo de administrador importa todo lo necesario para ejecutar esta verificación en Windows, macOS y Linux: tres monitores preconfigurados (uno por sistema operativo), los tres scripts, el Authorized Adminscampo personalizado y etiquetas de estación de trabajo y servidor.
Example 2: Monitoring Device Uptime
Este monitor alerta cuando un dispositivo ha estado ejecutándose durante más de 30 días sin un reinicio – una señal de que los ciclos de parches pueden haber sido perdidos o que un dispositivo está siendo pasado por alto.
The script is a single osquery query:
osQuery Script
SELECT days FROM uptime;
osquery devuelve el número de días desde el último arranque como un número entero simple. El monitor compara ese valor directamente usando Greater than .
Monitor configuration:
Field | Value |
Tipo | Run script |
OS | Windows (o macOS / Linux – osquery es multiplataforma) |
Script | OsQuery Monitor - Uptime |
Script output | Greater than |
Value |
|
Run frequency | 24 hours |
Trigger count | 1 |
Cuando el tiempo de actividad excede 30 días, el monitor se dispara. Después de un reinicio que devuelve el tiempo de actividad por debajo de 30 días, la alerta se resuelve automáticamente.
Pairing this monitor with a Prompt User to Restart La automatización de notificación significa que el usuario recibe una notificación directa para reiniciar – sin intervención de técnico necesaria para el caso común.
💡 TIP: osquery se ejecuta en Windows, macOS y Linux. Puede crear tres monitores separados – uno por SO – todos apuntando al mismo script para cobertura de tiempo de actividad multiplataforma.
La política de monitoreo de tiempo de actividad importa tres monitores preconfigurados (Windows, macOS y Linux) y el script de tiempo de actividad de Osquery – listo para asignar a un grupo.
Ejemplo 3: Monitoreo de configuración del servidor DNS
Este monitor alerta cuando un dispositivo Windows está usando servidores DNS que no están en su lista aprobada – útil para detectar errores de configuración, desplazamiento 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, produce ALERT and exits with code 1.
PowerShell Script
# 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
Monitor configuration:
Field | Value |
Tipo | Run script |
OS | Windows |
Script | Windows Monitor - DNS Servers |
Script output | Contains |
Value |
|
Run frequency | 1 hour |
Trigger count | 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 realmente configurados – visible en la carga útil de alerta para diagnóstico rápido. Cuando todas las interfaces coinciden con la lista permitida, no se dispara alerta.
💡 TIP: Set cf_dns como campo personalizado a nivel de grupo para que diferentes sitios o entornos de cliente puedan tener sus propias listas de servidores DNS aprobadas sin 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_dnscampo personalizado para que pueda definir servidores DNS permitidos a nivel de grupo o dispositivo sin configuración adicional.
More Examples
The Level Library at level.io/librarytiene una colección creciente de scripts y políticas de monitor listos para importar. Examine por categoría para encontrar monitores para seguridad, salud del disco, estado de aplicación y más – o envíe el suyo.
FAQ
¿Necesito crear el script antes de poder usarlo en un monitor? Sí – el script debe guardarse en su biblioteca de scripts antes de poder seleccionarlo en un monitor. Si importa un script desde la biblioteca de Level, se agrega automáticamente a su biblioteca y está disponible de inmediato.
Can I modify an imported script? Sí. La importación crea una copia en su cuenta – los cambios que realice no afectan el recurso de biblioteca original ni otros usuarios.
El enlace de importación me lleva a una página de inicio de sesión. ¿Es eso lo esperado? Sí – debe estar conectado a Level para importar. Después de iniciar sesión, será redirigido a la confirmación de importación.



