让整个 RDS 农场的每一台会话主机,PDF 默认都打开 Acrobat Reader
新建的 RDS 会话主机上装好了 Chrome、Acrobat Reader、SAP 客户端等一批常用软件。多用户远程办公场景下有个容易被忽略的小事:每一位登录进来的用户,PDF 文件双击打开时用的是哪个程序? 默认情况下 Windows 可能会挑 Edge 内置的 PDF 阅读器,而公司希望统一用 Acrobat Reader——这样文档的注释、签名、打印排版才和大家在自己电脑上用的体验一致。
手动设置只对”这一次登录”有效
最直接的做法是登进这台服务器,进 设置 → 应用 → 默认应用 → 按文件类型选择默认应用 → .pdf,选择 Acrobat Reader。问题是:这个设置挂在当前登录的用户账号上。RDS 会话主机是给几十上百个不同的域账号轮流登录用的,管理员账号上设置一次,不代表下一个用普通账号登录进来的员工也会看到同样的默认值——这类设置本质上是”每个用户第一次登录都要自己点一遍”,在多用户共享的服务器上完全不现实。
正确路径:DISM 导出配置 + 组策略统一分发
Windows 提供的机制是默认应用关联配置文件(Default App Associations)——一份描述”哪种文件类型该用哪个程序打开”的 XML,可以通过组策略下发给一整个域里的所有机器,在用户登录时统一套用。
第一步,在已经手动配置好默认应用的那台机器上,用 DISM 把当前的关联设置导出成模板:
mkdir C:\Temp
dism /online /Export-DefaultAppAssociations:C:\Temp\DefaultApps.xml
导出的文件里包含了这台机器上所有文件类型的关联规则(视频、图片、网页链接等等),体积不小。打开它,找到 .pdf 这一行确认关联到了正确的程序标识——本例中是 Acrobat.Document.DC(Adobe Acrobat)。
第二步,把这份文件精简成只包含需要强制统一的那一条,其余交给用户自己的习惯决定,避免这份策略把用户其他文件类型的默认程序也一并覆盖掉:
<?xml version="1.0" encoding="UTF-8"?>
<DefaultAssociations>
<Association Identifier=".pdf" ProgId="Acrobat.Document.DC" ApplicationName="Adobe Acrobat" />
</DefaultAssociations>
第三步,把这份精简后的 XML 放到域控制器的 SYSVOL 共享里——这个位置本身就是域内所有机器都能访问的复制存储,不需要另外维护一份文件服务器路径:
\\corp.local\SYSVOL\corp.local\scripts\RDS\DefaultApps_PDF.xml
第四步,建一条组策略指向这份文件:
Computer Configuration
> Policies
> Administrative Templates
> Windows Components
> File Explorer
> Set a default associations configuration file
把值设成 SYSVOL 里那个 XML 的完整路径,启用。
生效范围:登录时应用,不是实时生效
这条策略的应用时机是用户登录时,不是策略下发后立即对已登录会话生效。两台会话主机上跑一次 gpupdate /force 拉取新策略,之后新登录的用户(不管用哪个账号)打开 PDF 时都会直接走 Acrobat Reader,不需要任何人再手动点一次设置。
“点一次设置”和”对所有人永久生效”之间,隔着导出配置、精简、放进 SYSVOL、建组策略这四步
顺手记的一个体验优化
Acrobat Reader 首次启动时会弹一堆”试用 Acrobat Pro”之类的促销提示,多用户环境下每个人都要点掉一次很烦人。同一批维护里顺手用一段 PowerShell 脚本,在几个已知的注册表策略路径下(32 位/64 位各一套)批量写入 Adobe 官方支持的 FeatureLockDown 键值,关掉这些促销弹窗和内购引导——这类”通过注册表策略关闭软件自带营销弹窗”的做法,是多用户共享服务器上非常常见的收尾动作。
教训
- “默认打开方式”这类设置默认挂在用户账号上,不挂在机器上——多用户共享的服务器(RDS、VDI、教学机房)上,任何”点一次设置”的做法都不成立,必须找到能按机器/按域统一下发的路径;
- DISM 的默认应用关联导出会带出所有文件类型,记得精简到只保留真正要强制的那几条——直接把整份导出文件塞进组策略,等于把这台参考机器上所有文件类型的默认程序都当成强制标准推给所有人,容易带来意料之外的覆盖;
- SYSVOL 是放这类跨域分发配置文件的天然位置——它本身就是域控制器之间复制的共享,不需要额外考虑”文件服务器挂了怎么办”这类问题;
- 组策略下发的时机是登录时,不是策略生效的那一刻——测试这类策略时先确认对象机器已经拉取过策略(
gpupdate /force),再用一个新的登录会话验证,而不是在旧会话里干等。