Automating Reports from AppCompatibilityView: Scripts and Workflows

AppCompatibilityView: A Beginner’s Guide to Viewing App Compatibility

AppCompatibilityView is a lightweight Windows utility that reads the Application Compatibility (Shim) information stored in the registry and displays which compatibility fixes, layers, and flags are applied to installed programs. This guide explains what AppCompatibilityView shows, when to use it, and how to interpret its output so you can diagnose app compatibility problems quickly.

What AppCompatibilityView does

  • Reads compatibility entries: Displays compatibility database entries from the registry (HKLM and HKCU) and from the AppCompat cache.
  • Shows applied fixes and layers: Lists shims (fixes) such as RunAsInvoker, CompatibilityX, and compatibility layers like Windows 7 mode.
  • Exports reports: Lets you save results as CSV, HTML, or XML for documentation or automation.

When to use it

Use AppCompatibilityView when:

  • An older application fails to run correctly on a newer Windows version.
  • You suspect system-applied compatibility fixes are changing app behavior.
  • You need a quick inventory of compatibility settings applied across user or machine scopes.

How to get and run AppCompatibilityView

  1. Download the tool from a trusted source (NirSoft is a common provider).
  2. Extract and run the executable — no installation is required.
  3. Allow the tool to run with necessary permissions (some entries may require administrative rights to view).

Main interface and key columns

  • Application Name: The program’s display name.
  • File Path / Image Path: Location of the executable the entry targets.
  • Match Path / Match File: Pattern the compatibility entry matches.
  • Shim List / Fixes: The specific compatibility fixes applied (e.g., RunAsInvoker, Force8086).
  • Layer: Compatibility layer (e.g., WindowsXP, Windows7).
  • Flags: Additional behavior modifiers.
  • Registry Key / Source: Where the entry was found (HKLM/HKCU/AppCompatCache).

Common shims and what they mean

  • RunAsInvoker: Forces the app to run with the calling user’s privileges (disables automatic elevation).
  • RunAsAdmin: Forces the app to request elevated privileges.
  • Compatibility modes (Layer): Emulates older Windows behavior (e.g., Windows 7) to improve compatibility.
  • Display related fixes: Address DPI or rendering issues for older apps.

Typical troubleshooting workflow

  1. Reproduce the issue and note the failing executable path.
  2. Run AppCompatibilityView and filter/search for that executable or path.
  3. Check the Shim List and Layer columns to see if fixes are applied.
  4. If a shim is causing undesired behavior (e.g., RunAsInvoker preventing elevation), remove or override the entry using the Application Compatibility Toolkit or by editing the registry (administrative caution advised).
  5. Test the app after removing or changing the compatibility entry.
  6. Document changes by exporting the AppCompatibilityView report.

Exporting and using reports

  • Export to CSV for spreadsheet analysis or to HTML for sharing with teammates.
  • Include registry source and timestamp when documenting changes for rollback.

Safety and best practices

  • Back up the registry before making changes.
  • Prefer creating compatibility fixes via official tools (Application Compatibility Toolkit) rather than direct registry edits.
  • Test changes in a controlled environment before applying to production machines.

Quick example: Identifying a problematic shim

  1. App crashes on launch — executable: C:\Program Files\OldApp\oldapp.exe
  2. Open AppCompatibilityView → search for “oldapp.exe”.
  3. Found entry shows RunAsInvoker applied. This prevents elevation required by the app.
  4. Use Application Compatibility Toolkit to create a compatibility database without RunAsInvoker or remove the registry entry, then retest.

Summary

AppCompatibilityView is a simple, effective tool for inspecting Windows compatibility shims and layers. Use it to discover what compatibility adjustments Windows applies to applications, export findings for troubleshooting, and follow safe procedures when modifying or removing compatibility entries.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *