
我使用的是 Windows 8.1 x64,我想在使用者登入時執行具有管理員權限的程式。
我嘗試製作程式的快捷方式,並在快捷方式或程式本身的屬性中勾選“以管理員身份運行”,並將快捷方式放入C:\Users\MyUser\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
或C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
,但勾選該框只會使其無效。
然後我透過Resource Hacker編輯該程式來修改其清單,以便該程式需要管理員權限。這也使得啟動目錄下的捷徑無效。所以在此之後,我嘗試添加該程序,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
但它也不起作用。
我到底如何才能在使用者登入時以管理員權限執行程式?
答案1
最好的方法(如果您不僅希望以管理員身分執行而且不想出現 UAC 提示,也是唯一簡單的方法)是建立排程任務。在那裡,您可以指定要在哪個用戶下運行它,但也可以指定它應該「以最高權限運行」。這可能是您真正想要的,因為複選框按鈕「以管理員身份運行」確實會觸發 UAC 提示,而不是真正使用管理用戶。如果您還將觸發器指定為“使用者登入時”,則它應該具有與使用啟動或運行鍵相同的效果。
或者,您可以使用帶有 /savecred 選項的 runas 來儲存另一個使用者的密碼一次並將其永久緩存,但它不能解決 UAC afaik。
答案2
建立類似 appStart.cmd 的文件,其中包含:
start "" %1
註冊表中的第二個您必須添加到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
鍵值對
鍵:“應用程式名稱”
值:“appStart.cmd 路徑”“myapp.exe 路徑”
這樣,在 Windows 啟動時,它將從命令提示字元呼叫您的應用程序,並請求以管理員身份運行的權限。接受命令提示字元關閉後,您的應用程式將以管理員權限執行。