RequestExecutionLevel highest
은 일반 사용자가 UAC 상호 작용없이 실행할 수있는 동안 관리자 그룹의 구성원을 상승시킵니다. 이 작업을 수행하는 것이 까다 롭고 특정 시나리오에서 UAC가 손상되어 올바르게 수행하기 위해 더 많은 코드가 필요하기 때문에이 예제는 향상되지 않습니다 ...
RequestExecutionLevel highest
Var InstMode
!include nsDialogs.nsh
!include Sections.nsh
!include LogicLib.nsh
Page Custom InstallModePageInit InstallModePageLeave
Page InstFiles
Section "StartMenu shortcuts" SEC_SM
; CreateShortcut ...
SectionEnd
Section "" SEC_UNINST
; WriteUninstaller & registry
SectionEnd
Function InstallModePageInit
nsDialogs::Create 1018
Pop $0
${NSD_CreateRadioButton} 20u 30u 100% 12u "Normal install"
Pop $1
${NSD_CreateRadioButton} 20u 50u 100% 12u "Portable install"
Pop $2
${If} $InstMode = 0
${NSD_Check} $1
${Else}
${NSD_Check} $2
${EndIf}
nsDialogs::Show
FunctionEnd
Function InstallModePageLeave
${NSD_GetState} $2 $InstMode
${If} $InstMode = 0
!insertmacro SelectSection ${SEC_SM}
!insertmacro SelectSection ${SEC_UNINST}
UserInfo::GetAccountType
Pop $0
${If} $0 != "Admin"
MessageBox mb_iconstop "Administrator privileges required, please restart installer to continue..."
Abort
${EndIf}
${Else}
!insertmacro UnselectSection ${SEC_SM}
!insertmacro UnselectSection ${SEC_UNINST}
${EndIf}
FunctionEnd
'최고'를 선택하면 강제로 관리자로 설치됩니다. 사용자는 admin입니다. 원래 질문은 시스템 설치를 원한다면 관리자가 설치 시간에 선택할 수있는 부분이 필요하다고 생각합니다. – teeks99
최고를 선택하면 관리자가 선택할 수 있습니다. UAC로 강제로 승격되지만 비 관리자 설치는 올바르게 작동해야합니다. – Anders