Windows 如果文件名称包含 "update",是否强制文件进行 UAC 提升?

Windows force UAC elevation for files if their names contain "update"?

我正在使用 Windows 7 和 Microsoft Visual Studio 2010。

我在 WinMain() 中创建了一个 MessageBox() 调用的简单项目。项目名称为 "update",因此 EXE 文件的名称为 update.exe。我在链接器设置中关闭了清单生成。但是当我尝试在 Visual Studio 中开始调试时,它说我的应用程序需要提升。

我决定通过在 Windows 资源管理器中单击它来启动应用程序,但它仍然需要管理员权限。我将其重命名为 update12345.exe12345update12345.exe,但它仍然需要提升。

但是当我将它重命名为 12345.exe 时,它在不请求管理员权限的情况下工作得很好!我认为 Windows 需要提升名称包含 "update" 子字符串的所有文件。因此,我获取了另一个文件(debugview.exe 来自 SysInternals DebugView)并将其重命名为 update.exe - 但它在没有提升的情况下工作。

造成这种奇怪行为的原因是什么?

如果您的应用程序未在其清单中包含 requestedExecutionLevel,安装程序检测技术会检查其名称是否包含 "update"、"install" 等,以检测是否是安装程序应用程序。 这是因为您的应用在重命名为“update”时需要 UAC,而其他没有清单的应用则不需要。