Module Logging: PowerShell pipeline execution details
PowerShell Module Logging recorded command invocation and parameter binding within a pipeline.
Event ID 4103 (`Microsoft-Windows-PowerShell/Operational`) records when PowerShell executes commands within logged modules (`Module Logging`). It reveals exact cmdlet invocations, parameter values (`ContextInfo`), variables, and object pipelines executed by users or remote scripts (`Invoke-Command`, `DownloadString`).
Failure Reason / Root Cause:
PowerShell pipeline execution inside an audited module (`ScriptBlock ID` & `CommandInvocation`).
Raw Event XML snippet
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-A5BA-3E3B0328C30D}" />
<EventID>4103</EventID>
<Version>0</Version>
<Level>0</Level>
<Task>12544</Task>
<Opcode>0</Opcode>
<Keywords>0x8020000000000000</Keywords>
<TimeCreated SystemTime="2026-07-17T09:54:44.854Z" />
<EventRecordID>1048576</EventRecordID>
<Correlation />
<Execution ProcessID="612" ThreadID="1024" />
<Channel>Security</Channel>
<Computer>DC01.enterprise.internal</Computer>
<Security />
</System>
<EventData>
<Data Name="SubjectUserSid">S-1-5-18</Data>
<Data Name="SubjectUserName">SYSTEM</Data>
<Data Name="SubjectDomainName">NT AUTHORITY</Data>
<Data Name="SubjectLogonId">0x3e7</Data>
<!-- Event telemetry fields specific to Module Logging: PowerShell pipeline execution details -->
</EventData>
</Event>MITRE ATT&CK mapping
| ID | Technique | Tactic |
|---|---|---|
T1059.001 | Command and Scripting Interpreter: PowerShell | Execution |
Recommended actions
- Inspect `CommandInvocation` and parameter bindings for obfuscated strings, base64 payloads (`-EncodedCommand`), or memory injection (`VirtualAlloc`).
- Correlate with `4104` (`Script Block Logging`).