Supported Uninstaller Types
BCU recognizes and handles the following uninstaller types:MSI (Windows Installer)
Microsoft’s standard installation technology with comprehensive management features
NSIS
Nullsoft Scriptable Install System, popular for open-source software
Inno Setup
Free installer for Windows programs, widely used by developers
InstallShield
Commercial installer used by enterprise applications
Windows Store Apps
Universal Windows Platform (UWP) and packaged apps from Microsoft Store
Steam
Games and applications distributed through the Steam platform
Chocolatey
Package manager for Windows, similar to apt-get or yum
Oculus
Applications installed through Oculus VR platform
UninstallerType Enumeration
BCU uses an enum to categorize uninstallers. Here’s the complete definition from the source code:UninstallerType.cs
Type-Specific Characteristics
MSI (Msiexec)
Features
Features
- Detection: Product codes in registry, MSI database queries
- Silent Uninstall: Native support via
/qnflag - Logging: Built-in MSI logging with
/l*vflag - Repair: Can repair installations
- Rollback: Automatic transaction support
- Clean Removal: Generally leaves minimal leftovers
Silent Uninstall Command
NSIS (Nullsoft Scriptable Install System)
Features
Features
- Detection: Uninstaller executable signature patterns
- Silent Uninstall:
/Sswitch (capital S is important) - Custom Scripts: Installer-defined uninstall logic
- Common Usage: Open-source projects, freeware
- Leftovers: Variable, depends on installer script quality
Silent Uninstall Command
Inno Setup
Features
Features
- Detection: Inno Setup registry keys and uninstaller signatures
- Silent Uninstall:
/SILENTor/VERYSILENTswitches - Logging:
/LOGswitch for detailed logs - Common Usage: Widely used in Windows freeware and commercial software
- Clean Removal: Generally good, especially with
/VERYSILENT
Silent Uninstall Command
Windows Store Apps (StoreApp)
Features
Features
- Detection: PowerShell
Get-AppxPackagecmdlet - Removal Method: PowerShell
Remove-AppxPackagecmdlet - Scope: Per-user and all-users packages
- Protection: Some apps are protected and cannot be removed
- Clean Removal: Excellent, containerized app model
Remove Store App
Steam
Features
Features
- Detection: Steam library manifest files
- Removal Method: Steam client uninstall command
- Clean Removal: Excellent, managed by Steam client
- Dependency: Requires Steam client to be installed
Uninstall Steam Game
Chocolatey
Features
Features
- Detection: Chocolatey package database
- Removal Method:
choco uninstallcommand - Silent Uninstall: Native silent operation
- Dependencies: Handles dependency removal
- Clean Removal: Excellent, package manager handles cleanup
Uninstall Chocolatey Package
InstallShield
Features
Features
- Detection: Registry keys and uninstaller signatures
- Silent Uninstall: Various switches (
/s,/quiet, response files) - Enterprise Usage: Common in commercial software
- Complexity: Can be complex with custom scripts
- Leftovers: Variable quality
Windows Features
Features
Features
- Detection: DISM or PowerShell feature queries
- Removal Method: DISM commands or PowerShell
- System Integration: Deep OS integration
- Restart Required: Often requires system restart
- Clean Removal: Excellent, managed by Windows
Disable Windows Feature
Windows Update
Features
Features
- Detection: Windows Update API
- Removal Method: WUSA or DISM commands
- System Updates: Handles KB updates and patches
- Caution Required: Removing updates can destabilize system
Oculus
Features
Features
- Detection: Oculus library manifest files
- Removal Method: Oculus client uninstall command
- VR Applications: Games and apps from Oculus Store
- Dependency: Requires Oculus software
PowerShell
Features
Features
- Detection: PowerShell-based uninstallers
- Removal Method: Execute PowerShell script
- Flexibility: Can handle complex custom uninstall logic
- Modern: Increasingly common in modern software
SimpleDelete
Features
Features
- Detection: Portable apps without formal uninstaller
- Removal Method: Delete application directory
- Use Case: Portable applications, extracted archives
- Caution: May leave registry entries or user data
Detection Priority
BCU uses a priority system when multiple uninstaller types could apply:- MSI Product Code - Highest priority, most reliable
- Package Managers (Chocolatey, Steam, Store Apps) - Well-managed uninstalls
- Known Installers (NSIS, Inno Setup, InstallShield) - Pattern-based detection
- Registry Keys - Standard Windows uninstaller registry
- Simple Delete - Fallback for portable apps
Type Detection Methods
- Signature Analysis
- Registry Analysis
- External Tools
BCU examines the uninstaller executable to identify patterns:
- NSIS: Looks for NSIS-specific strings and resources
- Inno Setup: Checks for Inno Setup signatures
- InstallShield: Identifies InstallShield engine files
Silent Uninstall Generation
BCU attempts to generate silent uninstall commands for each type:Example Logic
Best Practices
MSI is Preferred: When possible, use MSI-based installations for easiest management and cleanest removal.
Related Topics
Detection Methods
Learn how BCU discovers applications
Helper Tools
Understand the helper applications used for specific types
