簡體   English   中英

NSIS安裝程序:檢測RequestExecutionLevel是否不起作用

[英]NSIS Installer: Detect if RequestExecutionLevel did not work

我有

RequestExecutionLevel admin 

在我的NSIS腳本中。

問題是,如果Windows UAC設置為“從不通知”,並且普通用戶運行安裝程序,則安裝程序嘗試以任何方式繼續進行而不征求權限,並且在嘗試修改目錄用戶的過程中途中途出現一條晦澀的消息有權。

我想做的是快速失敗,並立即顯示一個對話框,說“請以管理員身份運行”。

我嘗試添加發現的以下代碼段,但是除非用戶實際上是管理員(但不是具有管理員執行級別的普通用戶),否則它始終會失敗。

UserInfo::GetAccountType pop $0 ${If} $0 != "admin" MessageBox mb_iconstop "Administrator rights required!" SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED Quit ${EndIf}

沒有具有管理員執行級別的普通用戶。 當非管理員要提升權限時,他們必須使用管理員的憑據,新流程將以該管理員(而不是用戶)的身份運行。 這就是所謂的肩上高程...

使用UserInfo :: GetAccountType是正確的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM