2012-09-25 1 views
1

CML에이 명령 "java -jar installapp.jar"을 실행하여 Java 코드를 사용하여 Win8에 EXE 프로그램을 설치하고 있습니다. 명령 줄 창은 "관리자 권한으로 실행"에 의해 열리지 않지만 현재 사용자는 관리자 그룹의 구성원입니다.Win8에 권한이 부족하여 설치가 실패했습니다

그러나 동일한 CML 창에서 EXE를 직접 설치하면 작동합니다. 설치가 Java에 의해 실행될 때 실패합니다.

누구든지 내게 팁을 줄 수 있습니까?

덕분에 많이, 마이클

제대로 시스템 보호 지역에 쓰기 포함하는 응용 프로그램을 설치하려면

답변

0

는 UAC를 통해 상승없이 할 수 없습니다. 즉, CML 창이 이어야합니다. 관리자로 실행.

Java 실행 파일에 asInvoker 권한을 요청하는 manifest가 표시되어 있습니다. 따라서 상위 프로세스가 승격되지 않은 경우 관리자 토큰이 삭제되면서 프로세스가 시작됩니다. UAC의 핵심은 관리자 그룹의 구성원 일지라도 승진 할 때까지 전체 무제한 권한을 얻지 못하는 것입니다.

의 의미는 "직접 exe 설치"입니까?

+0

응답 해 주셔서 감사합니다. "exe 직접 설치"라는 말은 CML에서 "CML-> Java-> Jar file-> appinstall.exe"체인 대신 appinstall.exe를 직접 실행하기위한 것입니다. 이제 권한을 높이고 설치를 할 수 있지만 관리자 권한으로 실행하고 싶지는 않지만 소켓 연결, 응용 프로그램 설치, 시스템 파일 쓰기 등의 권한으로 상승했습니다. Microsoft는이 미세 입자 액세스 제어를 달성하기위한 방법을 제공합니까? 감사합니다. –

+0

조금 이상합니다 ... 그리고 appinstall.exe를 CML에서 직접 실행하면 Program Files에 쓸 수 있습니다. 내 생각 엔이 경우'appinstall.exe'는 가상화를 사용하여 실행되며 실제로 의도 한 위치 대신'VirtualStore'에 쓰는 것입니다. –

+0

세밀한 액세스 제어? 모두 예, 아니오. 사용자 (심지어 관리자)가 시스템의 특정 부분에만 액세스 할 수 있도록 시스템을 구성 할 수 있습니다. 그러나 관리자 인 경우 이러한 권한을 무시할 수 있습니다. 보통 (방화벽이 거부하지 않는 한) 소켓에 연결할 수 있습니다. 하지만 모든 사용자 또는 시스템에 앱을 설치하려면 전체 관리자 권한을 가져야합니다. 사용자 별 설치를 위해 승격 할 필요가 없습니다. 시스템 파일을 작성하는 것은 바람직하지 않으므로 그렇게하지 마십시오. 시스템 또는 다른 응용 프로그램을 중단시킬 수 있습니다. –