Use a instrução let
Permita que as instruções vinculem nomes a expressões. Para o restante do escopo, onde a instrução let aparece, o nome se refere ao seu valor vinculado. Permita que as instruções melhorem a modularidade e a reutilização, pois permitem dividir uma expressão potencialmente complexa em várias partes. Cada parte é vinculada a um nome através da instrução let, e juntas compõem o todo. Permita que as instruções permitam a criação de funções e exibições definidas pelo usuário. Os modos de exibição são expressões cujos resultados se parecem com uma nova tabela.
Declarar e reutilizar variáveis
Permita que as instruções permitam a criação de variáveis para serem usadas em instruções posteriores. Neste exemplo, timeOffSet e discardEventId são criados e usados como parte da cláusula SecurityEvent "where".
let timeOffset = 7d;
let discardEventId = 4688;
SecurityEvent
| where TimeGenerated > ago(timeOffset*2) and TimeGenerated < ago(timeOffset)
| where EventID != discardEventId
Gorjeta
"ago()" é uma função que tomará a Data e Hora atuais e subtrairá o valor fornecido.
Declarar tabelas ou listas dinâmicas
Permita que as instruções permitam a criação de tabelas ou listas dinâmicas.
let suspiciousAccounts = datatable(account: string) [
@"\administrator",
@"NT AUTHORITY\SYSTEM"
];
SecurityEvent | where Account in (suspiciousAccounts)
let LowActivityAccounts =
SecurityEvent
| summarize cnt = count() by Account
| where cnt < 1000;
LowActivityAccounts | where Account contains "SQL"