setupapi.app.log C:\Windows\INF\setupapi.app.log
setupapi.app.log: SetupAPI text log for INF-driven application installs. For drivers, see setupapi.dev.log.
What it’s for
Since Windows Vista, SetupAPI has kept several text logs. setupapi.app.log traces application installs that go through SetupAPI, such as INF-based setup packages, along with their errors. setupapi.dev.log follows device and driver installation, and setupapi.setup.log follows Windows setup itself, so open the one that matches what you are chasing.
What it contains
- Time-stamped sections, one per install operation, with the INF file processed, the sections run and the result.
- Errors from INF-driven application installs, with their code.
- Nothing about Windows Installer (MSI) installs, which have their own logs.
- The level of detail depends on the
LogLevelvalue underHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup.
Risks and best practices
- Deleting the file has no effect on Windows: SetupAPI recreates it on the next operation. You only lose the history.
- It can quote paths of installed software, so review it before sending it to a third party.
Useful commands
# Last linesGet-Content "$env:windir\INF\setupapi.app.log" -Tail 60
# Errors and exit statusesSelect-String -Path "$env:windir\INF\setupapi.app.log" -Pattern 'error|fail|exit status' | Select-Object -Last 30Format
Text organized in sections. Each section starts with a time-stamped >>> line carrying the operation name, and ends with <<< showing the exit status and duration. The lines in between give the time and the message.
Rotation and archiving
SetupAPI appends new sections to the existing file. A session start section marks the beginning of a new writing cycle.
How to read it
Find the section for the install in question with Select-String on the INF or application name, then read down to Exit status. Any status other than SUCCESS means failure, with the matching error code.