我NSIS安裝程序:檢測是否RequestExecutionLevel沒有工作
RequestExecutionLevel admin
在我NSIS腳本。
問題是,如果將Windows UAC設置爲「從不通知」並且普通用戶運行安裝程序,則安裝程序會嘗試繼續進行操作,而不會詢問權限,並在嘗試修改時中途顯示一條模糊的消息目錄用戶沒有權限。
我想要做的就是快速失敗並立即顯示一個對話框,說「請以管理員身份運行」。
我已經嘗試添加以下snippit我發現,但它總是失敗,除非用戶實際上是一個管理員(但不具有管理員執行級別的普通用戶)。
UserInfo::GetAccountType pop $0 ${If} $0 != "admin" MessageBox mb_iconstop "Administrator rights required!" SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED Quit ${EndIf}
Windows版本?您的註冊表中的ConsentPromptBehaviorAdmin和ConsentPromptBehaviorUser在HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System中的價值是什麼? – Anders
我明白現在發生了什麼。即使用戶使用右鍵單擊 - >以管理員身份運行,由於UAC是「從不通知」,它仍然會像普通用戶一樣運行該程序。我有的代碼很好,但我要更改錯誤消息以表明這可能是他們的問題。 – Will