阻止程序请求提升的权限:以管理员身份运行

阻止程序请求提升的权限:以管理员身份运行

我有一个文件,每次运行它时都会要求管理员权限。如何禁用此功能以便在其他计算机上使用它?

答案1

尝试从首先设置环境变量的批处理文件启动该程序

set __COMPAT_LAYER=RunAsInvoker

然后检查它是否以原始用户身份运行(无需提升权限)。请注意,即使运行时不需要提升权限,也不意味着它会工作那样。

如果是,此程序需要提升的原因有三个

  • 在 Windows 中硬编码的魔法文件名(例如 setup.exe、install.exe)
  • 文件附近有一个需要提升权限的清单(somefile.exe有)somefile.exe.manifest
  • 文件包含需要提升权限的嵌入式清单

第一个问题很容易解决(重命名),第二个问题也很容易解决(删除清单),对于第三个问题,您必须使用资源提取工具提取清单(如果有,这将使数字签名无效)。

如果不,程序会检查权限并手动启动对话框(通过代码)。在这种情况下,如果您没有源代码来重新编译应用程序,那么您就没那么幸运了。

相关内容