Журналы входа в систему KQL

#kql #azure-data-explorer

#kql #azure-data-explorer

Вопрос:

Есть ли способ получить последние 2 входа для каждого пользователя, а затем отфильтровать по пользователям с несколькими состояниями? У меня была некоторая помощь с этим кодом, но я застрял, пытаясь отключить это.

 SigninLogs
| project State = tostring(LocationDetails.state), UserDisplayName
| summarize States = make_set(State) by UserDisplayName, LocationDetails_countryOrRegion
| where array_length(States) > 1
 

Ответ №1:

Это зависит от того, ищете ли вы несколько состояний в последних двух входах в систему или у пользователей с двумя входами было несколько состояний в их истории. Предполагая, что это первое, вот одно предложение:

 SigninLogs
// will be good to have a time filter
| summarize by State = tostring(LocationDetails.state), UserDisplayName, LocationDetails_countryOrRegion, TimeColumn
| order by UserDisplayName, TimeColumn desc
| extend row_num = row_number(0,UserDisplayName!=prev(UserDisplayNames))
| where row_num <= 1 //pick the last two sign ins
| summarize States = make_set(State) by UserDisplayName, LocationDetails_countryOrRegion
| where array_length(States) > 1