2017-05-12 22 views
0

현재 사용자에 대해서만 응용 프로그램을 설치하는 NSIS 설치 프로그램/제거 프로그램이 있습니다. HKCU에는 응용 프로그램을 제어판에 표시하기 위해 레지스트리 기록이 있습니다. 그것은 완벽하게 잘 작동합니다. 그러나 제어판에서 응용 프로그램을 제거하려고하면 관리자 권한 팝업 상자 (AUC 항목)가 팝업으로 나타나고 관리자로 제거 프로그램이 실행됩니다. 따라서 HKCU는 사용자 계정이 아닌 관리자 계정과 관련이 있습니다. 이런 식으로 사용자는 관리 응용 프로그램을 '제거'할 수 있습니다! 사용자가 관리자 권한없이 응용 프로그램을 제거 할 수 있도록 허용해야합니다.NSIS를 통해 제거 할 때 Windows 제어판에 관리자 권한이 필요합니다.

이미 사용 중입니다. !include MultiUser.nsg 외. 또한 사용자 수준 (관리자 권한이 필요하지 않음)의 제어판에서 일부 임의/기본 MS 응용 프로그램을 제거 할 수 있음을 알고 있으므로 가능하다는 것을 알고 있습니다.

+0

Windows 버전? 이것이 Windows 10 인 경우 설정 앱을 사용하고 있습니까? – Anders

+0

@Anders 예, Win10입니다. 하지만 "설정 앱 사용"은 무엇을 의미합니까? – Spiralwise

+0

@HarryJohnston 예, 제거 프로그램을 직접 사용할 때의 작업입니다. 하지만 일반 응용 프로그램처럼 제어판을 사용할 수 있도록하고 싶습니다. – Spiralwise

답변

0

기존 제어판의 이전 "프로그램 및 기능"에서 제거하면 UAC 프롬프트없이 정상적으로 작동합니다. 난 그냥이 포함 된 Windows 10.0.16184 테스트 : :

InstallDir $Temp\Test 
RequestExecutionLevel user 

Section 
SetOutPath "$InstDir" 
WriteUninstaller "$InstDir\Uninst.exe" 
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS_W10_HKCU_Test" "DisplayName" "NSIS W10 HKCU Test" 
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS_W10_HKCU_Test" "UninstallString" '"$InstDir\Uninst.exe"' 
SectionEnd 

Section Uninstall 
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS_W10_HKCU_Test" 
Delete "$InstDir\Uninst.exe" 
RMDir "$InstDir" 
SectionEnd 

Classic ARP

는 그러나 knownissue 당신은 설정 앱에서 동일한 작업을 수행하는 경우, 심지어 HKCU의 설치 제거에 대한 UAC 권한 상승을 강제있다 Modern ARP

설정 앱의이 문제는 2 년 전부터 존재했지만 Microsoft가 신경 쓰지 않는다고 생각합니다.