Post

Defender Endpoint SenseIR Events - AIR and Live Response Under the Hood

Defender Endpoint SenseIR Events - AIR and Live Response Under the Hood

Sometimes the interesting part of Defender for Endpoint is not only what you see in the Defender portal, but what the endpoint quietly records while the cloud service is doing its work.

I came across this again while looking at Automated Investigation and Response, usually shortened to AIR. The portal gives you the investigation story, verdicts, evidence, and remediation state. Locally, the interesting part is that AIR and operator-driven Live Response both use the same Defender incident-response module: SenseIR.exe. Its actions leave a small but useful trail in the Microsoft-Windows-SenseIR event provider.

This is not a replacement for the Defender portal investigation view. Treat it as endpoint-side visibility: useful for learning, troubleshooting, and correlating what happened locally while AIR was running.

🧭 What AIR Does

Automated Investigation and Response is the Defender for Endpoint capability that starts investigations from alerts or operator action, examines evidence, assigns verdicts, and can trigger remediation actions depending on the automation level and approvals in your tenant.

Microsoft’s own overview is here:

https://learn.microsoft.com/en-us/defender-endpoint/automated-investigations

One detail is worth calling out, because it affects how long this exact workflow stays relevant:

⚠️ As of September 1, 2026, Automated Investigation and Response (AIR) will no longer run as a separate investigation experience or be available for manual triggering in Microsoft Defender.

AIR detection and response capabilities are already included in Microsoft Defender’s default antivirus protection stack and run automatically. For on-demand investigations, run a full antivirus scan as needed.

So why look at it now? Because the local event trail is still a good way to understand the type of collection and inspection actions Defender performs on an endpoint.

📡 The Local SenseIR Module

The local Defender module/binary behind these actions is:

1
C:\Program Files\Windows Defender Advanced Threat Protection\SenseIR.exe

Its corresponding Windows event provider is:

1
Microsoft-Windows-SenseIR

The name already hints at the purpose: Sense incident response. The important point is not merely that AIR and Live Response write to the same local event provider. Both use SenseIR.exe as the local Defender module to perform their requested incident-response actions. Microsoft-Windows-SenseIR then exposes the execution and result-upload trail from that module.

The beginning of an investigation may show a registration event:

1
2
3
4
5
ProviderName: Microsoft-Windows-SenseIR

TimeCreated          Id LevelDisplayName Message
-----------          -- ---------------- -------
21/06/2026 21:22:47   7 Information      Windows Defender Advanced Threat Protection Incident Response requested registration as an AIRS client. Result code: 0x0

