【问题标题】:How to "Auto Run" a program w/o having the admin rights?如何在没有管理员权限的情况下“自动运行”程序?
【发布时间】:2012-04-08 14:56:30
【问题描述】:

在我们的软件中,用户可以选择在系统启动时使应用程序“自动运行”。但是,用户可能没有管理员权限。在这种情况下,他将无权更新注册表。我已经尝试了以下两种没有管理员权限的路径,但访问被拒绝。

HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run
HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run

那么,无论平台(Win7、Vista、XP 等)如何,我有什么方法可以“自动运行”没有管理员权限的程序?谢谢!

【问题讨论】:

  • 开始菜单中的“启动”文件夹会自动运行您。不确定您是否需要在此处放置快捷方式的权限。
  • 谢谢。就我个人而言,我不喜欢在该文件夹中添加/删除快捷方式,尤其是在代码中。此外,它可能只是在下面的注册表中添加了一个条目,无论如何都需要权限。
  • 启动文件夹中的条目更加“用户友好”,因为用户可以通过使用 Windows 开始菜单轻松看到已添加的内容。将某些东西放入CurrentVersion\Run 对我来说有一些“后门”的味道(至少如果没有明确询问用户)。只有少数人会使用 regedit 检查注册表中的此类条目。
  • 嗯,你可以在其他地方写入开始菜单...
  • @a_horse_with_no_name,如果用户检查自动运行程序,他应该知道。无论是保存在注册表还是其他地方,都是大多数用户不会关心的实现细节。嗯,你是对的。如果有其他方法,我宁愿根本不碰注册表。使用 UAC 非常困难。

标签: windows registry


【解决方案1】:

您不需要管理员权限来写入 HKCU\Software\Microsoft\Windows\CurrentVersion - ACL 允许当前用户读取和写入该密钥。

【讨论】:

  • 没有太多答案...也许这会促使我们问 OP 是如何做到的?他可能做错了。你会推荐什么方法?
  • 我了解到 HKCU 下的大部分密钥都可以在没有管理员权限的情况下访问,但它是逐个密钥确定的。当我尝试在 HKCU\Software\Microsoft\Windows\CurrentVersion\Run 中手动添加一个条目时,它告诉我没有权限。
  • 该密钥的默认安全性是允许用户访问。必须有人更改了该密钥的默认安全性以阻止用户访问。您需要弄清楚是谁更改了默认安全并要求他们停止。
【解决方案2】:

对此最合理的解释是您的防病毒软件阻止了您写入此密钥的尝试。是的,有人可能已将 ACL 应用于该密钥以拒绝您的写访问权限,但这不太可能。另一方面,防病毒软件对修改该特定密钥的程序例外处理是很常见的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 2022-09-28
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    相关资源
    最近更新 更多