Windows 7 如何确定应用程序提示提升的原因

Windows 7 如何确定应用程序提示提升的原因,windows-7,uac,elevation,Windows 7,Uac,Elevation,当启动我的可执行文件时,Windows会提示提升,而不应该提升 我怎样才能知道为什么Windows会在启动时提示我提升可执行文件 注意事项: 没有清单资源(请求管理员,或其他) 没有清单文件 兼容性选项卡(适用于所有用户,仅适用于我)未选中“以管理员身份运行” 如何确定我的应用程序提示提升的原因?在没有清单的情况下,通常的原因是名称启发式(例如,您的文件名为setup.exe)和组策略(您可能在“此程序可能未按预期运行”对话框后意外设置) 为了防止这种情况,只需使用asInvoker应用清单

当启动我的可执行文件时,Windows会提示提升,而不应该提升

我怎样才能知道为什么Windows会在启动时提示我提升可执行文件

注意事项:

  • 没有清单资源(请求
    管理员
    ,或其他)
  • 没有清单文件
  • 兼容性选项卡(适用于所有用户,仅适用于我)未选中“以管理员身份运行”

如何确定我的应用程序提示提升的原因?

在没有清单的情况下,通常的原因是名称启发式(例如,您的文件名为setup.exe)和组策略(您可能在“此程序可能未按预期运行”对话框后意外设置)

为了防止这种情况,只需使用asInvoker应用清单(嵌入式或外部)。然后你将不再关心这些启发,你将不会提升


我知道我在上面评论了这一点,但我需要重复一下:您的代码试图做的事情永远不会导致提升。从未。除非你被提升否则不会工作的东西在你没有提升的时候失败了。它不会提升您的地位。

是否有任何需要管理访问权限的文件I/O操作?(在Windows/Program Files文件夹中),注册表?您的代码尝试执行的操作永远不会导致提升。最糟糕的是,我创建了一个外部
MyApp.exe.manifest
文件,声明
asInvoker
,它仍然会提示。然而,我重命名了可执行文件,它不再这样做了。我仍然希望在某个地方找到一个日志,说明Windows为什么认为应用程序需要升级(如
requireAdministrator
、用户兼容性请求、所有用户兼容性请求、设置启发式检测和“杂项”)可能是与名称相关联的兼容请求,因此更改名称会破坏请求。如果它们超过了舱单,我也不会感到惊讶。你可以用它来建立“啄食顺序”——我还没有看到它写在任何地方。