Question Analysis

During investigation of a Linux device, you see evidence of a process that reports system locale details. Identify the tool used.

07ce871a-b3c3-44a3-97fa-a20118fdc7c9
Question ID
3/23
Models Correct
1
Valid Answer
13%
Success Rate
Reference Answer

Human-validated correct answer for this question

localectl
Model Performance Comparison

See how different AI models performed on this question

ModelAnswerKQL QueryStatusAttemptsTimeCost
gemini-2.5-flash-preview-04-17
locale
DeviceProcessEvents | where ProcessCommandLine has "locale" or ProcessCommandLine has "localectl" | project Timestamp, DeviceName, FileName, ProcessCommandLine, InitiatingProcessCommandLine
Incorrect
1
11.04s
0.0056
gpt-35-turbo
No answer provided
No query generated
Incorrect
5
0.00s
0.0106
gpt-4-turbo-2024-04-09
locale
DeviceProcessEvents | where ProcessCommandLine has 'locale' or ProcessCommandLine has 'localectl' | project DeviceId, DeviceName, ProcessCommandLine, ProcessCreationTime, FileName, FolderPath | distinct DeviceName, ProcessCommandLine, ProcessCreationTime, FileName, FolderPath
Incorrect
1
10.86s
0.0791
gpt-4.1
locale
DeviceProcessEvents | join kind=inner ( DeviceInfo | where OSPlatform == "Linux" | project DeviceId ) on DeviceId | where FileName in ("locale", "localectl") or ProcessCommandLine has_any ("locale", "localectl", "/etc/locale.conf", "/etc/default/locale", "LANG=") | project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine | order by TimeGenerated desc | take 100
Incorrect
3
20.66s
0.0595
gpt-4.1-finetuned
locale, localectl, cat, curl (system reporting scripts)
DeviceProcessEvents | where InitiatingProcessCommandLine contains "locale" or ProcessCommandLine contains "locale" | extend AccountCustomEntity = InitiatingProcessAccountUpn, HostCustomEntity = DeviceName, FileCustomEntity = InitiatingProcessCommandLine | project-away InitiatingProcessLogonId,InitiatingProcessParentId,InitiatingProcessSessionId
Correct
2
57.27s
0.0733
gpt-4.1-mini
locale
DeviceProcessEvents | where DeviceName contains "linux" or SourceSystem == "Linux" or InitiatingProcessFileName endswith ".sh" or InitiatingProcessFileName contains "bash" or ProcessCommandLine contains "locale" or ProcessCommandLine contains "localectl" or ProcessCommandLine contains "language" | where ProcessCommandLine contains "locale" or ProcessCommandLine contains "localectl" or ProcessCommandLine contains "language" or InitiatingProcessCommandLine contains "locale" or InitiatingProcessCommandLine contains "localectl" or InitiatingProcessCommandLine contains "language" | project DeviceName, ProcessCommandLine, FileName | distinct DeviceName, ProcessCommandLine, FileName | extend ToolUsed = FileName | project DeviceName, ToolUsed, ProcessCommandLine | sort by DeviceName asc
Incorrect
2
24.03s
0.0044
gpt-4.1-nano
No answer provided
No query generated
Incorrect
5
0.00s
0.0015
gpt-4o
locale
DeviceProcessEvents | where ProcessCommandLine contains "locale" or InitiatingProcessCommandLine contains "locale" | project DeviceId, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, ProcessId, ProcessCommandLine, TimeGenerated
Incorrect
1
3.45s
0.0252
gpt-5-high
localectl
let linux_devices = DeviceInfo | where OSPlatform =~ "Linux" | project DeviceId, DeviceName; DeviceProcessEvents | where ActionType == "ProcessCreated" | join kind=inner linux_devices on DeviceId | where FileName in~ ("localectl", "locale") or ProcessCommandLine has_any ("localectl", "locale") | extend Tool = iif(ProcessCommandLine has "localectl", "localectl", iif(ProcessCommandLine has "locale", "locale", tostring(FileName))) | summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp), EventCount=count(), Devices=dcount(DeviceId), SampleCommandLine=any(ProcessCommandLine) by Tool | order by EventCount desc
Correct
1
50.67s
0.0314
gpt-5-mini-high
locale
// Find Linux processes/commands that report or configure system locale settings // Adjust the keyword list if you want to broaden or narrow matches let locale_terms = dynamic(["localectl","locale-gen","localedef","update-locale","dpkg-reconfigure","locale"]); union DeviceProcessEvents, DeviceEvents | where isnotempty(FileName) or isnotempty(ProcessCommandLine) or isnotempty(InitiatingProcessCommandLine) | extend cmd = tostring(ProcessCommandLine), fname = tostring(FileName), ipcmd = tostring(InitiatingProcessCommandLine) // Quick filter to limit rows to those containing any of the locale terms | where cmd has_any (locale_terms) or fname has_any (locale_terms) or ipcmd has_any (locale_terms) // Extract the exact matched term from combined fields | extend combined = strcat(" ", cmd, " ", fname, " ", ipcmd) | extend tool = extract(@"\b(localectl|locale\-gen|localedef|update\-locale|dpkg\-reconfigure|locale)\b", 1, combined) | where isnotempty(tool) | project TimeGenerated, DeviceName, DeviceId, ProcessId, InitiatingProcessId, FileName=fname, ProcessCommandLine=cmd, InitiatingProcessCommandLine=ipcmd, tool | summarize occurrences = count(), firstSeen = min(TimeGenerated), lastSeen = max(TimeGenerated) by tool, DeviceName, DeviceId | order by occurrences desc, lastSeen desc | limit 100
Incorrect
1
23.56s
0.0059
gpt-5-mini-low
locale
let linuxDevices = DeviceInfo | where tolower(OSPlatform) has "linux" | distinct DeviceId; union isfuzzy=true DeviceProcessEvents, DeviceEvents, DeviceFileEvents | where DeviceId in (linuxDevices) | extend combined = strcat( tostring(ProcessCommandLine), " ", tostring(InitiatingProcessCommandLine), " ", tostring(FileName), " ", tostring(FolderPath), " ", tostring(FileOriginUrl), " ", tostring(RegistryValueData) ) | where tolower(combined) matches regex @"\b(localectl|update-locale|printenv\s*lang|lang=|locale)\b" | extend tool = extract(@"(localectl|update-locale|printenv\s*lang|lang=|locale)", 1, tolower(combined)) | project TimeGenerated, DeviceName, DeviceId, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine, ProcessId, InitiatingProcessId, AccountName, SourceSystem, tool | sort by TimeGenerated desc | take 50 // Summary of detected tool(s) | union ( union isfuzzy=true DeviceProcessEvents, DeviceEvents, DeviceFileEvents | where DeviceId in (linuxDevices) | extend combined = strcat( tostring(ProcessCommandLine), " ", tostring(InitiatingProcessCommandLine), " ", tostring(FileName), " ", tostring(FolderPath), " ", tostring(FileOriginUrl), " ", tostring(RegistryValueData) ) | where tolower(combined) matches regex @"\b(localectl|update-locale|printenv\s*lang|lang=|locale)\b" | extend tool = extract(@"(localectl|update-locale|printenv\s*lang|lang=|locale)", 1, tolower(combined)) | summarize event_count = count() by tool | order by event_count desc )
Incorrect
3
62.50s
0.0143
gpt-5-mini-medium
systemd-localed
// Find processes that report/configure locale on Linux devices // Note: do not hardcode a time filter here — the caller will set the time range let linuxDeviceIds = DeviceInfo | where tostring(OSPlatform) has "Linux" | distinct DeviceId; DeviceProcessEvents | where DeviceId in (linuxDeviceIds) // Look for known tool names or patterns indicating locale usage | where ( tolower(FileName) in ("locale","localectl","localed","hostnamectl") or tolower(ProcessCommandLine) has_any ("locale","localectl","localed","hostnamectl","lang=","lc_") ) | extend ToolRaw = iff(isnotempty(FileName), FileName, tostring(split(trim(" ", ProcessCommandLine), " ")[0])) | extend Tool = tolower(extract(@"([^/\\]+)$", 1, ToolRaw)) | summarize FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated), Count=count(), SampleCmdlines=make_set(ProcessCommandLine, 5) by DeviceId, DeviceName, Tool | order by LastSeen desc | take 100 | project LastSeen, FirstSeen, Count, DeviceName, DeviceId, Tool, SampleCmdlines
Incorrect
2
32.95s
0.0091
gpt-5-nano-high
locale
let linux_devices = DeviceInfo | where OSPlatform contains 'Linux' | project DeviceId; DeviceProcessEvents | where InitiatingProcessFileName in ('locale','localectl') or InitiatingProcessCommandLine has_any ('locale','localectl') | join kind=inner (linux_devices) on DeviceId | project TimeGenerated, DeviceName, ToolUsed = InitiatingProcessFileName, CommandLine = InitiatingProcessCommandLine, ProcessId = InitiatingProcessId
Incorrect
2
52.01s
0.0037
gpt-5-nano-medium
locale
let LinuxDevices = DeviceInfo | where OSPlatform contains "Linux"; let LocaleProcs = DeviceProcessEvents | where InitiatingProcessFileName in ("locale","localectl") or InitiatingProcessCommandLine contains "locale" or InitiatingProcessCommandLine contains "localectl" | project TimeGenerated, DeviceName, DeviceId, ProcessId = InitiatingProcessId, ProcessFileName = InitiatingProcessFileName, ProcessCommandLine = InitiatingProcessCommandLine, InitiatingProcessFolderPath | extend ToolUsed = iif(tolower(ProcessFileName) in ("locale","localectl"), ProcessFileName, iif(ProcessCommandLine contains "locale" or ProcessCommandLine contains "localectl", "locale", "Unknown")) | distinct TimeGenerated, DeviceName, DeviceId, ProcessId, ProcessFileName, ProcessCommandLine, ToolUsed; LocaleProcs | join kind=inner (LinuxDevices) on DeviceId | project TimeGenerated, DeviceName, DeviceId, ProcessId, ProcessFileName, ProcessCommandLine, ToolUsed | sort by TimeGenerated desc
Incorrect
5
191.10s
0.0087
grok-3-beta
locale
DeviceProcessEvents | join kind=inner DeviceInfo on DeviceId | where OSPlatform == 'Linux' | where ProcessCommandLine has 'locale' or InitiatingProcessFileName has 'locale' or ProcessCommandLine has 'localectl' | project DeviceName, InitiatingProcessFileName, ProcessCommandLine, Timestamp | order by Timestamp desc
Incorrect
1
26.54s
0.0609
grok-3-mini-beta
locale
DeviceInfo | where OSPlatform contains "Linux" | project DeviceId, DeviceName | join kind=inner ( DeviceProcessEvents | where ProcessCommandLine contains "locale" | project DeviceId, ProcessCommandLine, FileName, TimeGenerated ) on DeviceId | project DeviceName, ProcessCommandLine, FileName, TimeGenerated | order by TimeGenerated desc | summarize arg_max(TimeGenerated, *) by DeviceName, FileName
Incorrect
1
14.92s
0.0021
o1-high
locale
DeviceProcessEvents | where DeviceId in (DeviceInfo | where OSPlatform =~ "Linux" | distinct DeviceId) | where ProcessCommandLine has_any("locale", "localectl") or FileName in~ ("locale", "localectl") | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, InitiatingProcessCommandLine | order by TimeGenerated desc
Incorrect
1
90.24s
0.6374
o1-low
locale
DeviceInfo | where OSPlatform =~ "Linux" | join kind=inner ( DeviceProcessEvents | where ProcessCommandLine has_any ("locale", "localectl") ) on DeviceId | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, FolderPath
Incorrect
1
42.92s
0.4811
o3-high
localectl
// --- Linux hosts only -------------------------------------------------- let linux_devices = DeviceInfo | where OSPlatform =~ "Linux" | distinct DeviceId; // --- Processes that report locale settings ----------------------------- DeviceProcessEvents | where DeviceId in (linux_devices) // match either the binary name or its appearance in the full command line | where FileName in~ ("localectl", "locale") or ProcessCommandLine has "localectl" or ProcessCommandLine has " locale " // avoid matching LANG=, LC_*, etc. | extend ToolUsed = case( FileName =~ "localectl" or ProcessCommandLine has "localectl", "localectl", FileName =~ "locale" or ProcessCommandLine has " locale ", "locale", "unknown") | project TimeGenerated, DeviceName, DeviceId, ToolUsed, ProcessCommandLine, FolderPath, InitiatingProcessAccountName, InitiatingProcessFileName, InitiatingProcessCommandLine | order by TimeGenerated desc
Correct
1
37.18s
0.0262
o3-mini-high
locale
DeviceProcessEvents | where tolower(InitiatingProcessCommandLine) contains "locale" | project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine | distinct DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine
Incorrect
1
11.36s
0.0091
o3-mini-low
locale
DeviceProcessEvents | where ProcessCommandLine has "locale" | project TimeGenerated, DeviceName, FileName, ProcessCommandLine | summarize EventCount = count() by FileName, ProcessCommandLine | sort by EventCount desc
Incorrect
1
14.87s
0.0105
o4-mini-high
locale
DeviceProcessEvents | where ProcessCommandLine has "locale" | join kind=inner ( DeviceInfo | where OSPlatform has "Linux" | project DeviceId ) on DeviceId | project TimeGenerated, DeviceName, FileName, ProcessId, ProcessCommandLine
Incorrect
1
26.76s
0.0253
o4-mini-low
locale
// Search for executions of the 'locale' tool on Linux devices let linuxDevices = DeviceInfo | where OSPlatform == "Linux" | distinct DeviceId; DeviceProcessEvents | where DeviceId in (linuxDevices) | where FileName == "locale" or ProcessCommandLine startswith "locale" | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine | order by TimeGenerated desc
Incorrect
1
45.95s
0.0110