What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

MSI-installed applications are programs installed through Windows Installer packages, usually files ending in .msi. “MSI-installed applications” is a descriptive term, not a separate Windows feature. To manage one safely, first confirm its package type, installation scope, and Windows Installer product code. Then use registry-based inventory for discovery and msiexec.exe for supported repair or removal.

What “MSI-installed” means

MSI stands for Microsoft Installer; Microsoft now generally calls the technology Windows Installer. An MSI package contains installation instructions for files, components, features, shortcuts, services, registry values, upgrades, and removal. The original .msi file may no longer be in Downloads because Windows Installer can cache package data locally.

An .exe setup program can still install an MSI underneath. Conversely, software listed in Windows Installed apps is not automatically MSI-based. EXE installers, MSIX/AppX packages, Microsoft Store apps, portable programs, ZIP-extracted tools, and Microsoft 365 Click-to-Run use different management systems.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How to tell whether a program uses MSI

The strongest practical clue is an uninstall command containing MsiExec.exe /I{GUID} or MsiExec.exe /X{GUID}. The GUID is normally the MSI ProductCode. An inventory system that reports a product code, or the original installer being an MSI file, is also strong evidence.

Seeing an entry in Programs and Features, Settings, or an uninstall list is only a weak indicator. Non-MSI installers can create similar registry entries, while an MSI package can hide or alter its Add/Remove Programs entry with properties such as ARPSYSTEMCOMPONENT. Microsoft documents these visibility and per-user/per-machine behaviors in its Windows Installer Add/Remove Programs guidance.

List installed software without triggering repairs

For a local check, inspect uninstall registry keys rather than starting with the WMI Win32_Product class:

$paths = @(
  'HKLM:SoftwareMicrosoftWindowsCurrentVersionUninstall*',
  'HKLM:SoftwareWOW6432NodeMicrosoftWindowsCurrentVersionUninstall*',
  'HKCU:SoftwareMicrosoftWindowsCurrentVersionUninstall*'
)

Get-ItemProperty $paths -ErrorAction SilentlyContinue |
  Where-Object { $_.DisplayName } |
  Select-Object DisplayName, DisplayVersion, Publisher,
    InstallDate, UninstallString, QuietUninstallString, PSPath |
  Sort-Object DisplayName

This reports registered applications, not a guaranteed list of every MSI product. On 64-bit Windows, the WOW6432Node path covers many 32-bit products; a 32-bit and 64-bit PowerShell process can also see different registry views. The per-user HKCU path matters when software was installed only for the signed-in account.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To find entries that probably use Windows Installer, filter the uninstall command:

Get-ItemProperty $paths -ErrorAction SilentlyContinue |
  Where-Object {
    $_.DisplayName -and (
      $_.UninstallString -match '(?i)msiexec' -or
      $_.QuietUninstallString -match '(?i)msiexec'
    )
  } |
  Select-Object DisplayName, DisplayVersion, Publisher,
    InstallDate, UninstallString, QuietUninstallString

This is a heuristic. Some vendors omit or customize uninstall values.

Why not use Win32_Product as your normal inventory command?

Get-CimInstance Win32_Product is slow and can cause Windows Installer consistency checks or repairs for registered MSI products. That may generate installer activity, event-log entries, source requests, or unexpected prompts. It also does not inventory non-MSI software. Microsoft guidance recommends registry-based discovery or a trusted inventory platform instead; see the Windows IT Pro discussion of safer detection strategies.

Where MSI information lives

Common uninstall locations are:

  • HKLMSoftwareMicrosoftWindowsCurrentVersionUninstall (machine-wide 64-bit view)
  • HKLMSoftwareWOW6432NodeMicrosoftWindowsCurrentVersionUninstall (many 32-bit products on 64-bit Windows)
  • HKCUSoftwareMicrosoftWindowsCurrentVersionUninstall (current-user registrations)