After that, the more interesting rows are usually event 11, where results for individual actions were uploaded successfully:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
TimeCreated                     Id LevelDisplayName Message
-----------                     -- ---------------- -------
21/06/2026 21:35:30    11 Information    Finished uploading results of action GetFileInformationAction. Action ID: iaid_3350_get_files_info__107_1783625674, upload result code: 0x0
21/06/2026 21:34:04    11 Information    Finished uploading results of action GetRecentlyCreatedOrModifiedExecutableFileListAction. Action ID: iaid_3349_get_recently_created_or_modified_executables__107_1783625634, upload result code: 0x0
21/06/2026 21:33:57    11 Information    Finished uploading results of action GetRecentlyExecutedFilesAction. Action ID: iaid_3346_get_recently_executed_files__107_1783625632, upload result code: 0x0
21/06/2026 21:33:56    11 Information    Finished uploading results of action GetFilesFromDownloadLocationsAction. Action ID: iaid_3348_get_files_from_download_locations__107_1783625633, upload result code: 0x0
21/06/2026 21:33:56    11 Information    Finished uploading results of action PersistenceCheckAction. Action ID: iaid_3347_get_autoruns__107_1783625632, upload result code: 0x0
21/06/2026 21:27:18    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3312_read_memory_content__107_1783625113, upload result code: 0x0
21/06/2026 21:27:17    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3314_read_memory_content__107_1783625055, upload result code: 0x0
21/06/2026 21:27:17    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3315_read_memory_content__107_1783625055, upload result code: 0x0
21/06/2026 21:26:43    11 Information    Finished uploading results of action GetFileInformationAction. Action ID: iaid_3313_get_files_info__107_1783625055, upload result code: 0x0
21/06/2026 21:26:17    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3301_read_memory_content__107_1783625054, upload result code: 0x0
21/06/2026 21:26:17    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3292_read_memory_content__107_1783625054, upload result code: 0x0
21/06/2026 21:26:16    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3300_read_memory_content__107_1783625054, upload result code: 0x0
21/06/2026 21:26:16    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3310_read_memory_content__107_1783625052, upload result code: 0x0
21/06/2026 21:26:15    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3298_read_memory_content__107_1783625052, upload result code: 0x0
21/06/2026 21:25:16    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3305_read_memory_content__107_1783625052, upload result code: 0x0
21/06/2026 21:25:15    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3311_read_memory_content__107_1783625052, upload result code: 0x0
21/06/2026 21:25:15    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3299_read_memory_content__107_1783625052, upload result code: 0x0
21/06/2026 21:25:15    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3303_read_memory_content__107_1783625051, upload result code: 0x0
21/06/2026 21:25:15    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3307_read_memory_content__107_1783625051, upload result code: 0x0
21/06/2026 21:25:14    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3306_read_memory_content__107_1783625052, upload result code: 0x0
21/06/2026 21:25:14    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3309_read_memory_content__107_1783625052, upload result code: 0x0
21/06/2026 21:24:15    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3296_read_memory_content__107_1783625051, upload result code: 0x0
21/06/2026 21:24:14    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3304_read_memory_content__107_1783625051, upload result code: 0x0
21/06/2026 21:24:14    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3302_read_memory_content__107_1783625051, upload result code: 0x0
21/06/2026 21:24:14    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3308_read_memory_content__107_1783625051, upload result code: 0x0
21/06/2026 21:24:14    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3297_read_memory_content__107_1783625051, upload result code: 0x0
21/06/2026 21:24:14    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3291_read_memory_content__107_1783625051, upload result code: 0x0
21/06/2026 21:24:14    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3290_read_memory_content__107_1783625051, upload result code: 0x0
21/06/2026 21:24:13    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3295_read_memory_content__107_1783625051, upload result code: 0x0
21/06/2026 21:24:13    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3293_read_memory_content__107_1783625051, upload result code: 0x0
21/06/2026 21:24:12    11 Information    Finished uploading results of action ReadProcessMemoryAction. Action ID: iaid_3294_read_memory_content__107_1783625051, upload result code: 0x0
21/06/2026 21:23:43    11 Information    Finished uploading results of action GetProcessListAction. Action ID: iaid_3286_get_process_list__107_1783624973, upload result code: 0x0
21/06/2026 21:23:05    11 Information    Finished uploading results of action GetFileInformationAction. Action ID: iaid_3288_get_files_info__107_1783624982, upload result code: 0x0
21/06/2026 21:22:58    11 Information    Finished uploading results of action GetServiceListAction. Action ID: iaid_3287_get_service_list__107_1783624975, upload result code: 0x0
21/06/2026 21:22:56    11 Information    Finished uploading results of action GetDriverListAction. Action ID: iaid_3285_list_drivers__107_1783624973, upload result code: 0x0
21/06/2026 21:22:55    11 Information    Finished uploading results of action GetTcpConnectionListAction. Action ID: iaid_3284_get_connection_list__107_1783624973, upload result code: 0x0

This gives you a compact, local view of the collection sequence. In my sample, AIR collected network connections, drivers, services, processes, file information, process memory content, autoruns, recently executed files, and recently created or modified executables.

The event tells you that the endpoint finished and uploaded the result for an action. It does not show the full uploaded payload in the local event message, and it should not be treated as proof that a malicious verdict was reached.

🖥️ Live Response Uses the Same Local Module

