Use a instrução let

Concluído

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"