Windows Installer also maintains internal product, feature, component, patch, and cached-package data. Do not delete those registry records or cached files manually: doing so can leave the product impossible to repair or remove cleanly.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Find the MSI product code

For ordinary uninstall and repair, you need the ProductCode, usually formatted like {12345678-1234-1234-1234-123456789ABC}. Find it in the registry’s uninstall command, an endpoint-management inventory record, deployment metadata, or the MSI database’s Property table.

Do not confuse identifiers:

  • ProductCode: identifies the installed product.
  • PackageCode: identifies a particular MSI package build.
  • UpgradeCode: identifies a related product family.
  • PatchCode: identifies an MSP patch.

Use ProductCode for a normal installed-product operation.

Uninstall an MSI product

From an elevated Command Prompt or PowerShell window:

msiexec.exe /x {PRODUCT-CODE-GUID}

/uninstall is equivalent to /x. For a silent removal that should not restart Windows automatically:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
msiexec.exe /x {PRODUCT-CODE-GUID} /qn /norestart

If the MSI file is available, this is also valid:

msiexec.exe /x "C:InstallersProduct.msi"

Using the registered product code is usually more dependable when the original file has moved. Add verbose logging when troubleshooting:

msiexec.exe /x {PRODUCT-CODE-GUID} /L*V "%TEMP%product-uninstall.log"

The log can expose a missing source, access denial, policy restriction, pending reboot, custom-action failure, or product-code mismatch. A per-machine product normally requires elevation; a per-user product may be visible and removable only in that user’s context.

Repair an MSI application

A standard full-file repair is:

msiexec.exe /fa {PRODUCT-CODE-GUID} /L*V "%TEMP%product-repair.log"

The /f options let you choose a less disruptive repair:

  • /fp missing files
  • /fo missing or older files
  • /fe missing or equal/older files
  • /fc files whose checksums do not match
  • /fa all files
  • /fu user-specific registry entries
  • /fm machine-specific registry entries
  • /fs shortcuts
  • /fv run from source and recache the package

Repair may require the original MSI, an equivalent package version, or an accessible administrative installation point. Do not assume a cached package can satisfy every repair mode.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Install and deploy MSI packages

Local installation uses:

msiexec.exe /i "C:InstallersProduct.msi"
msiexec.exe /i "C:InstallersProduct.msi" /qn /norestart

An .msi extension does not guarantee a completely unattended deployment. Packages may need prerequisites, transforms, public properties, a license value, network access, elevation, or a reboot.

Intune

A simple MSI can be deployed as a Windows line-of-business app. Complex packages are often wrapped as Win32 .intunewin apps. Managed Intune installations must be silent and noninteractive, with detection rules, requirements, dependencies, and a chosen user or device context. An uninstall command can be:

msiexec /x "{12345A67-89B0-1234-5678-000001000000}" /quiet

Microsoft documents a 30-GB maximum Windows application size for Win32 management, a default 60-minute installation timeout, and a maximum documented timeout of 1,440 minutes in its Win32 app guidance. Remove conflicting install assignments before assigning removal: an applicable install assignment can continually reinstall an app.

Configuration Manager, winget, and third-party tools

  • Configuration Manager: suited to traditional or co-managed enterprises needing collections, dependencies, task sequences, and detailed reporting.
  • winget: useful for catalog-listed installs, upgrades, and removals, but its package identity is not the same as an MSI ProductCode and many internal MSIs are absent.
  • Third-party tools: useful for fleet inventory, remote uninstall, patching, and packaged software libraries when an MDM platform is unnecessary.

Per-user versus per-machine installations

Scope Typical behavior
Per-machine Installed for the computer, usually requires elevation, visible to all users, commonly inventoried in HKLM.
Per-user Installed in one profile, may appear only to that user, registered in HKCU, and can be missed by an agent running as Local System.