I later compared this with a Live Response session. The actions were initiated interactively from Live Response, but the endpoint-side completion and upload events still appeared under Microsoft-Windows-SenseIR as event 11:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TimeCreated          Id LevelDisplayName Message
-----------          -- ---------------- -------
23/06/2026 18:26:18  11 Information      Finished uploading results of action PersistenceCheckAction. Action ID: c829585f-f72f-40ce-9f9f-e8422210bb19, upload result code: 0x0
23/06/2026 18:25:43  11 Information      Finished uploading results of action ReadFileAction. Action ID: 7a74b6d8-3ced-4f9f-be29-4d68e801f7a5, upload result code: 0x0
23/06/2026 18:25:40  11 Information      Finished uploading results of action GetFileInformationAction. Action ID: be0fce3d-7913-4a88-b8b4-926912c6d22a, upload result code: 0x0
23/06/2026 18:24:53  11 Information      Finished uploading results of action EnumerateFilesAndFoldersAction. Action ID: 9af2d12d-55ea-440d-aef5-41ee079c0570, upload result code: 0x0
23/06/2026 18:24:43  11 Information      Finished uploading results of action FileExistsAction. Action ID: b8be0fef-a3d3-4020-87fc-fd56ac61c893, upload result code: 0x0
23/06/2026 18:24:10  11 Information      Finished uploading results of action GetTcpConnectionListAction. Action ID: f58a771a-441b-4a4d-8f2e-60a05966d162, upload result code: 0x0
23/06/2026 18:23:31  11 Information      Finished uploading results of action GetFileInformationAction. Action ID: c8fcc68e-c341-4af1-bdd1-bd0f37922a9b, upload result code: 0x0
23/06/2026 18:22:38  11 Information      Finished uploading results of action PersistenceCheckAction. Action ID: 7b22cbaf-d10b-4b24-aeca-d8d746300373, upload result code: 0x0
23/06/2026 18:21:56  11 Information      Finished uploading results of action EnumerateFilesAndFoldersAction. Action ID: 06a6e948-460f-4ec8-ae20-6aa65f2a0a9b, upload result code: 0x0
23/06/2026 18:21:14  11 Information      Finished uploading results of action GetFileInformationAction. Action ID: 4667d2e3-dae4-4ba1-a4e8-4d2513fcfa68, upload result code: 0x0
23/06/2026 18:21:07  11 Information      Finished uploading results of action GetFileInformationAction. Action ID: fce4e7f7-162e-47cf-a8e2-7d869515b8c6, upload result code: 0x0
23/06/2026 18:20:50  11 Information      Finished uploading results of action GetFileInformationAction. Action ID: 3f65f8de-68ab-4a4b-8ff3-c92515e5547b, upload result code: 0x0
23/06/2026 18:20:32  11 Information      Finished uploading results of action FindFilesAction. Action ID: a00c10c1-58b8-4fcd-a272-e5233097a8ed, upload result code: 0x0
23/06/2026 18:14:23  11 Information      Finished uploading results of action PersistenceCheckAction. Action ID: b8482811-9316-403a-8a02-58dfad6a7292, upload result code: 0x0
23/06/2026 18:14:02  11 Information      Finished uploading results of action GetTcpConnectionListAction. Action ID: 3028901e-6fd5-4df9-9bef-9443b5012db0, upload result code: 0x0
23/06/2026 18:13:07  11 Information      Finished uploading results of action EnumerateFilesAndFoldersAction. Action ID: 0d4d495a-0cc8-4c31-a3b9-8caa1c62fed3, upload result code: 0x0
23/06/2026 18:12:51  11 Information      Finished uploading results of action PersistenceCheckAction. Action ID: b8a7af0b-842e-4412-823e-24cd10c2b732, upload result code: 0x0
23/06/2026 18:12:39  11 Information      Finished uploading results of action GetServiceListAction. Action ID: 18e29434-68af-45f9-8dd1-5e56f644d3d7, upload result code: 0x0
23/06/2026 18:12:25  11 Information      Finished uploading results of action GetProcessListAction. Action ID: 6350af59-d86a-452d-b8ff-ace03831ddd8, upload result code: 0x0
23/06/2026 18:11:59  11 Information      Finished uploading results of action GetDriverListAction. Action ID: 936dd2bf-3f5c-4844-9790-bc60b27dfb9c, upload result code: 0x0

This is the useful finding. Although the work was requested through a remote Live Response session, the same local SenseIR.exe module used for AIR performed the individual actions. Microsoft-Windows-SenseIR is the event trail showing their result uploads; the shared provider is a consequence of the shared local module, not the main point by itself.

