2013-05-04 156 views
1

我想知道我是否可以在没有管理员权限的情况下运行程序? 我想从System32运行程序regedit。 我也尝试将它复制到USB上并从那里运行,并且都没有工作。 有人可以帮助我使用C#脚本运行regedit吗?没有管理员权限的情况下访问注册表

+3

你不可能这样做。这是系统级特权。 – 2013-05-04 03:36:34

+0

@JW웃它是如何成为“系统级特权”?运行regedit.exe可能会被组策略阻止,更可能的是,不可靠的UAC交互。 (但是,我不认为reg.exe会受到任何影响。) – user2246674 2013-05-04 04:00:49

+0

@ user2246674所以你的意思是,你可以在没有管理员权限的情况下运行'RegEdit'? – 2013-05-04 04:02:41

回答

8

回答:不,您不能运行没有管理权限的regedit.exe。

你可以做什么,是用C#,使用,可以让你的注册表,虽然访问 http://msdn.microsoft.com/en-us/library/microsoft.win32.registry.aspx

记住,您的预建库,你只具有读HKEY_LOCAL_USER /写访问,和readonly到一切。

+0

这个问题具体询问运行'regedit'。它并没有要求通过任何其他方式访问注册表。 – 2013-05-04 04:18:01

+7

这就是为什么我把“答案”,以及提供替代:) – sircapsalot 2013-05-04 04:18:41

+0

https://superuser.com/questions/171917/force-a-program-to-run-without-administrator-privileges-or-uac展示了如何在不升级的情况下运行应用程序(包括注册表)。 – 2017-05-10 07:54:29

1

现代REGEDIT.EXE(即Vista的+ 与UAC上)有不幸的概念,它必须运行“以管理员身份” - 我不知道这是否是技术上是真实的,它必须是一个“管理员” ,但是this issue is a result of UAC和高程失败。

这是一个愚蠢的人为限制,因为用户可以访问(只读)大多数注册表位置并写入HKCU。但是,除了禁用需要管理员权限并且可能不合适的UAC之外,我不知道如何绕过regedit.exe这个限制。

  1. 应该可以使用reg.exe(它随Windows一起发行),尽管没有好的用户界面。
  2. 在这个愚蠢的UAC提升/限制不适用的情况下,使用第三方注册表编辑器/工具。
  3. 可能使用Windows XP的regedit.exe ,这不是“UAC aware” - YMMV。
  4. 正如sircapsalot所建议的那样,使用托管API - 如果已经使用C#,那么它是完美的。
+0

这个问题具体询问运行'regedit'。它并没有要求通过任何其他方式访问注册表。 – 2013-05-04 04:18:29

+4

@KenWhite这就是为什么前两个段落解决了这个问题,是什么原因造成的,还有一个关于这个主题的额外阅读的链接。随意忽略最后的建议。 – user2246674 2013-05-04 04:39:48

+0

好的谢谢,但我怎么会在我的C#应用​​程序中使用REG.exe而无需打开新窗口? – 2013-05-04 04:41:13

1

通过以非管理员身份启动它,您可以在不具有管理权限的情况下运行regedit。如果以管理员用户身份启动它,则会得到UAC提示,但如果以普通用户身份启动该提示,则不会收到提示,而且HKEY_CURRENT_USER之外的大部分内容都是只读的。

regedit.exe标有<requestedExecutionLevel level="highestAvailable" uiAccess="false" />,只有当前用户是管理员时,它并不总是要求管理员权限。

如果你真的需要运行regedit因为没有管理员权限的管理员用户,根据this thread,您可以使用Compatibility Administrator工具来配置你的系统忽略了requestedExecutionLevel

+0

这在Windows> = Vista上不正确。请参阅@ user2246674答案。 – Echsecutor 2016-08-10 06:26:44

+0

@Echsecutor你试过了吗?您是否创建了非管理员帐户并在该用户下运行了regedit?我很确定你没有。 – hvd 2016-08-10 06:44:44

+0

是的,我做过。您无法从非管理员帐户在Windows 7 Enterprise SP 1上运行regedit。它会立即要求提升。 – Echsecutor 2016-08-22 11:07:24

相关问题