You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Server 2016中替换MSPaint为mstsc.exe作默认图片查看器的咨询

问题:修改Windows Server 2016中图片文件默认打开程序为远程应用

问题背景

我正在编写脚本,为Windows Server 2016远程桌面会话主机的不同文件类型分配远程应用作为默认打开程序。脚本对无默认程序的文件类型有效,但修改默认图片查看器时,仅将目标应用添加为用户的“打开方式”选项,双击文件资源管理器中的图片仍默认使用MSPaint。

当前.jpg文件的注册表结构

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg]

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\OpenWithList]
"a"="mspaint.exe"
"MRUList"="ab"
"b"="mstsc.exe"

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\OpenWithProgids]
"jpegfile"=hex(0):

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\UserChoice]
"Hash"="Qw/OEl5uE2E="
"ProgId"="PBrush"

疑问

我能否直接删除.jpg对应的OpenWithList和UserChoice注册表项,替换为以下内容?

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\OpenWithList]
"a"="mstsc.exe"
"MRUList"="a"

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\UserChoice]

这样操作后,资源管理器能否直接用mstsc.exe打开jpg文件,而不提示用户选择程序?


解答

直接删除并替换成你给出的内容无法实现预期效果,核心原因如下:

  1. UserChoice项不能留空:这个键是Windows记录用户指定默认程序的核心项,必须包含合法的ProgId和对应的Hash值才能生效。Windows会校验Hash的合法性,空的UserChoice会被系统忽略,此时系统会 fallback 到OpenWithProgids中的默认关联(即jpegfile对应的MSPaint)。
  2. OpenWithList不控制默认程序:这个项仅记录用户用过的打开程序列表,不决定双击文件时的默认启动程序,真正控制默认行为的是UserChoice中的ProgId,以及该ProgId对应的程序关联配置。

正确操作步骤

要让mstsc.exe成为.jpg的默认打开程序,需按以下流程操作:

  1. 创建mstsc.exe对应的ProgId关联
    先为mstsc.exe创建专属ProgId,并配置打开命令:
    [HKEY_CURRENT_USER\Software\Classes\RemoteDesktop.Session]
    @="Remote Desktop Session"
    
    [HKEY_CURRENT_USER\Software\Classes\RemoteDesktop.Session\shell\open\command]
    @="\"C:\\Windows\\System32\\mstsc.exe\" \"%1\""
    
  2. 合法更新UserChoice项
    删除原有UserChoice项后,不能手动填写空项或自定义Hash——Hash是Windows根据ProgId和文件扩展名生成的校验值,必须通过系统API(如IApplicationAssociationRegistration::SetAppAsDefault)或官方命令工具生成。手动修改的Hash会被判定无效,导致默认设置不生效。
  3. 更新OpenWithList(可选)
    将mstsc.exe设为OpenWithList的第一项,方便用户在“打开方式”中快速选择,但这不是影响默认行为的必要操作。

更可靠的脚本化方案

避免手动处理注册表Hash问题,可直接使用命令行工具完成配置:

assoc .jpg=RemoteDesktop.Session
ftype RemoteDesktop.Session="C:\Windows\System32\mstsc.exe" "%1"

内容的提问来源于stack exchange,提问作者user319862

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 01:06:30