필요하지 않은 응용 프로그램의 권한 상승 (UAC) 방지 [중복]


34

이 질문에는 이미 답변이 있습니다.

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

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

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

답변:


22

크림슨 에디터가 서명하지 않은 이유는 아닙니다. (그리고 이것은 Win7에 새로운 것이 아닙니다). 컴파일 타임에 포함 된 응용 프로그램 매니페스트가를 지정하기 때문 requestedPrivilegeLevel="highestLevel"입니다.

이 포럼 게시물 에 따르면 크림슨 에디터 개발자는 237-241 개정판에서 이것을 변경했습니다. "쉘 컨텍스트 메뉴에 크림슨 편집기 추가"기능에는 관리자 권한이 필요하기 때문에이 작업을 수행했습니다.

장기 수정은 크림슨 에디터 개발자가 애플리케이션 매니페스트를 수정하는 것입니다. 그들은 설치하는 동안 쉘 컨텍스트 메뉴에 자신을 추가하거나 최소한 사용자에게 앱을 요구하지 않고 관리자 권한으로 수동으로 실행해야한다고 말해야합니다.

매니페스트가있는 매니페스트 뷰requestedPrivilegeLevel="highestLevel"사용 하여 응용 프로그램 매니페스트를 볼 수있는 모든 앱의 경우 Microsoft의 Application Compatibility Toolkit 을 사용하여 RunAsInvoker 수정 프로그램으로 응용 프로그램을 shim하여 표준 사용자 토큰으로 앱을 실행할 수 있습니다.

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


1
또는 Visual Studio Express를 사용하여 무료로 얻을 수있는 명령 줄 mt.exe 도구를 사용하여 기존 매니페스트를 대체 할 수 있습니다 (긴 바람이 많이 났지만이 문제가 많이 발생하면 그만한 가치가 있습니다). 포함 된 매니페스트를 바꾸면 .exe 파일이 변경되므로 a) 문제가 발생할 경우 복사본이 있는지 확인하고 b) 서명 한 경우 서명이 끊어집니다 (그러나이 경우에는 어쨌든 서명되지 않은 것으로 이미 결정했습니다).
AdamV

.d.stro, 당신은 생명의 은인입니다.
phloopy

1
"응용 프로그램 수정" 및 AppCompat 툴킷을 사용하여 버그 수정 -1
Ian Boyd

13

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

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

다음과 같은 내용이 있습니다.

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

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

32 비트 프로세스가 작성되기 전에 다음 속성이 설치 프로그램인지 판별하기 위해 점검됩니다.

  • 파일 이름에는 "install", "setup"및 "update"와 같은 키워드가 포함됩니다.
  • 공급 업체, 회사 이름, 제품 이름, 파일 설명, 원래 파일 이름, 내부 이름 및 내보내기 이름과 같은 버전 관리 리소스 필드의 키워드
  • 병렬 응용 프로그램의 키워드는 실행 파일에 포함되어 있습니다.
  • 실행 파일에 연결된 특정 StringTable 항목의 키워드
  • 실행 파일에 링크 된 리소스 파일 데이터의 키 속성
  • 실행 파일 내의 대상 바이트 시퀀스

  • 참고 : 키워드 및 바이트 시퀀스는 다양한 설치 관리자 기술에서 관찰 된 일반적인 특성에서 파생되었습니다.


7

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

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

HTH

케반


4

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

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


MSDN은 매니페스트 "포함"에 대해 설명합니다. 프로그램을 컴파일 할 때 그렇게하지 않습니까? 그러한 매니페스트를 얻으려면 크림슨 에디터를 직접 컴파일해야합니까?
SealedSun

5
동일한 폴더에 filename.exe.manifest 파일을 추가하면 Windows에서 해당 파일을 읽습니다.
Factor Mystic
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.