This observation confirms that AIR and Live Response both rely on the SenseIR.exe module.

Live Response examples: https://learn.microsoft.com/en-us/defender-endpoint/live-response-command-examples

Distinguishing the Source in Event 11

Although the workflows use the same event provider and event ID, the Action ID gives us a practical local clue about where the action came from. In my samples, AIR action IDs use an iaid_ prefix followed by an internal sequence and action name, while actions started through Live Response use a plain GUID. I also found action IDs starting with eeaid_, which appear to be related to Defender for Endpoint Device Discovery or Network Discovery activity:

Possible sourceObserved Action ID formatExample
AIRStarts with iaid_iaid_3299_read_memory_content__107_1783625052
Live ResponseGUID without the iaid_ prefix6350af59-d86a-452d-b8ff-ace03831ddd8
Device/Network DiscoveryStarts with eeaid_eeaid_...

That means event 11 can be classified locally with a simple check: an iaid_ prefix is consistent with AIR, an eeaid_ prefix may indicate Device/Network Discovery, and a GUID-shaped ID is consistent with Live Response.

1
$source = Get-DefenderSenseIRActionSource -ActionId $actionId

⚠️ This distinction is based entirely on locally observed Action ID formats. Microsoft does not document these prefixes as a supported way to identify the source. In particular, my association of eeaid_ with Device/Network Discovery is only my current interpretation of the surrounding activity - it is not proven or confirmed by official documentation. Treat all three patterns as correlation clues, not a permanent contract.

More detailed information around Defender device/network discovery can be found here: https://pisinger.github.io/posts/defender-network-discovery-under-the-hood/

🔍 Reading the Action Names

The action names are the useful part. They map nicely to the type of triage an analyst would normally perform manually:

ActionWhat it suggests SenseIR.exe collected
GetTcpConnectionListActionActive or recent TCP connection state
GetDriverListActionLoaded driver inventory
GetServiceListActionService inventory
GetProcessListActionRunning process inventory
GetFileInformationActionMetadata for files of interest
ReadFileActionContent read from a selected file
FileExistsActionCheck whether a specified file or path exists
FindFilesActionSearch for files matching supplied criteria
EnumerateFilesAndFoldersActionDirectory and file enumeration for a selected path
ReadProcessMemoryActionMemory content from selected processes
PersistenceCheckActionAutoruns and other persistence locations
GetRecentlyExecutedFilesActionRecently executed file evidence
GetFilesFromDownloadLocationsActionFiles from common download paths
GetRecentlyCreatedOrModifiedExecutableFileListActionNew or modified executable content

That list is not the full internal playbook, and it may change over time. Still, it is enough to understand the shape of the investigation. AIR is not just “scan the box”. It performs targeted evidence collection, uploads the results, and lets the service-side investigation engine reason over that evidence.

🛠️ PowerShell Helper

Below is the combined helper I use for this. The first function reads Microsoft-Windows-SenseIR and keeps only a few practical filters. Get-DefenderSenseIRActionSource classifies the observed Action ID formats, while the final function wraps the event reader for the AIR and Live Response action events I usually care about.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
function Get-DefenderEventsSenseIR {
    param (
        [string]$Pattern,
        [switch]$Filtered
    )

    $ids = 1..5

    $events = Get-WinEvent -ErrorAction SilentlyContinue -FilterHashTable @{
        ProviderName = "Microsoft-Windows-SenseIR"
    }

    if ($Filtered) {
        $events = $events | Where-Object Id -notin $ids
    }

    if ($Pattern) {
        $events = $events | Where-Object Message -like "*$Pattern*"
    }

    return $events
}

function Get-DefenderSenseIRActionSource {
    param (
        [Parameter(Mandatory)]
        [string]$ActionId
    )

    if ($ActionId -like "iaid_*") {
        return "AIR"
    }

    if ($ActionId -like "eeaid_*") {
        return "Network Discovery"
    }

    if ($ActionId -match "^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$") {
        return "Live Response"
    }

    return "Unknown"
}

function Get-DefenderEventsSenseAutomatedInvestigation {
    param (
        [switch]$ActionReportOnly
    )

    $ids = 7, 11
    $events = Get-DefenderEventsSenseIR | Where-Object Id -in $ids

    if ($ActionReportOnly) {
        $events = $events | Where-Object Id -eq 11
    }

    return $events
}

