Skip to main content

Disable software compatibility updates ("PcaPatchDbTask")

Overviewโ€‹

About this script

This script improves your privacy on Windows.

These changes use Windows system commands to update your settings.

This script disables the "PcaPatchDbTask" scheduled task.

"PcaPatchDbTask" is responsible for periodically updating a specific database that tracks software known to have compatibility issues 1. When users run a program listed in this database, Windows' Program Compatibility Assistant (PCA) will notify them and suggest a solution to address the compatibility problem the next time the program is started 2 3. By keeping this database updated, the PCA can consistently recognize and remedy compatibility conflicts, ensuring that even software designed for older Windows versions runs correctly on newer ones.

This database is named the System Application Compatibility Database 3. Its primary function is to support users in seamlessly operating older software on modern Windows versions by auto-applying compatibility settings when necessary.

Besides compatibility features, 'PcaPatchDbTask' supports Windows' Dynamic Update process, performing tasks like 4:

  • Retrieving the latest Windows updates and integrating them into the existing system 4. This action can occasionally trigger antivirus alerts, labeling the process as "Riskware.Injector.Generic" 5.
  • Acquiring drivers that may be missing from the installation media 4.
  • Keeping the aforementioned compatibility database up-to-date 1 4.

"PcaPatchDbTask" was initially rolled out in Windows 10 4 and it's present by default since Windows 10 21H1 and Windows 11 22H2.

Disabling this task might enhance user privacy by preventing automated compatibility checks and updates. However, users might miss out on helpful compatibility solutions for older software.

Overview of default task statusesโ€‹

\Microsoft\Windows\Application Experience\PcaPatchDbTask:

OS VersionDefault status
Windows 10 22H2๐ŸŸข Ready
Windows 11 22H2๐ŸŸข Ready
Windows 11 23H2๐ŸŸข Ready

This script uses Batch (batchfile) scripting language.

Use with Caution

This script is only recommended if you understand its implications. Some non-critical or features may no longer function correctly after running this script.

Implementation Details
  • Language: batch

  • Required Privileges: Administrator rights

  • Compatibility: Windows only

  • Reversibility: Can be undone using provided revert script

Explore Categoriesโ€‹

This action belongs to Disable background application compatibility checks (Application Experience scheduled tasks) category. This category focuses on disabling scheduled tasks related to Application Experience. These tasks aim to improve user experience by identifying compatibility issues with older software and boosting application performance. However, they also collect and transmit telemetry data to Microsoft.... Read more on category page โ–ถ

Apply nowโ€‹

Choose one of three ways to apply:

  1. Automatically via privacy.sexy: The easiest and safest option.
  2. Manually by downloading: Requires downloading a file.
  3. Manually by copying: Advanced flexibility.

Alternative 1. Apply with Privacy.sexyโ€‹

privacy.sexy is free and open-source application that lets securely apply this action easily.

Open privacy.sexy

You can fully restore this action (revert back to the original behavior) using the application.

privacy.sexy instructions
  1. Open or download the desktop application
  2. Search for the script name: Disable software compatibility updates (PcaPatchDbTask).
  3. Check the script by clicking on the checkbox.
  4. Click on Run button at the bottom of the page.

Alternative 2. Downloadโ€‹

Irreversible Changes

This script is irreversible, meaning there is no straightforward method to restore changes once applied. Exercise caution before running, restoring it may not be possible.

  1. Download the script file by clicking on the button below:

    Download script

  2. Run the script file by clicking on it.

Download revert scriptโ€‹

This file restores your system to its original state, before this script is applied.

Download restore script

Alternative 3. Copyโ€‹

This is for advanced users. Consider automatically applying or downloading the script for simpler way.

  1. Open Command Prompt as administrator.
HELP: Step-by-step guide
  1. Click on Start menu

  2. Type cmd

  3. Right click on Command Prompt select Run as administrator

  4. Click on Yes to run Command Prompt


