내 설치 관리자는 설치된 Windows 서비스에서 일부 기본 구성을 수행하는 데 사용되는 구성 exe를 배포합니다. exe는 또한 일부 레지스트리 키를 작성하고 작성해야합니다. Windows 서버 2008 환경에서는이 키를 작성할 수 없습니다. 조사한 결과 관리자 권한이 있다는 것을 알았습니다. exe는 2008 년에 UAC에 필요한 관리자 권한을 요구하지 않습니다.이 문제를 해결하려면 exe를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행해야합니다. 그러나 이는 고객에게 실적을 알리는 데 필요한 추가 단계로서 이상적이지 않습니다. exe를 실행할 때 관리자 권한을 상승시키는 다른 방법이 있습니까?Windows Server 2008의 UAC로 인해 두통이 생깁니다!
1
A
답변
1
exe에 매니페스트를 넣거나 함께 실행하십시오. 사용중인 버전을 알려 주시면 Visual Studio를 사용하여 매니페스트를 퍼가는 방법을 알려 드리겠습니다. Visual Studio를 사용하지 않거나 EXE를 빌드하지 않은 경우 매니페스트 파일을 EXE와 같은 폴더에 넣으면됩니다. 이 경우 파일의 이름은 foo.exe의 경우 foo.exe.manifest와 같이 끝에 .manifest와 함께 exe와 동일하게 지정해야합니다. 내용은 다음과 같아야합니다
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
If you want to utilize File and Registry Virtualization for backward
compatibility then delete the requestedExecutionLevel node.
-->
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>
공지 사항 requestedExecutionLevel에 사용할 수있는 값은 코멘트에 모두 여기에 있습니다,이 하나가 requireAdministrator를 사용합니다. 이제는 항상 상승하고 따라서 당신을 위해 일할 것입니다.
관련 문제
- 1. C/C++에서의 간단한 OpenSSL RSA 암호화로 인해 두통이 생깁니다.
- 2. Windows Server 2008의 COM 보안
- 3. Windows server 2008의 DNS NS는
- 4. Windows Server 2008의 System.Diagnostics.Process.Start() 문제
- 5. ConnectionString 문제 - Windows 2008의 SQL Server 2008
- 6. Windows Server 2008의 ASP.NET에서 Microsoft.Ink 사용
- 7. Windows Server 2008의 SAP DCOM 커넥터
- 8. IE6 및 7 버그로 인해 큰 두통이 발생했습니다.
- 9. SQL Server 2008의 LPAD
- 10. SQL Server 2008의 함수
- 11. SQL Server 2008의 검색
- 12. MSSQL Server 2008의
- 13. SQL Server 2008의 보안
- 14. SQL Server 2008의 비즈니스 로직
- 15. SQL Server 2008의 SQL 인증
- 16. 맨 위 페이지의 유니 코드 문자로 인해 WebMatrix에 간격이 생깁니다.
- 17. LINQ2SQL DataContext 개체를 올바르게 사용하는 방법. 새로운 사용법을 새로 만들면 두통이 생깁니다
- 18. SQL Server 2008의 SQL Server 인증
- 19. SQL Server 2008의 특정 Windows 그룹에 대한 데이터베이스 액세스 제한
- 20. 스케줄러 태스크가 Windows Server 2003/2008의 무기한 지속 시간
- 21. C#을 사용하여 Windows Server 2003/2008의 방화벽에 예외 추가
- 22. Windows Server 2008의 TortoiseSVN - 체크 아웃시 오류 옵션 200
- 23. 64 비트 Windows 2008의 VMWare Server 1.0.7 문제
- 24. Windows 7에서 SQL Server 2008의 빈 로컬 보고서
- 25. C#에서 Windows Server 2008의 설치된 기능을 나열하는 방법
- 26. MS SQL Server 2008의 복제 가이드
- 27. SQL Server 2008의 알림 서비스
- 28. SQL Server 2008의 대칭 암호화
- 29. SQL Server 2008의 인코딩 문제
- 30. SQL Server 2008의 CLR에서 스레딩
감사합니다. 케이트. 나는 이것을 시도했지만 그 순간에도 여전히 같은 문제가 발생했다. exe 내에서 매니페스트를 임베드하는 방법을 제안 해 주시겠습니까? 저는 Visual Studio 2008을 사용하고 있습니다. (외장 매니페스트 파일의 설정을 외형으로 파악하지 않음) assemblyIdentity 이름과 버전 속성의 이름을 적절히 변경했습니다. 또한 fyi) – user48408
exe는 foo.config라고하지 않습니다. 어느 쪽이든 확장 기능을 표시하지 않으므로 foo.config.exe이거나 exe가 config 파일을 읽고 exe의 이름을 찾아야합니다. Visual Studio 2008에서 C#의 경우 : 프로젝트에 응용 프로그램 매니페스트를 추가합니다. 편집하여 requireAdministrator를 요청하십시오 (주석에서 복사 할 수 있습니다.) 그런 다음 프로젝트를 마우스 오른쪽 단추로 클릭하고 특성을 선택하십시오. 애플리케이션 탭에서 Manifest를 드롭 다운하고 app.manifest를 선택한다. 짓다. VB의 경우 프로젝트 속성의 응용 프로그램 탭으로 이동하여 UAC 설정을 클릭하고 매니페스트를 변경 한 다음 빌드하십시오. –
그리고이 요소에서 :' '이름에 무엇을 넣을 지는 중요하지 않습니다. 대개 UAC를 변경하지만 UAC에는 아무런 영향을 미치지 않습니다. –