2013-05-04 256 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

相關問題