2011-09-13 2 views
0

우리의 소프트웨어를 업데이트하기 위해 업데이트 레벨과 다른 업데이트 소스가 포함 된 VB6 업데이트 프로그램을 사용했습니다. 필요한 파일을 업데이트 소스에서 로컬 대상 (C : \ program files \ company \ product)으로 복사했습니다.관리 권한을 가진 서비스에 의한 서비스 또는 시작 프로그램

VB6 프로그램은 서비스 도우미 (srvany 또는 유사)를 서비스로만 실행할 수 있으며 지정된 폴더에서 새 파일을 변경하거나 추가 할 수있는 권한이 없습니다. 그러나 .NET 프로그램조차도 서비스에 대한 관리자 자격 증명을 설정하는 경우에만이를 수행하는 데 필요한 권한이 없습니다.

클라이언트가 관리자 자격 증명으로 서비스를 설정하지 않은 경우 서비스가 호출하는 서비스 나 프로그램을 사용하여 지정된 폴더의 파일을 변경하는 방법은 관리 권한이 있음을 의미합니다.

MSI/MSP는 지정된 업데이트 수준 (프로그램 및 보고서 버전이 다른 사용자)으로 인해 불가능합니다.

우리는 고도와 함께 C# .NET 서비스에서 외부 프로그램을 호출하려고 시도했지만 아무 방법이 없습니다 ... 매니페스트 파일을 사용하여 일부 tipps 및 트릭을 확인하거나 관리 권한을 가질 수있는 COM 개체를 만들려고했지만, 그러나 이것이 잘못된 길이라고 생각합니다.

또 다른 가능성은 '가장 큰 피벗'을 제공하여 예약 된 작업을 만드는 것입니다. 하지만 그게 효과가 있니? 로그인 후에 작업을 실행해야하고 다른 사용자가이 컴퓨터를 사용할 수 있다면 각 사용자에 대해 작업을 정의해야합니다 ... 클라이언트 컴퓨터의 각 로그인은 자주 변경되기 때문에 알 수 없습니다.

누군가 도움주세요.

답변

0

상승 된 서비스를 시작하려면 로컬 시스템으로 실행되는 서비스가 있어야 프로그램 파일에 액세스하는 데 필요한 권한이 부여됩니다. 그러나 서비스는 항상 실행되고 기억을 취합니다.

일정한 시간이 지나면 시작되는 예약 된 작업을 만들 수 있습니다. UAC 확인없이 권한 상승 된 작업을 실행할 수도 있습니다.

매니페스트를 사용하면 상승 된 다른 응용 프로그램을 시작할 수도 있습니다.


기본적으로 당신의 업데이터가 상승 할 필요가 없습니다 : 그것은 각 사용자가 쓰기 권한을 ProgramData에 업데이트 파일을 다운로드 할 수 있습니다. 다운로드가 완료되면 관리자 권한이 필요한 설치 프로그램이 시작됩니다.

Firefox는 자동 업데이트 메커니즘을 사용합니다. 새로운 버전을 다운로드하면 고도를 묻는 메시지가 표시되어 업데이트를 적용합니다.

Apple Quicktime은 예약 된 작업을 사용하여 업데이터를 시작합니다. 사용자가 설치할 업데이트를 선택할 수있는 인터페이스를 제공합니다. 업데이트 파일을 다운로드하고 권한 상승 메시지를 표시 한 다음 업데이트를 적용합니다.

사용자 상호 작용을 원하지 않으면 서비스가 최선의 방법입니다.

관련 문제