2016-06-18 6 views
0

많은 Windows 프로그램은 관리 프롬프트없이 시작할 때 업데이트를 실행할 수 있습니다. 마찬가지로, 내 프로그램은 사용자 입력없이 스스로 업데이트해야합니다. 로그인 한 모든 사용자는 프로그램을 사용할 수 있어야합니다.관리자 프롬프트없이 프로그램 시작시 Free Pascal 프로그램을 자동으로 업데이트합니다.

내 프로그램은 이미 새 업데이트를 찾아서 다운로드하여 실행할 수 있지만 NSIS 설치 관리자/업데이트 프로그램에는 관리자 권한이 필요합니다.

Free Pascal과 NSIS를 사용하여 이것을 구현하려면 모든 사용자에게 설치 디렉토리에 대한 액세스 권한을 부여하기에는 무엇이 필요합니까?

+1

서비스를 설치하여 업데이트를 수행하십시오. 또는 표준 사용자가 작성할 수있는 디렉토리에 설치하십시오. –

+0

@David 정확히 "서비스"란 무엇을 의미합니까? 예를 들어 주시겠습니까? –

+1

서비스가 무엇인지 모르는 경우 보안상의 이유로 서비스를 작성하면 안됩니다. 두 번째 옵션을 선택하십시오. – Marged

답변

0

응용 프로그램이 그렇게 중요합니까? 얼마나 자주 업데이트를 푸시 할 계획입니까?

대부분의 응용 프로그램은 업데이트를 설치해야 할 때마다 UAC로 올라갈 수 있습니다.

"UAC를 우회해야"한다고 생각하시면 Firefox의 기능을 수행 할 수 있습니다. NT Service을 설치하십시오. 설치 프로그램에서이 서비스를 시작하지 않지만 GetNamedSecurityInfo + SetNamedSecurityInfo으로 전화하여 Everyone 그룹에 대한 SERVICE_START 액세스를 ACL에 추가 할 수 있습니다. 일반 사용자로 실행중인 응용 프로그램은 업데이트가 있고 서비스가 업데이트를 수행 할 때이 서비스를 시작할 수 있습니다.

서비스가 시스템에 대한 전체 액세스 권한으로 실행되기 때문에 여기에는 몇 가지 위험이 있으므로 누군가가 해낼 수있는 경우 백도어를 사용하기가 쉽지 않도록 업데이트에 서명해야합니다 중간 공격에있는 남자.

개인적으로 프로그램이 너무 크지 않은 경우 사용자 단위 설치를 고려해야한다고 생각합니다.