Verwenden der Let-Anweisung

Abgeschlossen

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"