The Get-DefenderEventsSenseAutomatedInvestigation wrapper focuses on two event IDs:

Event IDWhy I look at it
7AIRS client registration request
11Finished upload for an investigation action

For Live Response, I keep 1, 3, 11, and 14 in the wrapper. Event 11 is still the most useful report-style signal because it records that results for an action were uploaded.

⚡ Quick Usage

To list AIR-related local events:

1
2
Get-DefenderEventsSenseAutomatedInvestigation |
    Select-Object TimeCreated, Id, LevelDisplayName, Message

To only show action upload reports:

1
2
Get-DefenderEventsSenseAutomatedInvestigation -ActionReportOnly |
    Select-Object TimeCreated, Id, Message

To quickly extract the action names from event 11:

1
2
3
4
5
6
7
8
9
10
11
12
13
Get-DefenderEventsSenseAutomatedInvestigation -ActionReportOnly |
    ForEach-Object {
        $actionId = [regex]::Match($_.Message, "Action ID: (?<id>[^,]+)").Groups["id"].Value

        [pscustomobject]@{
            TimeCreated = $_.TimeCreated
            Action      = [regex]::Match($_.Message, "action (?<action>[^.]+)\.").Groups["action"].Value
            ActionId    = $actionId
            Source      = Get-DefenderSenseIRActionSource -ActionId $actionId
            ResultCode  = [regex]::Match($_.Message, "upload result code: (?<code>\S+)").Groups["code"].Value
        }
    } |
    Sort-Object TimeCreated

That produces a much cleaner sequence:

1
2
3
4
5
6
7
8
9
10
TimeCreated          Action                                               Source  ResultCode
-----------          ------                                               ------  ----------
21/06/2026 21:22:55  GetTcpConnectionListAction                           AIR     0x0
21/06/2026 21:22:56  GetDriverListAction                                  AIR     0x0
21/06/2026 21:22:58  GetServiceListAction                                 AIR     0x0
21/06/2026 21:23:43  GetProcessListAction                                 AIR     0x0
21/06/2026 21:24:12  ReadProcessMemoryAction                              AIR     0x0
21/06/2026 21:33:56  PersistenceCheckAction                               AIR     0x0
21/06/2026 21:33:57  GetRecentlyExecutedFilesAction                       AIR     0x0
21/06/2026 21:34:04  GetRecentlyCreatedOrModifiedExecutableFileListAction AIR     0x0

💡 Why This Is Useful

For me, this is mainly useful in three situations.

Learning how AIR behaves. Seeing the action names in order makes the investigation less abstract. You get a feeling for the evidence classes Defender collects.

Troubleshooting local execution. If the portal shows an investigation but the endpoint has no matching Microsoft-Windows-SenseIR activity, that is a useful clue. It does not automatically identify the root cause, but it tells you where to look next.

There are also a few limits to keep in mind:

  • The local event log does not contain the full investigation result.
  • Action names and IDs are internal implementation details and can change.
  • Retention depends on the local event log configuration.
  • Some activity may be easier to understand from the Defender portal timeline or Advanced Hunting.

That last point matters. Local logs are a supporting signal, not the source of truth for investigation outcome.

✅ Conclusion

SenseIR.exe is the common local Defender incident-response module behind both AIR and Live Response in these observations. Microsoft-Windows-SenseIR is the useful window into that module: it shows when the endpoint registered as an incident response client and, more importantly, which locally executed actions finished and uploaded their results. In event 11, the observed Action ID format also provides a practical source clue: iaid_ for AIR, a plain GUID for Live Response, and possibly eeaid_ for Device/Network Discovery.

For anyone interested in how Defender investigation and response works under the hood, this is a simple place to start. You will not get the cloud-side verdict logic or an explicit source field from the local event log, but you can correlate the Action ID pattern and see the evidence collection rhythm - processes, services, drivers, connections, autoruns, memory reads, file metadata, and recent execution history. That makes both AIR and operator-driven Live Response a bit less of a black box.

This post is licensed under CC BY 4.0 by the author.