终端服务器不尊重 HKEY_CLASSES_ROOT 中的一个关联

终端服务器不尊重 HKEY_CLASSES_ROOT 中的一个关联

我在 Windows Server 2003 上运行终端服务角色。昨天,所有用户都开始遇到一个问题,双击 PDF 文件会以 NTFS 短名称(8.3 格式)打开它,因此如果进行了任何更改,文件会以不同的名称保存。

我已经使用 ASSOC 和 FTYPE 来确保系统范围的文件类型关联是正确的。

ASSOC .pdf=AcroExch.Document
FTYPE AcroExch.Document="C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe" "%1"

我使用 regedit 来确认各个注册表项(如下)的内容与给予 ASSOC 和 FTYPE 的参数匹配(确实如此)。

HKLM\Software\Classes\.pdf
HKLM\Software\Classes\AcroExch.Document

但是,Windows 在打开 PDF 时似乎完全忽略了这些设置。请注意,使用“打开方式”可以正常工作,并使用长名称打开文件,尽管配置了完全相同的字符串。事实上,我可以shell/open/command完全删除该键而不会产生任何影响。当用户双击文件时,它仍然会使用相同的程序打开,尽管注册表中不再指定。

更奇怪的是,在文件夹选项/文件类型下,PDF 文件的条目显示:

您已自定义扩展名为“PDF”的文件。要将这些文件恢复为其默认类型(Acrobat PDF 文档),请单击“恢复”。

但是,此文件类型没有针对每个用户的自定义设置。我检查了一下,HKCU\Software\Classes没有与 PDF 或 Acrobat 相关的条目。

这个问题在注销后仍然存在。我发现的唯一解决方法是注销,删除用户配置文件,然后重新登录以根据默认用户创建新的配置文件。然后用户将按预期继承系统范围的设置。

我的下一个故障排除步骤是重新启动服务器,但我还需要几个小时才能做到这一点。有人见过这样的问题吗?

答案1

找到了我自己的问题的答案。系统范围的设置被此注册表项覆盖:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf

删除每个用户的注册表项可使系统范围的设置生效,现在 PDF 可以正常打开。

相关内容