(Inno Setup) 설치 프로그램 생성에 대한 매우 일반적인 질문은 상승 된 / 관리자 권한으로 실행되는 설치 프로그램에서 특정 사용자 (현재 로그인 한 사용자)의 프로필에 액세스 / 수정하는 것입니다.
이렇게하면 많은 단점이 있으며 오류가 발생하기 쉽습니다.
모든 기존 답변은 문제의 일부 (레지스트리, 파일, 바탕 화면 아이콘 등)를 다룹니다. 이 질문의 목적은 가능한 모든 접근 방식을 사용하여 전 세계적으로 문제를 해결하는 답변을 수집하는 것입니다.
Inno Setup에는 상승 된 / 관리자 권한으로 실행되는 설치 프로그램에서 사용자 환경에 액세스하거나 사용자 환경을 수정할 수있는 기본 제공 메커니즘이 없습니다.
이를 달성하기위한 모든 시도는 다음과 같은 트릭에 의존합니다.
runasoriginaluser
플래그 또는 ExecAsOriginalUser
기능 . 몇 가지 예 :
로그인 한 사용자의 레지스트리 수정 또는 액세스 :
Inno Setup 로그인 한 사용자 (관리자 아님)의 레지스트리 키 생성 또는
관리자로 실행중인 Inno Setup 설치 프로그램에서 로그인 한 사용자의 레지스트리 HKCU를 읽는 방법
액세스 AppData
로그인 한 사용자의 폴더 :
이노 설정 항상 관리자의의 AppData 디렉토리에 설치 또는
로그인 한 사용자에 대한 {LOCALAPPDATA}을 사용하여 이노 설치 또는
이노 설정 - 관리자 문서의 풋 사용자 파일 .
또는 {user*}
상수 사용 .
신뢰할 수는 없지만 적어도 다음과 같은 이유가 있습니다.
현재 사용자에게 관리자 권한이없는 경우 설치 관리자 UAC 프롬프트에서 관리자 자격 증명을 입력해야합니다. 그러면 설치 프로그램이 다른 사용자로 전환됩니다. 따라서 {user*}
상수는 설치를 시작한 사용자를 참조하지 않습니다.
사용자가 상승 된 권한으로 설치 프로그램을 명시 적으로 실행하는 경우 (예 : 설치 프로그램을 마우스 오른쪽 단추로 클릭하고 "관리자 권한으로 실행 " 선택 또는 다른 상승 된 응용 프로그램 (파일 관리자)에서 실행) runasoriginaluser
플래그 또는 ExecAsOriginalUser
기능에 대한 "원래 사용자" 가 이미 상승됩니다. .
기업 환경에서는 응용 프로그램을 사용할 사용자가 아닌 관리자가 응용 프로그램을 설치합니다.
이 문제에 대한 유일한 올바른 일반적인 해결책은 사용자 환경의 설정을 실제 사용자 세션으로 만 연기하는 것입니다.
가장 쉬운 방법은 처음 실행할 때 응용 프로그램 자체가 설정을 수행하도록하는 것입니다.
설치 프로그램은 응용 프로그램이 설정에 사용할 수있는 공유 파일 만 배포 할 수 있습니다.
어떤 이유로 든 애플리케이션을 수정할 수없는 경우 모든 계정을 반복하고 수정해야합니다.
설치 후에 만 생성 된 계정에 설정이 배포되도록해야하는 경우 Inno Setup에서 향후 신규 사용자를 포함하여 각 사용자에 대한 파일을 설치하는 방법을 참조하십시오 .
로그인 한 사용자에 대해서만 응용 프로그램이 설정된다는 사실에 만족한다면 다음을 사용하십시오 PrivilegesRequired=lowest
.
[Setup]
PrivilegesRequired=lowest
그러면 {user*}
상수가 현재 사용자의 폴더를 올바르게 참조합니다.
설치의 일부 하위 작업에 대해 여전히 관리자 권한이 필요한 경우 하위 작업에 대해서만 권한 상승을 요청할 수 있습니다.
관리자 권한으로 설치 프로그램을 명시 적으로 실행하여 사용자가이를 중단하지 못하도록하려면 다음을 참조하십시오.
또는 현재 Windows 로그온 세션의 계정이 무엇인지 프로그래밍 방식으로 확인할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다