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

如何通过命令行/脚本触发系统级默认程序设置对话框?

触发系统级文件扩展名默认设置对话框的脚本方案

核心解决方案:调用Shell32的OpenAs_RunDLL函数

直接通过rundll32.exe调用shell32.dll中的OpenAs_RunDLL导出函数,并指定目标扩展名,就能弹出带有「始终使用此应用打开」选项的系统级设置对话框——这正是文件属性窗口里「更改...」按钮的底层逻辑,无需管理员权限,完全适配你的需求。

Batch脚本示例

@echo off
:: 替换为需要修复的目标扩展名,比如 .pdf、.txt
set "TARGET_EXT=.pdf"
rundll32.exe shell32.dll,OpenAs_RunDLL %TARGET_EXT%

PowerShell脚本示例

# 替换为需要修复的目标扩展名
$targetExt = ".pdf"
Start-Process -FilePath "rundll32.exe" -ArgumentList "shell32.dll,OpenAs_RunDLL $targetExt"

关于OpenWith.exe的说明

你之前尝试的OpenWith.exe <文件名>仅会触发单次打开的临时选择窗口,因为OpenWith.exe本身没有公开参数支持直接调出系统级默认设置对话框。而rundll32.exe shell32.dll,OpenAs_RunDLL才是官方提供的、用于唤起扩展名默认设置入口的标准方式。

效果验证

运行脚本后会弹出Windows标准的「打开方式」对话框,勾选「始终使用此应用打开[扩展名]文件」并选择正确程序,即可完成系统级的扩展名关联设置——此操作仅需用户自身权限,不受GPO限制(Windows默认允许普通用户修改个人默认程序关联)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 09:39:59