User Choice Protection Driver (UCDR) causing Explorer or icon flickering issues.
Learn how to troubleshoot and resolve flickering issues caused by User Choice Protection Driver (UCDR) affecting Explorer and icons.
Table of Contents
Microsoft are rolling out a new enhancement into Windows to prevent the default applications being modified, this is called the User Choice Protection Driver or UCDR.
You may have seen the following errors in the logs
Failed to process [HKEY_USERS\<user SiD>\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\<protocol>\UserChoice] Exception: System.UnauthorizedAccessException: Attempted to perform an unauthorized operation
We have had a report of this error causing explorer to crash, or desktop icons to flash. We have also see the error above reported with no impact too.
This will only impact workstations migrations where you need to perform permission updates to the registry.
We have accounted for this in the most recent build of PowerSyncPro Migration Agent released on 22nd May 2025, version 3.1.25141.2 on our downloads and documentation page. PowerSyncPro - Downloads and Documentation
However, if you have already deployed Migration Agent to your environment and you are about to perform live migrations, you may want to consider the following workaround, running a Start-up (pre) and Complete (post) script to allow Migration Agent to update the registry.
Here is the code you will need to run in a PowerShell.
Pre-Migration Script
cmdline.cmd
start "" /WAIT PowerShell.exe -ExecutionPolicy Bypass -File ".\UCPDStartup.ps1"
UCPDStartup.ps1
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\UCPD" -Name "Start" -Value 4 -Force
Disable-ScheduledTask -TaskName '\Microsoft\Windows\AppxDeploymentClient\UCPD velocity'
Then zip the two files so they are the only files in the root of the zip, and add to your runbook.
Post-Migration Script
cmdline.cmd
start "" /WAIT PowerShell.exe -ExecutionPolicy Bypass -File ".\UCPDComplete.ps1"
UCPDComplete.ps1
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\UCPD" -Name "Start" -Value 1 -Force
Enable-ScheduledTask -TaskName '\Microsoft\Windows\AppxDeploymentClient\UCPD velocity'
Then zip the two files so they are the only files in the root of the zip, and add to your runbook.
Fix workstation which exhibit the issue post migration.
If your machine has been impacted by this issue, we found the following steps resolve the issue in our lab and circumstances.
Note: This is provided without warranty, please ensure you backup your system before running unsupported scripts.
Using administrative PowerShell, disable UCPD
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\UCPD" -Name "Start" -Value 4 -Force
Disable-ScheduledTask -TaskName '\Microsoft\Windows\AppxDeploymentClient\UCPD velocity'
Now restart the machine, it is important to do this before attempting the next steps.
Using administrative regedit delete the following entry and all sub entries
Computer\HKEY_USERS\<the user sid>\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http
Computer\HKEY_USERS\<the user sid>\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https
Computer\HKEY_USERS\<the user sid>\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\pdf
Computer\HKEY_USERS\<the user sid>\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf
Then re-enable UCPD using administrative PowerShell
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\UCPD" -Name "Start" -Value 1 -Force
Enable-ScheduledTask -TaskName '\Microsoft\Windows\AppxDeploymentClient\UCPD velocity'
And restart the machine again