다른 컨텍스트에서 MSI (WIX)에서 일반 사용자로 프로세스를 실행합니다.

StackOverflow https://stackoverflow.com/questions/406133

  •  03-07-2019
  •  | 
  •  

문제

회사 내에서 사용하는 일부 소프트웨어에 대한 설치 프로그램을 구성하려고합니다.

설치 프로그램은 SMS를 통해 대상 기계로 밀고 다음 단계를 수행합니다.

  1. 현재 앱의 현재 실행중인 인스턴스를 종료합니다 (앱은 유틸리티이므로 사용자에게 영향을 미치지 않습니다).
  2. 이전 버전을 제거하십시오.
  3. 업데이트 된 버전을 설치하십시오.

우리가 원하는 것은 3 단계가 완료되면 설치된 실행 파일을 시작하는 것입니다 (SMS 작업이 실행되는 시스템 계정이 아니라 현재 로그인 한 사용자로서).

다음과 같이 사용자 정의 작업을 추가하려고했습니다.

<CustomAction Id="Relaunch" Impersonate="yes" Return="asyncNoWait" FileKey="AppExeFile" Execute="commit" ExeCommand="acm" />

그리고 InstallExecuteSequence 요소 나는 다음과 같습니다.

<Custom Action="Relaunch" OnExit="success" />

그러나 우리가 이것을 시도 할 때, SMS 작업이나 관리자로 실행하는 경우 아무 일도 일어나지 않습니다 (예 : 앱은 다시 시작되지 않습니다).

제안이 있습니까?

도움이 되었습니까?

해결책 2

불행히도 이것은 이것이 불가능한 것 같습니다 - 나는 코드에 필요한 것을 수행하는 MSI에 대한 확장을 작성하는 옵션이라고 생각합니다. 약간의 보상을위한 많은 작업처럼 보입니다.

우리가 결정한 것은 SMS를 사용하여 사슬 패키지를 보내는 것입니다. 첫 번째 패키지는 응용 프로그램을 실행하는 기본 패키지입니다.

이것이 다른 사람을 돕기를 바랍니다 :)

다른 팁

제가 생각해 낸 솔루션은 로그인시 실행 레지스트리 키를 사용하여 유틸리티를 시작하고 현재 사용자가 "시스템"인 경우 설치 중 유틸리티 시작을 방지하는 것입니다. 전개. 그러나 일부 고객은 SMS를 사용하고 있으며 이는 SMS를 사용하는 솔루션이었습니다.

Vista/Server 2008 UAC와 유사한 문제, 제가 생각해 낸 유일한 신뢰할 수있는 솔루션은 사용자가 유틸리티에 로그인 할 때 올바른 사용자 컨텍스트에 따라 유틸리티에 다시 로그인 할 수 있도록 재부팅을 예약하는 것입니다.

나는 상당한 연구를하고 MSI 문서를 살펴 보았으며 다른 사용자로서 배경 유틸리티를 시작하는 것이 실제로 불가능한 것으로 보인다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top