Korzystanie z instrukcji let
Instrukcje Let wiążą nazwy z wyrażeniami. W pozostałej części zakresu, w którym pojawia się instrukcja let, nazwa odwołuje się do jej powiązanej wartości. Instrukcje Let zwiększają modułowość i ponowne użycie, ponieważ umożliwiają one podzielenie potencjalnie złożonego wyrażenia na wiele części. Każda część jest powiązana z nazwą za pomocą instrukcji let i razem tworzą całość. Instrukcje Let umożliwiają tworzenie funkcji i widoków zdefiniowanych przez użytkownika. Widoki to wyrażenia, których wyniki wyglądają jak nowa tabela.
Deklarowanie i ponowne używanie zmiennych
Instrukcje Let umożliwiają tworzenie zmiennych do użycia w późniejszych instrukcjach. W tym przykładzie wartości timeOffSet i discardEventId są tworzone i używane jako część klauzuli SecurityEvent "where".
let timeOffset = 7d;
let discardEventId = 4688;
SecurityEvent
| where TimeGenerated > ago(timeOffset*2) and TimeGenerated < ago(timeOffset)
| where EventID != discardEventId
Napiwek
"ago()" to funkcja, która zajmie bieżącą datę i godzinę i odejmuje podaną wartość.
Deklarowanie tabel dynamicznych lub list
Instrukcje Let umożliwiają tworzenie tabel dynamicznych lub list.
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"