Verwenden der Let-Anweisung
Let-Anweisungen binden Namen an Ausdrücke. Im restlichen Gültigkeitsbereich, in dem die Let-Anweisung vorkommt, verweist der Name auf seinen gebundenen Wert. Let-Anweisungen verbessern die Modularität und Wiederverwendbarkeit, da sie einen potenziell komplexen Ausdruck in mehrere Teile zerlegen können. Jeder Teil ist über die let-Anweisung an einen Namen gebunden, und zusammen bilden sie das Ganze. Let-Anweisungen ermöglichen die Erstellung von benutzerdefinierten Funktionen und Ansichten. Die Sichten sind Ausdrücke, deren Ergebnisse wie eine neue Tabelle aussehen.
Deklarieren und Verwenden von Variablen
Let-Anweisungen ermöglichen die Erstellung von Variablen, die in späteren Anweisungen verwendet werden können. In diesem Beispiel werden „timeOffSet“ und „discardEventId“ als Teil der WHERE-Klausel von SecurityEvent erstellt und verwendet.
let timeOffset = 7d;
let discardEventId = 4688;
SecurityEvent
| where TimeGenerated > ago(timeOffset*2) and TimeGenerated < ago(timeOffset)
| where EventID != discardEventId
Tipp
„ago ()“ ist eine Funktion, die das aktuelle Datum und die aktuelle Uhrzeit übernimmt und den angegebenen Wert subtrahiert.
Deklarieren von dynamischen Tabellen oder Listen
Let-Anweisungen ermöglichen die Erstellung von dynamischen Tabellen oder Listen.
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"