Event ID 4688 is the most valuable process creation event in the Windows Security log. When configured correctly it shows you every process that launches on a system — the binary name, the full command line including arguments, the parent process, the user, and the timestamp. When configured incorrectly — which is the default — it shows you the binary name and almost nothing else.

This post covers exactly what 4688 logs, how to enable the command line fields that make it useful, what every field means, and production detection queries that use it in Sentinel, Splunk, and CrowdStrike.

SOC Starter Kit · $39 · Buy Once
Quick reference card — critical Event IDs included
One-page reference covering 4688, 4624, 4625, 4698, 4720, 7045, 4104, and 1102 — what each logs, when to alert, and the detection queries behind them.
Get Starter Kit — $39 →

What Event ID 4688 Logs

4688 fires every time a new process is created on the system. By default it captures basic information. With command line auditing enabled — a separate group policy setting — it also captures the full command line, which is what transforms it from a useful event into an indispensable detection data source.

Default vs configured — critical difference

By default, 4688 does NOT capture the command line. You see powershell.exe launched but not what it ran. With command line auditing enabled you see the full argument string including encoded payloads, download cradles, and every flag passed to the process. If command line logging isn't enabled, your 4688 events are missing their most important field.

Enabling Command Line Logging

Two settings are required. Both must be configured for command line data to appear in 4688 events.

Setting 1 — Enable process creation auditing

Group Policy path
Computer Configuration
  → Windows Settings
    → Security Settings
      → Advanced Audit Policy Configuration
        → Detailed Tracking
          → Audit Process Creation
            → Enable: Success

Setting 2 — Enable command line in process creation events

Group Policy path
Computer Configuration
  → Administrative Templates
    → System
      → Audit Process Creation
        → Include command line in process creation events
          → Enable

After both settings are pushed, new 4688 events will include the Process Command Line field. Existing events already in the SIEM are unaffected — they only have what was captured at the time.

Verify via PowerShell

Run `auditpol /get /subcategory:"Process Creation"` on a target endpoint to confirm the setting is active. Output should show "Success" under the subcategory. If it shows "No Auditing" the GPO hasn't applied yet or is being overridden by a local policy.

Event ID 4688 Field Reference

Field NameDescriptionDetection Value
SubjectUserNameUsername of the account that created the processHigh — SYSTEM processes launched by user accounts are suspicious
SubjectDomainNameDomain of the subject accountMedium — helps distinguish domain vs local accounts
NewProcessNameFull path to the new process binaryHigh — full path reveals execution from temp, downloads, unusual dirs
ProcessCommandLineFull command line including all argumentsCritical — requires command line auditing enabled separately
ParentProcessNameFull path of the parent processHigh — parent-child relationships expose most macro/script abuse
NewProcessIdPID of the new process in hexMedium — used for timeline correlation with other event types
ProcessIdPID of the parent process in hexMedium — correlate with 4689 (process exit) for lifetime analysis
TokenElevationType%%1936 = full token, %%1937 = limited, %%1938 = elevatedHigh — %%1938 means process ran with elevated privileges
MandatoryLabelIntegrity level of the new processMedium — High integrity from unexpected parent is suspicious

Detection Queries

Sentinel KQL — suspicious process creation patterns

Sentinel KQL — 4688 suspicious child process detection
SecurityEvent
| where TimeGenerated > ago(1d)
| where EventID == 4688
// Suspicious parents — Office apps, browsers
| where ParentProcessName has_any(
    "winword.exe", "excel.exe", "outlook.exe",
    "powerpnt.exe", "chrome.exe", "msedge.exe",
    "firefox.exe", "iexplore.exe"
  )
// Suspicious children — scripting engines, living-off-land binaries
| where NewProcessName has_any(
    "powershell.exe", "pwsh.exe", "cmd.exe",
    "wscript.exe", "cscript.exe", "mshta.exe",
    "rundll32.exe", "regsvr32.exe", "certutil.exe"
  )
| project TimeGenerated, Computer, Account,
    ParentProcessName, NewProcessName,
    ProcessCommandLine, TokenElevationType
| order by TimeGenerated desc
Sentinel KQL — encoded PowerShell via 4688
SecurityEvent
| where TimeGenerated > ago(1d)
| where EventID == 4688
| where NewProcessName has_any(
    "powershell.exe", "pwsh.exe")
| where ProcessCommandLine has_any(
    "-enc", "-encodedcommand",
    "-e ", "-en "
  )
| extend EncodedPart = extract(
    @"(?i)-e(?:nc|n|ncodedcommand)?\s+([A-Za-z0-9+/=]{20,})",
    1, ProcessCommandLine)
| project TimeGenerated, Computer, Account,
    ProcessCommandLine, EncodedPart
| order by TimeGenerated desc

Splunk SPL — process execution from suspicious locations

Splunk SPL — 4688 execution from temp/downloads
index=win_* sourcetype="WinEventLog:Security"
EventCode=4688 earliest=-24h
| eval proc_path=lower(coalesce(
    New_Process_Name, NewProcessName))
| where match(proc_path,
    "(\\temp\\|\\tmp\\|\\appdata\\local\\temp\\|
    \\downloads\\|\\users\\public\\|\\programdata\\)")
| eval cmdline=coalesce(
    Process_Command_Line, CommandLine)
| table _time host user proc_path cmdline
| sort 0 -_time

Splunk SPL — elevated process from non-admin user

Splunk SPL — unexpected privilege elevation via 4688
index=win_* sourcetype="WinEventLog:Security"
EventCode=4688 Token_Elevation_Type="%%1938"
earliest=-24h
| eval proc=lower(coalesce(
    New_Process_Name, NewProcessName))
/* Exclude expected elevated processes */
| where NOT match(proc,
    "(msiexec|trustedinstaller|
    tiworker|svchost|wuauclt)")
| stats count values(proc) as Processes
    by user host
| where count > 5
| sort - count

High-Volume Management: Reducing 4688 Noise

4688 generates a lot of events — in a busy enterprise environment, thousands per minute. The three most effective noise reduction techniques:

SOC Starter Kit · $39
Quick reference card covers 4688 and 9 other critical Event IDs

One-page reference for SOC analysts — what each critical Event ID logs, when to alert, what the false positives look like, and how to tune. Part of the SOC Starter Kit along with the alert triage handbook, IR runbook set, and threat hunting playbook.

Get SOC Starter Kit — $39 Or Join Intel Pack — $14.99/mo
Instant download · 30-day money back · own it forever