【问题标题】:Stop program from running as admin阻止程序以管理员身份运行
【发布时间】:2021-11-10 19:52:12
【问题描述】:

当我双击图标时,我有一个程序以提升的权限运行(任务管理器显示提升 = 是)。我不希望它以提升的权限运行,但我不知道如何关闭它。

我检查了以下地方:

1.)右键单击快捷方式->高级->以管理员身份运行未选中

2.)右键单击快捷方式->兼容性->以管理员身份运行未选中

3.)右键单击exe -> 兼容性 -> 以管理员身份运行 未选中

我尝试了以下命令:

1.)runas /trustlevel:0x20000 "newapp.exe"

2.)runas /user:domain\username "newapp.exe"

无论我做什么或检查应用程序仍然以提升的权限运行。非常感谢有关如何解决此问题的任何想法。

【问题讨论】:

  • 如果您有 Visual Studio,请在 exe 上使用“打开文件...”。选择RT_MANIFEST 文本块,并将其粘贴到记事本中。然后您可以查看它是否有标记为“requireAdministrator”的 UAC 清单。
  • @ChuckWalbourn 您说的“打开文件...”选项在哪里?
  • 这个程序是你写的还是这个问题属于超级用户?
  • @Anders 我没有写这个程序。该程序由 Sybase/Appeon 编写。那么我应该把它移到 SuperUser 吗?
  • 这看起来像是某种开发工具?我猜你是否想移动它取决于你,SU 不太可能提供更好的答案。无论哪种方式,你最好的办法是实际询问作者......

标签: windows-10 uac


【解决方案1】:

Windows 决定 UAC 提升新进程的原因至少有 4 个。

  • manifest 中的requestedExecutionLevel 设置为requireAdministratorhighestAvailable
  • 安装程序检测。
  • 快捷方式或 .exe 的兼容性选项卡设置了某些属性(以 Windows XP 等方式运行)
  • ShellExecute 是用 RunAs 动词调用的。

应用程序清单嵌入在 .exe 或它旁边名为“applicationname.exe.manifest”的文件中。您可以使用Manifest ViewResource Hacker 等工具探索嵌入式清单。

如果您没有自己编写应用程序,您真的知道如果不提升它是否还能工作吗?你可以尝试在cmd.exe中force it

set __COMPAT_LAYER=RunAsInvoker
c:\path\theapp.exe

【讨论】:

  • 有关 Win32 exe 清单的更多信息,请参阅this blog post
  • @Anders 下面是工具的输出: - PowerBuilder Manifest - -
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-23
  • 2011-12-29
  • 2013-05-31
  • 2011-09-24
  • 2010-12-19
相关资源
最近更新 更多