
当快捷方式“深不可测”:Advertised Shortcuts
肥宅水水呀🌀 当快捷方式“深不可测”:Advertised Shortcuts
有没有遇到过这种情况?右键
.lnk→ 属性 → 快捷方式,结果“目标”一栏灰掉,只写着一个应用名(还不能改),连“打开文件所在的位置”也点不了 😶。像 Topaz Video AI 那样的例子其实很典型——你碰到的是一种特殊的快捷方式:Advertised Shortcut。![]()
💡 1)它到底是什么?
Advertised Shortcut 是由 Windows Installer(MSI) 创建并托管的快捷方式。
它不是直接指向某个 exe 路径,而是指向 MSI 产品或功能(Feature)描述。
当你点击它时,Windows Installer 会先检查关键组件是否完好,如果缺失,就自动触发修复或补装(这就是所谓的 self-healing 自修复)。
所以你偶尔会看到“正在准备安装/配置”的提示,就是这个机制在起作用 ⚙️。
更深入一点:这类快捷方式内部包含一个叫 Darwin Descriptor(达尔文描述符) 的东西,用来把快捷方式和 MSI 的产品/功能绑定。
因此它不像普通 .lnk 那样直接存储文件路径。
🎯 2)它为什么要这么设计?
核心目的有两个:
- 🔧 自修复:如果关键文件被误删或被安全软件隔离,下一次从快捷方式启动时会自动修复缺失组件。
- 📦 按需安装:部分功能标记为“首次使用时才安装”,快捷方式能在你点击时再触发安装(依靠 MSI 的 Feature/Component 机制)。
👀 3)怎么一眼认出它?
几个稳定的“体征”:
- “目标”灰掉,仅显示应用名,且不可编辑;
- “打开文件所在的位置”灰掉不可点;
- 常见于由套件或企业部署的 MSI 安装环境。
这些并不是快捷方式损坏的表现,而是 MSI 自身托管机制的结果。
当“目标框被禁用”,几乎可以确定这是 Advertised Shortcut。
🔍 4)真实的 exe 在哪?怎么找到?
因为属性里不给路径,我们可以“反查”运行中的进程 👇
📋 方法:任务管理器 → 详细信息
- 通过该快捷方式启动程序;
- 打开 任务管理器 → 详细信息;
- 右键表头 → 选择列 → 勾选 “映像路径名(Image Path Name)” 或 “命令行”;
- 就能看到正在运行的可执行文件的完整路径 🕵️♂️。
这个方法对绝大多数 Advertised Shortcut 都管用。
如果应用有额外的 Loader/Launcher,查看“命令行”列可以进一步确认真正的exe。
🔄 5)能把它改成“普通快捷方式”吗?
可以,但要看你希望怎么用:
🧍♂️ A. 个人使用:自己建一个普通 .lnk
- 按上面的方法找出真正的
exe; - 在桌面空白处右键 → 新建 → 快捷方式;
- 目标直接填入
exe的绝对路径(有启动参数可加上)。
这样创建的快捷方式不再触发 MSI 自修复,也能正常打开文件所在位置。
⚠️ 代价:失去了自修复/按需安装的保护。若文件缺失,程序可能直接报错而不会修复。
🧰 B. 从安装层面禁用 advertised
如果你能控制安装包或部署行为,可在安装时加入:
1 | DISABLEADVTSHORTCUTS=1 |
这样安装器会创建非广告式快捷方式。
部分打包工具(如企业部署环境或 WiX、Advanced Installer)也提供对应开关。
⚠️ 注意:这改的是安装行为,不是现有 .lnk 的属性。
🏗️ 6)这类快捷方式是怎么“被造出来”的?
在 MSI 数据库中,**Shortcut 表(Shortcut Table)**记录了快捷方式信息。
其中是否为广告式,取决于目标字段与 Feature/Component 的绑定关系。
当系统支持时,安装器就会生成 advertised 版本。
在企业打包或自动部署时(如 WiX、Advanced Installer),这类配置非常常见 🧱。
⚖️ 7)优缺点一览
优点:
- 🛠️ 自动自修复关键文件,减少“用户删错文件后应用崩溃”的风险;
- 🚀 支持按需安装,减小初始安装体积与时间。
缺点:
- ❌ 属性页中“目标/打开文件位置”常为灰色,不易扩展;
- 🎯 某些交互(如拖文件到快捷方式上打开)可能失效;
- 🔄 偶尔弹出“正在配置/修复”的对话框,体验略有割裂感。





