it-swarm-korea.com

필요하지 않은 응용 프로그램에 대한 권한 상승 (UAC) 방지

최근에 Vista 32 비트에서 Windows 7 64 비트로 마이그레이션 한 프로그램 중 하나에 관리자 권한이 필요합니다.

나는 다소 이국적인 텍스트 편집기 (Crimson Editor)를 사용합니다. Vist/Win7 용으로 설계되지 않았지만 Vista에서는 잘 작동했습니다. 그러나 Windows 7에서 프로그램 실행 파일은이 UAC 방패를 아이콘에 추가하고 (호환성 탭의 "관리자 권한으로 실행"플래그가 not 설정되어 있어도) 실행할 때마다 권한 상승을 요청합니다.

Win7은이 메모장과 같은 응용 프로그램에 관리자 권한이 필요하다고 어떻게 결정합니까? 이 잘못된 휴리스틱을 어떻게 재정의 할 수 있습니까?

34
SealedSun

아니요, Crimson Editor가이를 수행하는 이유는 서명되지 않았기 때문이 아닙니다. (그리고 이것은 Win7에 새로운 것이 아닙니다). 컴파일 타임에 포함되는 애플리케이션 매니페스트가 requestedPrivilegeLevel="highestLevel"를 지정하기 때문입니다.

이 포럼 게시물 에 따르면 Crimson Editor 개발자는 개정판 237-241에서이를 변경했습니다. "셸 컨텍스트 메뉴에 크림슨 편집기 추가"기능에 관리자 권한이 필요하기 때문에 이렇게했습니다.

장기적인 수정은 Crimson Editor 개발자가 애플리케이션 매니페스트를 수정하는 것입니다. 설치하는 동안 셸 컨텍스트 메뉴에 자신을 추가하거나 최소한 사용자에게 앱을 요구하는 대신 상승 된 (쉽게 수행 할 수 있음) 앱을 수동으로 실행해야한다고 알려야합니다.

매니페스트에 requestedPrivilegeLevel="highestLevel"가 포함 된 모든 앱의 경우 ( Manifest View 를 사용하여 애플리케이션 매니페스트보기) Microsoft의 Application Compatibility Toolkit 을 사용하여 RunAsInvoker 수정 : 앱이 표준 사용자 토큰으로 실행되도록합니다.

Application Compatibility Toolkit 사용 방법에 대한 자세한 내용은 Crimson Editor에 적용하는 방법에 대한 이 게시물 또는 일반 지침 을 참조하십시오.

22
the.d.stro

이 문제가있는 두 개의 응용 프로그램이 있음을 발견했습니다. 하나는 파일 이름에 'update'가 있고 다른 하나는 'FileDecsription'에 'update'가 있습니다. 이 두 응용 프로그램에서 단어 '업데이트'를 제거하고 더 이상 UAC 경고를 제거했습니다. 'UAC 작동 방식'- '설치자 감지'에서 정보를 찾았습니다.

http://msdn.Microsoft.com/en-us/library/aa905330.aspx

다음을 설명합니다.

설치 프로그램 감지는 다음에 만 적용됩니다.

  • 32 비트 실행 파일
  • RequestedExecutionLevel이없는 응용 프로그램
  • UAC가 활성화 된 표준 사용자로 실행되는 대화 형 프로세스

32 비트 프로세스가 생성되기 전에 다음 속성을 검사하여 설치 프로그램인지 여부를 확인합니다.

  • 파일 이름에는 "install", "setup"및 "update"와 같은 키워드가 포함됩니다.
  • 다음 버전 관리 리소스 필드의 키워드 : 공급 업체, 회사 이름, 제품 이름, 파일 설명, 원래 파일 이름, 내부 이름 및 내보내기 이름.
  • 실행 파일에 포함 된 side-by-side 애플리케이션 매니페스트의 키워드입니다.
  • 실행 파일에 링크 된 특정 StringTable 항목의 키워드.
  • 실행 파일에 링크 된 리소스 파일 데이터의 주요 속성입니다.
  • 실행 파일 내 대상 바이트 시퀀스입니다.

  • 참고 : 키워드 및 바이트 시퀀스는 다양한 설치 프로그램 기술에서 관찰 된 공통 특성에서 파생되었습니다.

13
TheBeauty

Visual Studio가있는 경우 다음을 수행 할 수 있습니다.

  1. 관리자 권한으로 Visual Studio를 엽니 다.
  2. Ctrl-O를 눌러 파일 열기
  3. Crimson Editor가있는 폴더로 이동하여 cedt.exe를 엽니 다.
  4. 리소스 편집기를 사용하여 파일을 열면 RT_MANIFEST라는 분기가있는 트리가 표시됩니다.이를 확장하고 "1 [English United States]"라는 단일 하위 항목을 두 번 클릭합니다.
  5. 오른쪽 열에서 약 3/4 정도 내려 가면 requestedExecutionLevel level = "highestAvailable"이 표시되고 "highestAvailable"을 "asInvoker"로 변경합니다 (기본적으로 편집기는 오버 타입 모드로 열립니다.
  6. 파일을 저장하면 완료됩니다.

HTH

케반

7
kevanb

휴리스틱 스에 대한 몇 가지 정보는 다음과 같습니다. http://msdn.Microsoft.com/en-us/library/aa905330.aspx

매니페스트는 이러한 것들을 제어하는 ​​데 도움이 될 수 있습니다.

4
AaronLS