背景:
某些用户的电脑对默认PDF查看器设置可能有问题。尽管选择福昕高级PDF编辑器作为默认的查看方式,但系统仍会不断恢复到 Microsoft Edge。即使在修复Edge或降级福昕高级PDF编辑器后,问题仍然存在。当尝试从PDF程序中设置默认值时,这个问题会特别明显。
1、问题验证如下:
方法1
右键单击 PDF 文档
在右键菜单中选择“打开方式”-> 选择其他应用程序”
选择 Foxit PDF Editor,选中“始终使用此应用程序打开.pdf文件”
单击 OK。
方法2
单击桌面上的“开始”按钮,然后选择“设置”。
在弹出窗口中,选择“应用程序”。
在左侧菜单中,选择 “默认应用程序”。
在右侧的列表中,找到并单击“.pdf”文件类型。
在弹出窗口中,选择要设置的应用程序,例如 Foxit PDF Editor。
方法3
找到您的 PDF 文件,右键单击并选择“属性”。
在弹出窗口中,选择“打开方式”。
单击“更改”按钮,然后从列表中选择要设置的应用程序,例如 Foxit PDF Editor。
然后单击“应用”和“确定”按钮。
方法4
如果您已经用福昕高级PDF编辑器打开了一份PDF文档,请单击“帮助”菜单,
单击“设置为默认 PDF 阅读器”。
验证结果如下:
以上方法中,只有方法1可以更改.pdf 文件的默认应用程序,但重启或者桌面刷新后还是会重置为 Edge,其他方法中的更改不会生效。
2. 开发团队分析
Windows系统已更新UCPD 服务驱动程序,该驱动程序现在限制对关联的.pdf 应用程序的修改。此更改是 Microsoft 实现基于驱动程序的保护系统的结果。这个新系统可以防止第三方实用程序修改 http/https和.pdf 关联。
默认情况下,Microsoft 启用此服务驱动程序,并将其放置在系统的任务计划程序中,以便在启动时启动。这会产生一个问题,即如果 UCPD 服务驱动程序正在运行,则在分发新版本后无法成功设置新版本。
但是,有一个潜在的解决方案。作为系统管理员,可以禁用 UCPD 操作。此解决方案对域中的所有用户都有效。因此,禁用甚至删除系统驱动程序服务可能是解决此问题的可行选择。
3. 临时解决方案
解决方案1:使用特定的 XML 文件,设置为注册表或由 GPO 策略设置(推荐)
第 1 步:准备一个名为“DefaultAppAssociations_pdf.xml”的 XML 文件,内容如下:
哪种福昕产品是默认的 PDF 查看器? |
“DefaultAppAssociations_pdf.xml”的内容 |
福昕高级PDF编辑器 |
<?xml version=”1.0″ encoding=”UTF-8″?> <DefaultAssociations> <Association Identifier=”.pdf” ProgId=”FoxitPhantomPDF.Document” ApplicationName=”Foxit PDF Editor” />
|
福昕 PDF Reader |
<?xml version=”1.0″ encoding=”UTF-8″?> <DefaultAssociations> <Association Identifier=”.pdf” ProgId=”FoxitReader.Document” ApplicationName=”Foxit PDF Reader” /> </DefaultAssociations>
|
第 2 步:通过注册表编辑器(适用于个人用户)或通过 GPO 策略(适用于企业用户)修改注册表。
通过注册表编辑器(适合个人用户)
按照步骤 1 中所述准备XML文件后,按照以下步骤操作:
1、 将 XML 文件放在您的 PC 中,例如 C:\DefaultAppAssociations_pdf.xml。
2、 打开 “Registry Editor”。您可以按 Windows 和 R 键,然后输入 regedit。
3、 导航到
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System。
4、 添加新的字符串值:
对于新的字符串值,请使用 “DefaultAssociationsConfiguration” 设置名称,并使用该 XML 文件的完整路径设置数据。例如:
5、重新启动系统。
通过 GPO 策略(适合企业用户)
您还可以通过 GPO 策略强制实施文件类型。使用组策略,管理员可以在每次用户登录时强制进行文件关联。这样,即使用户在特定会话中更改了默认 PDF 处理程序,或者操作系统更新更改了它,用户下次登录时,它也将更改回管理员指定的用户名。
按照步骤 1 中所述准备 XML 文件后:
1. 将 XML 放在共享网络位置,或通过脚本将此 XML 推送到所有特定于计算机的位置。例如,(不要使用特定于用户的位置)。C:\Windows\System32
2. 在 Windows 组策略设置中设置使用您的首选项配置的 XML,并按如下方式启用该设置:
a. 打开 Active Directory Server 实例上的控制面板\系统和安全\管理工具\组策略管理。
b. 在“计算机配置\管理模板\Windows 组件\文件资源管理器\设置默认关联配置文件”下找到策略。此策略指定 XML 文件的路径,该文件可以存储在客户端计算机上或网络位置。这是计算机级策略,无法创建用户级策略。
c. 启用策略,并指定存储 XML 文件的位置。相应的注册表项为 HKLM\Software\Policies\Microsoft\Windows\System\DefaultAssociationsConfiguration
完成后,
“Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System”中的寄存器设置将如下所示:
局限性:
• 最终用户计算机需要加入域才能使此方法正常工作。
• 用户可以在当前会话期间更改文件关联。但是,管理员设置将在下次登录时恢复。
• 自 2016 年 2 月 5 日起,Windows 10 的一个已知限制是,在实施 GPO 策略后在计算机上创建新用户时,不会在首次登录时设置所有权。但是,正确的设置将应用于后续登录。
解决方案 2:禁用服务和计划任务。
这适用于企业客户。
PowerShell 浏览器:
# Open PowerShell with Administrative Privileges
Start-Process powershell -Verb runAs
# Change Registry Value to Disable UCPD Service
Set-ItemProperty -Path “HKLM:\SYSTEM\CurrentControlSet\Services\UCPD” -Name “Start” -Value 4 -Type DWORD -Force
# Disable Scheduled Task for UCPD
Disable-ScheduledTask -TaskName ‘\Microsoft\Windows\AppxDeploymentClient\UCPD velocity’
CMD:
Run CMD as Administrator
@echo off
:: Check for permissions
>nul 2>&1 “%SYSTEMROOT%\system32\cacls.exe” “%SYSTEMROOT%\system32\config\system”
:: If error flag set, we do not have admin.
if ‘%errorlevel%’ NEQ ‘0’ (
echo Requesting administrative privileges…
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^(“Shell.Application”^) > “%temp%\getadmin.vbs”
echo UAC.ShellExecute “%~s0”, “”, “”, “runas”, 1 >> “%temp%\getadmin.vbs”
“%temp%\getadmin.vbs”
exit /B
:gotAdmin
if exist “%temp%\getadmin.vbs” ( del “%temp%\getadmin.vbs” )
pushd “%CD%”
CD /D “%~dp0”
:: End of Run as Administrator
:: Disable UCPD Service
reg add “HKLM\SYSTEM\CurrentControlSet\Services\UCPD” /v Start /t REG_DWORD /d 4 /f
:: Disable Scheduled Task for UCPD
schtasks /Change /TN “\Microsoft\Windows\AppxDeploymentClient\UCPD velocity” /Disable
运行上述脚本后,重新启动计算机。然后,您应该能够将 Foxit 设置为默认的 PDF 查看器。用户还可以运行此 CMD 以将 Foxit 设置为默认 PDF 查看器:
“C:\Program Files (x86)\Foxit Software\Foxit PDF Editor\FoxitPDFEditor.exe” /register
考虑将上述命令添加为组策略对象 (GPO) 用户配置 -> Windows 设置 -> 脚本 -> 登录中的脚本。此脚本将在域用户登录后执行。
解决方案 3:更改设置
第 1 步:设置默认应用程序。
• 开始 – 设置 – 应用程序 – 默认应用程序 – (.PDF) – 选择并确认。
第 2 步:修改注册表权限以防止系统自动进行更改。
• 打开注册表,转到
• Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice。
• 设置 UserChoice 项的权限。右键单击 UserChoice → Permissions 以打开权限设置页面。
• 将 ALL APPLICATION PACKAGES 和 SYSTEM 条目的 “Full Control” 权限设置为 “Deny”,然后单击 OK。
4. 参考资料
- https://kolbi.cz/blog/2024/04/03/userchoice-protection-driver-ucpd-sys/
- https://www.elevenforum.com/t/enable-or-disable-userchoice-protection-driver-ucpd-in-windows-11-and-10.24267/
- https://www.adobe.com/devnet-docs/acrobatetk/tools/AdminGuide/pdfviewer.html
如有疑问,请联系在线客服,感谢您的支持!