The same application can exist in both scopes, producing apparent duplicates. Compare product codes, versions, registry paths, publisher, and uninstall commands before removing anything.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Why an MSI product is missing or appears twice

Missing entries can result from another user’s per-user install, a suppressed Add/Remove Programs record, damaged registration, a different 32-bit registry view, an incomplete installation, or the software actually being MSIX, Store, EXE, portable, or Click-to-Run. A package can also be a prerequisite or shared component rather than a user-facing application.

Duplicate entries may represent separate architectures, major versions with different ProductCodes, per-user and per-machine copies, language packs, runtimes, plug-ins, or a bootstrapper plus its underlying MSI. Never delete an entry solely because its display name looks repeated.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Common uninstall and repair failures

“Another installation is already in progress”

Allow the current installation or repair to finish, check for a genuinely stuck msiexec.exe process, and reboot when appropriate. Do not terminate installer processes blindly on a production computer.

Missing installation source

Restore the original network share, locate the matching MSI, or use the vendor’s supported repair/removal tool. Do not substitute an unrelated MSI with the same product name.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product is not registered

Verify the ProductCode, check both user and machine contexts, inspect both registry views, and follow the vendor’s cleanup procedure. Avoid random deletion of Windows Installer registry keys.

Uninstall succeeds but files remain

MSI removes resources registered to that product. User profiles, settings, logs, generated files, data, scheduled tasks, or vendor-updater files may remain. Removing the Windows Installer product is not the same as deleting all application or user data.

The product returns after removal

Check Intune, Configuration Manager, RMM, or login-script assignments. A still-applicable installation policy can reinstall the product immediately.

MSI compared with other Windows package types

Type Typical extension Primary management method
Windows Installer .msi msiexec, MDM, Configuration Manager
Windows Installer patch .msp msiexec /p
MSIX/AppX .msix, .appx AppX/MSIX, Store, Intune
Traditional executable .exe Vendor-specific switches
Portable software None or archive Manual file management
Microsoft 365 Click-to-Run Setup configuration Office Deployment Tool or Intune

Office is not automatically MSI-based because it appears in Programs and Features. Older Office MSI editions, Microsoft 365 Click-to-Run, Store versions, and individual components require different detection and removal methods. Microsoft notes that existing Office MSI installations may need removal before some Intune Microsoft 365 Apps deployments; see its Office deployment documentation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Which management method should you choose?

Need Best starting point Trade-off
One computer or a script PowerShell and registry inspection Incomplete if registration is damaged or a user scope is missed.
Cloud-managed fleet Intune Requires enrollment, licensing, silent packages, and reliable detection.
Traditional enterprise deployment Configuration Manager Powerful, but infrastructure-heavy.
Catalog-based installs and upgrades winget Catalog coverage and package behavior vary.
Remote inventory and patching without a full MDM Third-party endpoint tool Subscription cost and vendor-specific workflows.

For one machine, paid software is unnecessary: identify the scope and ProductCode, use msiexec, and save a verbose log. For a fleet, choose the platform that matches your enrollment, licensing, deployment complexity, and reporting needs.

Safe MSI checklist

  1. Confirm the program is really MSI-based; do not infer this from its display name.
  2. Check machine and user registry locations, including the 32-bit view.
  3. Record the ProductCode, version, scope, and uninstall command.
  4. Use msiexec rather than deleting registry keys or cached files.
  5. Use /L*V logging for failures and preserve the log.
  6. Expect a missing source or elevation requirement during repair/removal.
  7. Check management assignments if an application reinstalls.
  8. Clean up application data separately and only with the vendor’s guidance.

The Bottom Line

Identify the package type first, then determine whether the MSI is per-user or per-machine and obtain its ProductCode. Use registry-based inventory for safe discovery, msiexec.exe for logged repair or removal, and Intune or Configuration Manager when you need repeatable fleet deployment. Never treat a generic app-list entry, Win32_Product query, or manual registry deletion as proof or a safe management method.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.