관리자 권한으로 실행중인 Inno Setup 설치 프로그램에서 현재 로그인 한 사용자 용 애플리케이션 설치

마틴 프리 크릴

(Inno Setup) 설치 프로그램 생성에 대한 매우 일반적인 질문은 상승 된 / 관리자 권한으로 실행되는 설치 프로그램에서 특정 사용자 (현재 로그인 한 사용자)의 프로필에 액세스 / 수정하는 것입니다.

이렇게하면 많은 단점이 있으며 오류가 발생하기 쉽습니다.

모든 기존 답변은 문제의 일부 (레지스트리, 파일, 바탕 화면 아이콘 등)를 다룹니다. 이 질문의 목적은 가능한 모든 접근 방식을 사용하여 전 세계적으로 문제를 해결하는 답변을 수집하는 것입니다.

마틴 프리 크릴

Inno Setup에는 상승 된 / 관리자 권한으로 실행되는 설치 프로그램에서 사용자 환경에 액세스하거나 사용자 환경을 수정할 수있는 기본 제공 메커니즘이 없습니다.

이를 달성하기위한 모든 시도는 다음과 같은 트릭에 의존합니다.

신뢰할 수는 없지만 적어도 다음과 같은 이유가 있습니다.

  • 현재 사용자에게 관리자 권한이없는 경우 설치 관리자 UAC 프롬프트에서 관리자 자격 증명을 입력해야합니다. 그러면 설치 프로그램이 다른 사용자로 전환됩니다. 따라서 {user*}상수는 설치를 시작한 사용자를 참조하지 않습니다.

  • 사용자가 상승 된 권한으로 설치 프로그램을 명시 적으로 실행하는 경우 (예 : 설치 프로그램을 마우스 오른쪽 단추로 클릭하고 "관리자 권한으로 실행 " 선택 또는 다른 상승 된 응용 프로그램 (파일 관리자)에서 실행) runasoriginaluser플래그 또는 ExecAsOriginalUser기능에 대한 "원래 사용자" 가 이미 상승됩니다. .

  • 기업 환경에서는 응용 프로그램을 사용할 사용자가 아닌 관리자가 응용 프로그램을 설치합니다.


이 문제에 대한 유일한 올바른 일반적인 해결책은 사용자 환경의 설정을 실제 사용자 세션으로 만 연기하는 것입니다.

가장 쉬운 방법은 처음 실행할 때 응용 프로그램 자체가 설정을 수행하도록하는 것입니다.

설치 프로그램은 응용 프로그램이 설정에 사용할 수있는 공유 파일 만 배포 할 수 있습니다.

어떤 이유로 든 애플리케이션을 수정할 수없는 경우 모든 계정을 반복하고 수정해야합니다.

설치 후에 만 ​​생성 된 계정에 설정이 배포되도록해야하는 경우 Inno Setup에서 향후 신규 사용자를 포함하여 각 사용자에 대한 파일을 설치하는 방법을 참조하십시오 .


로그인 한 사용자에 대해서만 응용 프로그램이 설정된다는 사실에 만족한다면 다음을 사용하십시오 PrivilegesRequired=lowest.

[Setup]
PrivilegesRequired=lowest

그러면 {user*}상수가 현재 사용자의 폴더를 올바르게 참조합니다.

설치의 일부 하위 작업에 대해 여전히 관리자 권한이 필요한 경우 하위 작업에 대해서만 권한 상승을 요청할 수 있습니다.

관리자 권한으로 설치 프로그램을 명시 적으로 실행하여 사용자가이를 중단하지 못하도록하려면 다음을 참조하십시오.

또는 현재 Windows 로그온 세션의 계정이 무엇인지 프로그래밍 방식으로 확인할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사