Almost every "why won't this app deploy?" ticket eventually traces back to the same root cause: the wrong silent install switch. Different installer frameworks invent their own command-line conventions, and the documentation is scattered across vendor forums, GitHub issues, and decade-old blog posts.
This is the cheat sheet we wish existed when we started — by framework, with the edge cases that actually bite in production.
How to identify the framework
Open the EXE in a hex editor or run strings. You can also use InstallMage's detection engine, which fingerprints 12+ frameworks from the PE header in milliseconds. Common signatures:
Inno Setup Setup Data→ Inno SetupNullsoft.NSIS.exehead→ NSISInstallShieldin the version info → InstallShieldSquirrel.Windows→ Squirrel (Electron)- An embedded
.msistream → MSI-wrapped EXE
MSI (msiexec)
The reference implementation. If you have an MSI, you have a guarantee.
msiexec /i "App.msi" /qn /norestart /l*v "C:\Logs\install.log"/qn— fully quiet, no UI/qb— basic UI (progress bar only)/norestart— never auto-reboot/l*v— verbose log (essential for debugging)
Inno Setup
The most common modern installer. Two silent levels:
Setup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-/SILENT— shows progress bar but suppresses prompts/VERYSILENT— fully hidden (use this for Intune)/SUPPRESSMSGBOXES— kills any leftover dialogs/SP-— disables "This will install..." prompt/DIR="C:\Path"— custom install dir
Gotcha: some Inno installers ship with custom [Code]sections that bypass /VERYSILENT. Always test on a clean VM first.
NSIS (Nullsoft Scriptable Install System)
Common in open-source apps and older vendor installers.
Setup.exe /S /D=C:\Program Files\App/S— silent (capital S, case-sensitive)/D=path— install directory (must be the LAST parameter, no quotes around the path even if it contains spaces)
Gotcha: the /D= syntax is uniquely picky. Quotes will silently break it.
InstallShield
The most painful framework. Two flavors:
InstallShield with embedded MSI
Setup.exe /s /v"/qn /norestart"The outer /s silences the InstallShield wrapper; the/v passes the inner string to msiexec.
Legacy InstallShield (no MSI)
Requires a recorded response file:
# Step 1 — record once on a clean VM:
Setup.exe /r /f1"C:\setup.iss"
# Step 2 — replay on every endpoint:
Setup.exe /s /f1"C:\setup.iss"Squirrel.Windows (Electron)
Used by Slack, GitHub Desktop, Discord, and most Electron apps.
Setup.exe --silentGotcha: Squirrel installs per-user by default into%LocalAppData%, which breaks SYSTEM-context Intune deployments. You need to deploy in user context or repackage.
WiX-built MSI bundles (Burn)
Bundle.exe /quiet /norestartBurn bundles also accept /log "path.log" for diagnostics and/passive for a progress-only UI.
Wise / 7-Zip SFX / Other legacy
Wise: /s. 7-Zip self-extractors: depends on the embedded payload — try -y or look at the SFX config. Many legacy installers respond to/silent, /quiet, -q, or /? for a hint.
Universal first-pass discovery
When you have no idea what framework you are dealing with, try these in order:
Setup.exe /?
Setup.exe /help
Setup.exe -h
Setup.exe /VERYSILENT
Setup.exe /S
Setup.exe /quietStop guessing
InstallMage's detection engine identifies the installer framework, pulls the verified switch from our community recipe library, and falls back to AI inference for unknown installers. Browse hundreds of community-verified recipes or read the full EXE-to-MSI guide for the bigger picture.
Try a free conversion and let the AI find the silent switch for you.