Glossary
Module Logging (4103)
PowerShell pipeline execution logging: event ID 4103 records commands and bound parameters as they run.
Module logging records pipeline execution details, meaning the commands PowerShell invoked and the parameters bound to them, to event ID 4103 in the Microsoft-Windows-PowerShell/Operational log. It is enabled by the Group Policy setting "Turn on Module Logging" under Administrative Templates → Windows Components → Windows PowerShell, either for a list of module names or for all modules with *. It is off by default.
Why it matters in investigations
Module logging complements Script Block Logging. Event 4104 shows the code that was compiled; 4103 shows what actually executed and with which argument values, including values computed at run time that never appear literally in the script. When a script builds a URL from variables, 4104 shows the variables while 4103 shows the final Uri.
Each 4103 event has a ContextInfo block naming the host application, the user, the engine version and the command, and a Payload with one CommandInvocation line per command and one ParameterBinding line per bound parameter. With * enabled it is verbose and noisy, so it is best read filtered on the cmdlets that matter: web requests, process creation, file writes and Defender settings.
Example
An abridged Payload for a file download:
CommandInvocation(Invoke-WebRequest): "Invoke-WebRequest"
ParameterBinding(Invoke-WebRequest): name="Uri"; value="https://files.example/tools.zip"
ParameterBinding(Invoke-WebRequest): name="OutFile"; value="C:\Users\Public\tools.zip"
The parser reads the ContextInfo fields and the payload, so the entry shows the user, host application and command name alongside the invocation. It runs the same findings over the payload and the host command line as over any other entry, here a download.
Related terms
- Event ID 4104, the script block event in the same log
- Script Block Logging, the companion policy
- Windows PowerShell classic log, whose event 800 also records pipeline execution
- Download cradle, often visible in 4103 parameter values
Merge 4103 with the other PowerShell events in the PowerShell Parser, and see the PowerShell event-log guide for every event ID side by side.