Animation showing how to open terminal as administrator on Windows 11

  1. Copy the following code:
Code to apply changes
:: Disable scheduled task(s): `\Microsoft\Windows\Application Experience\PcaPatchDbTask`
PowerShell -ExecutionPolicy Unrestricted -Command "$taskPathPattern='\Microsoft\Windows\Application Experience\'; $taskNamePattern='PcaPatchDbTask'; Write-Output "^""Disabling tasks matching pattern `"^""$taskNamePattern`"^""."^""; $tasks = @(Get-ScheduledTask -TaskPath $taskPathPattern -TaskName $taskNamePattern -ErrorAction Ignore); if (-Not $tasks) { Write-Output "^""Skipping, no tasks matching pattern `"^""$taskNamePattern`"^"" found, no action needed."^""; exit 0; }; $operationFailed = $false; foreach ($task in $tasks) { $taskName = $task.TaskName; if ($task.State -eq [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.StateEnum]::Disabled) { Write-Output "^""Skipping, task `"^""$taskName`"^"" is already disabled, no action needed."^""; continue; }; try { $task | Disable-ScheduledTask -ErrorAction Stop | Out-Null; Write-Output "^""Successfully disabled task `"^""$taskName`"^""."^""; } catch { Write-Error "^""Failed to disable task `"^""$taskName`"^"": $($_.Exception.Message)"^""; $operationFailed = $true; }; }; if ($operationFailed) { Write-Output 'Failed to disable some tasks. Check error messages above.'; exit 1; }"
  1. Right click on command prompt to paste it.
  2. Press Enter to apply remaining code.

Copy restore codeโ€‹

Copy and run the following code to restore changes:

Revert code
:: Restore scheduled task(s) to default state: `\Microsoft\Windows\Application Experience\PcaPatchDbTask`
PowerShell -ExecutionPolicy Unrestricted -Command "$taskPathPattern='\Microsoft\Windows\Application Experience\'; $taskNamePattern='PcaPatchDbTask'; $shouldDisable = $false; Write-Output "^""Enabling tasks matching pattern `"^""$taskNamePattern`"^""."^""; $tasks = @(Get-ScheduledTask -TaskPath $taskPathPattern -TaskName $taskNamePattern -ErrorAction Ignore); if (-Not $tasks) { Write-Warning ( "^""Missing task: Cannot enable, no tasks matching pattern `"^""$taskNamePattern`"^"" found."^"" + "^"" This task appears to be not included in this version of Windows."^"" ); exit 0; }; $operationFailed = $false; foreach ($task in $tasks) { $taskName = $task.TaskName; if ($shouldDisable) { if ($task.State -eq [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.StateEnum]::Disabled) { Write-Output "^""Skipping, task `"^""$taskName`"^"" is already disabled, no action needed."^""; continue; }; } else { if (($task.State -ne [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.StateEnum]::Disabled) -and ($task.State -ne [Microsoft.PowerShell.Cmdletization.GeneratedTypes.ScheduledTask.StateEnum]::Unknown)) { Write-Output "^""Skipping, task `"^""$taskName`"^"" is already enabled, no action needed."^""; continue; }; }; try { if ($shouldDisable) { $task | Disable-ScheduledTask -ErrorAction Stop | Out-Null; Write-Output "^""Successfully disabled task `"^""$taskName`"^""."^""; } else { $task | Enable-ScheduledTask -ErrorAction Stop | Out-Null; Write-Output "^""Successfully enabled task `"^""$taskName`"^""."^""; }; } catch { Write-Error "^""Failed to restore task `"^""$taskName`"^"": $($_.Exception.Message)"^""; $operationFailed = $true; }; }; if ($operationFailed) { Write-Output 'Failed to restore some tasks. Check error messages above.'; exit 1; }"

Supportโ€‹

This website relies on your support.

Support now

Your donation helps keep the project alive and improves its content โค๏ธ.

Share this page: