다음을 통해 공유


Windows 8 대한 프로그램 호환성 도우미 시나리오

플랫폼

클라이언트 - Windows XP | Windows Vista | Windows 7 | Windows 8

설명

PCA(프로그램 호환성 도우미)는 최종 사용자가 이전 Windows 버전용으로 설계된 데스크톱 앱을 실행하는 데 도움이 되는 Windows 8 기능입니다. Windows 8 Windows 7 또는 이전 Windows 버전용으로 설계된 앱이 자동으로 Windows 8 잘 작동할 수 있도록 하는 뛰어난 기본 제공 앱 호환성을 제공합니다. 그러나 개입 없이 실행하는 데 문제가 있을 수 있는 앱은 적습니다.

사용자가 앱을 실행할 때 PCA는 앱을 추적하고 Windows 8 알려진 특정 호환성 문제의 증상을 식별합니다. 문제 증상을 감지하면 사용자에게 Windows 8 앱을 더 잘 실행하는 데 도움이 되는 권장 수정 사항을 적용할 수 있는 기회를 제공합니다.

시나리오

PCA는 Windows 8 알려진 호환성 문제 집합에 대한 앱을 추적합니다. PCA는 문제를 추적하고 수정 사항을 식별하며 권장 수정 사항을 적용하는 지침을 사용자에게 제공합니다. 사용자는 권장 수정 사항을 적용하거나 아무 작업도 수행하지 않으며 권장 사항에서 취소하도록 선택할 수 있습니다. 사용자가 취소하면 PCA는 더 이상 해당 앱을 추적하지 않습니다.

PCA는 일반적으로 프로그램(또는 설치 프로그램)이 작성된 시기에 따라 Windows XP SP3, Windows Vista SP2 또는 Windows 7의 세 가지 Windows 호환 모드 중 하나를 적용합니다. PCA는 프로그램의 LINK_DATE 및 SUBSYSTEM VERSION 특성과 실행 파일 매니페스트의 TRUSTINFO 및 호환성 섹션을 사용하여 관련된 모드를 확인하고 Windows XP SP3(관리 권한 포함), Windows Vista SP2 또는 Windows 7을 각각 적용합니다. 문서 끝에 있는 용어집에는 PCA가 적용하는 각 호환성 모드와 해당 설명이 나열됩니다.

아래에 나열된 모든 시나리오에서 PCA는 수정이 적용된 후 두 번째로 앱을 추적합니다. 호환성 수정이 적용된 후에도 앱이 동일한 방식으로 계속 실패하는 경우 PCA는 수정 사항을 되돌려 집니다. 그러면 PCA는 실패한 특정 앱의 추적을 영구적으로 중지합니다.

PCA는 많은 잠재적인 문제를 추적하지만 모든 문제가 실제로 앱 오류를 일으키는 것은 아닙니다. PCA는 Windows 호환성 이유로 인해 앱 오류가 발생할 가능성이 높은 경우에만 수정을 권장합니다. 아래 섹션은 Windows 8 개발된 각 PCA 시나리오에 대해 설명합니다. 각 섹션에서는 앱이 Windows 8 제대로 작동할 수 있도록 PCA에서 제공하는 문제 시나리오 및 권장 사항을 설명합니다.

Windows 8 호환성 변경에 대한 자세한 내용은 Windows 8 호환성 쿡북의 다른 항목을 참조하세요.

PCA가 수정 사항을 추적하고 권장하는 시나리오는 다음과 같습니다.

  • 앱 설치 또는 제거 실패
  • Windows 버전 확인 메시지와 함께 앱을 실행하지 못함
  • 관리 권한으로 인해 앱을 시작하지 못함
  • 특정 메모리 문제로 인한 앱 충돌
  • 시스템 파일이 일치하지 않아 앱이 실패함
  • 64비트 Windows에서 처리되지 않은 오류로 인해 앱이 실패함
  • 보호된 비 Windows 파일을 삭제하는 동안 앱이 실패함
  • Windows 파일 수정을 시도하는 동안 앱이 실패함
  • 8비트 또는 16비트 색 모드를 사용하여 앱 실패
  • 그래픽 및 표시 문제로 인해 앱 실패
  • 앱이 DPI 인식을 선언하지 못함
  • Windows 기능 누락으로 인해 앱 실패
  • 64비트 Windows 8 부호 없는 드라이버로 인해 앱이 실패함
  • 호환성 설정을 통해 설치된 앱 추적
  • 앱이 설치 관리자 또는 업데이트 프로그램을 시작하지 못함
  • 관리 권한으로 실행해야 하는 앱 설치 관리자
  • 관리 권한으로 실행해야 하는 레거시 제어판 애플릿

이러한 각 시나리오는 아래에서 확장됩니다.

앱 설치 또는 제거 실패

가장 일반적인 유형의 앱 오류 중 하나는 앱을 설치하는 동안 발생합니다. 이전 설치 프로그램은 일반적으로 다음 두 가지 방법으로 실패합니다.

  • 설치 프로그램은 Windows 8 UAC(사용자 계정 컨트롤) 기능을 인식하지 못하므로 보호된 영역의 시스템을 변경하는 데 필요한 모든 권한으로 실행되지 않을 수 Windows 8
  • 설치 프로그램은 Windows 버전을 확인하고 버전이 예상보다 높은 경우 자체 실행이 차단됩니다.

이러한 오류 조건은 설정에서 가장 일반적인 호환성 오류 유형 중 두 가지입니다. PCA는 UAC와 같은 다양한 Windows 구성 요소의 도움으로 시작 시 설치 프로그램을 검색하고 설치가 끝날 때까지 추적합니다. 설치 프로그램이 파일을 추가하지 못하거나 Windows 제어판의 '프로그램 제거 추가' 부분에 유효한 항목을 추가하지 못하는 경우 PCA는 설치가 실패한 것으로 간주합니다.

이 경우 PCA는 앱에 적합한 호환 모드를 권장합니다. 호환 모드를 사용하면 설치 프로그램이 디자인된 Windows 모드에서 실행되고 앱이 관리 권한으로 실행되도록 할 수 있습니다. PCA는 적절한 Windows XP, Windows Vista 또는 Windows 7 호환 모드와 함께 RUNASADMIN 호환성 모드를 적용합니다. 설치가 실패하면 사용자에게 PCA 권장 사항이 포함된 대화 상자가 표시됩니다.

앱 설치 또는 제거 대화 상자 실패

그러면 사용자는 다음을 선택할 수 있습니다.

  • 호환성 설정(권장 옵션)을 사용하여 프로그램을 실행한 후 PCA가 권장 설정(호환 모드)을 적용하고, 설치 프로그램을 다시 시작하고, 설치가 성공적으로 완료될 때까지 추적합니다.
  • 프로그램이 올바르게 설치되었음을 나타내며, 이 경우 PCA는 설정을 추가하지 않고 설정 추적을 중지합니다.
  • 닫기를 클릭합니다. 이 경우 PCA는 설정을 추가하지 않고 이 설정 추적을 중지합니다.

동일한 메커니즘은 사용자가 Windows의 '프로그램 제거' 섹션 또는 앱의 제거 바로 가기에서 앱을 제거하려고 할 때 앱의 제거를 돕는 데 사용됩니다.

Windows 버전 확인 메시지와 함께 앱을 실행하지 못함

앱 런타임에서 가장 일반적인 호환성 오류 중 하나는 Windows 버전 검사 때문입니다. 많은 앱이 시작되면 Windows 버전을 확인합니다. 버전을 인식하지 못하면 앱이 문제 없이 실행되었을 수 있더라도 스스로 차단됩니다.

일반적으로 이러한 검사는 PCA가 추적하는 두 가지 조건과 연결됩니다.

앱은 사용자에게 경고하는 메시지 상자를 표시합니다. 예를 들면 다음과 같습니다.

Windows 버전 확인 메시지 대화 상자로 앱을 실행하지 못함

  • 앱이 즉시 종료되거나 크래시가 발생합니다.

PCA가 앱에 대해 이러한 조건을 모두 식별하는 경우 사용자에게 권장 사항을 제공합니다. PCA를 사용하면 사용자가 호환성 설정으로 앱을 다시 실행할 수 있습니다. PCA는 앱에 따라 적절한 Windows XP, Windows Vista 또는 Windows 7 호환성 모드를 적용합니다. 시나리오와 마찬가지로 사용자는 앱이 올바르게 실행되었다는 것을 PCA에 알리거나 닫기 단추를 클릭하여 권장 설정을 옵트아웃할 수 있습니다. 아래와 같이 예제 대화 상자가 제공됩니다.

windows 버전 확인 메시지 옵션 대화 상자로 앱을 실행하지 못함

관리 권한으로 인해 앱을 시작하거나 실행하지 못함

일부 앱은 해당 기능을 실행하고 실행하려면 관리 권한이 필요합니다. 그러나 windows 7 및 Windows Vista와 유사한 Windows 8 앱은 기본적으로 UAC로 인해 낮은 권한 수준에서 실행됩니다. Windows Vista 이상용으로 설계된 최신 앱은 일반적으로 EXE 매니페스트의 TRUSTINFO 섹션을 사용하여 실행해야 하는 권한 수준을 선언합니다. 그러나 일반적으로 이전 앱은 다음 두 가지 방법으로 실패합니다.

  • 앱은 아래 예제와 같이 관리 권한이 필요하다는 메시지를 사용자에게 표시합니다.

관리 권한 대화 상자로 인해 앱을 시작하거나 실행하지 못함

  • 앱이 즉시 종료되거나 크래시가 발생합니다.

PCA가 앱에 대해 이러한 조건을 모두 식별하는 경우 사용자에게 권장 사항을 제공합니다. PCA를 사용하면 사용자가 관리 권한으로 앱을 다시 실행할 수 있습니다(PCA는 RUNASHIGHEST 호환 모드 적용). 앱이 다시 실행되면 사용자에게 UAC 프롬프트가 표시됩니다. 시나리오와 마찬가지로 사용자는 권장 설정을 사용하여 다시 실행하거나 닫기를 클릭하여 권장 설정을 옵트아웃하도록 선택할 수 있습니다. 아래와 같이 예제 대화 상자가 제공됩니다.

관리 권한 옵션 대화 상자로 인해 앱을 시작하거나 실행하지 못함

특정 메모리 문제로 인한 앱 충돌

잘 알려진 메모리 문제로 인해 일부 앱이 충돌합니다. 앱은 메모리에서 DLL을 참조 해제한 다음 함수를 호출하여 동일한 DLL에서 코드를 실행합니다. 이로 인해 앱이 즉시 충돌합니다. 이 문제는 Windows 8 호환성 변경 때문은 아니지만 다양한 앱에서 볼 수 있는 비교적 일반적인 문제입니다. PCA는 사용자에게 앱을 보다 안정적으로 실행할 수 있는 기회를 제공하기 위해 이 문제를 추적합니다.

이러한 앱의 경우 PCA는 자동으로 PINDLL 호환성 모드를 적용합니다. PCA에서 호출하는 호환성 모드는 앱이 메모리에서 DLL을 해제하지 못하도록 합니다. 따라서 앱에서 DLL에 대한 함수 호출이 작동하여 앱이 충돌하지 않도록 하고 제대로 작동하도록 허용합니다.

시스템 파일이 일치하지 않아 앱이 실패함

Windows XP 및 이전 버전용으로 설계된 일부 앱에는 설치 관리자와 함께 Windows 시스템 DLL 복사본이 포함되어 있습니다. 이러한 앱이 설치되면 앱에는 자체 폴더에 있는 DLL의 이전 복사본과 Windows 시스템 폴더에 있는 최신 버전의 DLL이 모두 있습니다.

Windows Vista 이상에서는 이 DLL이 현재 Windows 시스템 DLL의 나머지 부분과 잘 작동하지 않으므로 로컬 DLL을 로드하려고 할 때 앱이 실패할 수 있습니다. 앱은 일반적으로 이 DLL의 최신 버전을 인식하지 못하므로 제대로 작동하지 않습니다.

PCA에서 DLL이 제대로 로드되지 않은 것을 감지하면 Windows가 Windows 시스템 폴더에서 최신 버전의 DLL을 로드하여 앱이 제대로 실행될 수 있도록 하는 호환성 설정이 적용됩니다.

앱의 첫 번째 실행이 완료되면 아래와 같이 적용된 설정을 알리는 PCA 대화 상자가 표시됩니다.

일치하지 않는 시스템 파일 대화 상자로 인해 앱이 실패함

64비트 Windows에서 처리되지 않은 오류로 인해 앱이 실패함

64비트 버전의 Windows 8 메시지 루프 콜백 메커니즘에 새 예외가 사용하도록 설정되었습니다. 이 예외는 Windows 7에서 처음 도입되었지만 이 오류를 처리해야 하는 것은 아닙니다. Windows 8 메시지 루프를 사용하는 앱은 이 새 예외를 처리해야 합니다. 그렇지 않으면 충돌합니다. 이전 Windows 버전용으로 설계된 앱은 이 예외를 인식하지 못할 수 있으므로 이 오류(예외)를 제대로 처리하지 못할 수 있습니다.

PCA는 이 처리되지 않은 오류로 인해 실패한 앱을 검색하고 앱에 대해 DISABLEUSERCALLBACKEXCEPTION 호환성 모드를 자동으로 적용합니다. 실행이 끝날 때 설정이 적용되면 아래와 같이 사용자에게 알림이 표시됩니다. 앱은 다음 실행에서 모드를 가져와서 이 오류를 방지할 수 있습니다.

64비트 창 대화 상자에서 처리되지 않은 오류로 인해 앱이 실패함

보호된 비 Windows 파일을 삭제하는 동안 앱이 실패함

일부 앱은 Windows XP용으로 설계되었으며 이전에는 일반적으로 전체 관리 권한으로 실행된다고 가정합니다. 일반적인 앱 동작 과정에서는 보호된 비 Windows 파일(프로그램 파일 또는 Windows 폴더)을 삭제하려고 시도할 수 있습니다. 삭제 작업이 실패하면 많은 앱이 충돌할 수 있습니다.

PCA는 보호된 파일을 삭제하지 못하고 크래시가 발생하는 이러한 앱을 검색하고 사용자에게 권장 사항을 제공합니다. PCA를 사용하면 사용자가 호환성 설정으로 앱을 다시 실행할 수 있습니다. 시나리오와 마찬가지로 사용자는 앱이 올바르게 실행되었다는 것을 PCA에 알리거나 닫기 단추를 클릭하여 권장 설정을 옵트아웃할 수 있습니다. 이 경우 PCA는 VIRTUALIZEDELETE 호환성 모드를 적용합니다. 아래와 같이 예제 대화 상자가 제공됩니다.

보호된 비 Windows 파일 대화 상자를 삭제하는 동안 앱이 실패함

Windows 파일 또는 레지스트리 키를 수정하는 동안 앱이 실패함

일부 앱은 Windows XP용으로 설계되었으며 이전에는 일반적으로 전체 관리 권한으로 실행된다고 가정합니다. 일반적인 앱 동작 과정에서 Windows 보호 파일(프로그램 파일 또는 Windows 폴더에 있음) 또는 Windows가 소유한 레지스트리 키를 수정, 삭제 또는 작성하려고 시도할 수 있습니다. 파일 또는 레지스트리 키에 대한 쓰기, 삭제 또는 수정 작업이 실패하면 많은 앱이 충돌하거나 심하게 실패할 수 있습니다.

PCA는 보호된 Windows 파일 또는 레지스트리 키에 쓰지 못하는 이러한 앱을 검색하고 앱이 종료될 때 사용자에게 권장 사항을 제공합니다. PCA를 사용하면 사용자가 호환성 설정으로 앱을 다시 실행할 수 있습니다. 시나리오와 마찬가지로 사용자는 앱이 올바르게 실행되었다는 것을 PCA에 알리거나 닫기 단추를 클릭하여 권장 설정을 옵트아웃할 수 있습니다. 이 경우 PCA는 WRPMITIGATION 호환성 모드를 적용합니다. 아래와 같이 예제 대화 상자가 제공됩니다.

Windows 파일 또는 레지스트리 키 수정을 시도하는 동안 앱이 실패함 대화 상자

8비트 또는 16비트 색 모드를 사용하여 앱 실패

Windows 스토어 앱에 대한 Windows 8 다시 디자인하는 과정의 일환으로, 이제 DWM(데스크톱 창 관리자)이 Windows 8 32비트 색만 지원한다는 점이 주요 변경 사항 중 하나입니다. 이제 낮은 색 모드가 시뮬레이션됩니다.

Windows XP용으로 디자인되거나 8비트 또는 16비트 색 모드를 사용하기 전에 디자인된 많은 오래된 앱 및 게임 완화 없이 이러한 앱은 Windows 8 실행하지 못할 수 있습니다. 그러나 이러한 앱이 표시를 위해 8비트 또는 16비트 색 모드를 열거하거나 사용하려고 하면 PCA는 문제를 즉시 식별하고 DWM의 도움을 받아 앱이 시뮬레이션된 색 모드에서 제대로 작동하도록 합니다.

이는 앱이 낮은 색 모드를 요청하고 사용자에게 투명하게 표시되는 즉시 발생합니다. 앱이 제대로 작동하는지 확인하기 위해 이 수정이 항상 필요하기 때문에 사용자는 이 완화를 위해 앱을 다시 시작할 필요가 없습니다.

그래픽 및 표시 문제로 인해 애플리케이션 실패

DWM(데스크톱 창 관리자)은 항상 Windows 8 있으므로 GDI 및 DirectX API를 모두 사용하여 화면에 그리는 것과 같이 앱이 혼합 모드 그래픽 API를 사용하고 전체 화면 모드를 사용하려고 하면 일부 이전 Windows XP 시대 앱이 실패할 수 있습니다.

  • DWM은 데스크톱에 직접 그리는 것을 방지하고 게임 또는 앱이 실패하거나 바탕 화면에 검은색 화면을 그리면 그래픽이 표시되지 않습니다.
  • 이러한 경우 앱이 종료되면 Windows는 앱 또는 게임에 전체 화면 모드에 문제가 있음을 감지하고 앱 또는 게임이 전체 화면 모드 대신 최대화된 창 모드로 실행될 수 있도록 하는 DXMAXIMIZEDWINDOWEDMODE 호환성 모드를 적용합니다.
  • 실행이 끝날 때 설정이 적용되면 아래와 같이 PCA에서 사용자에게 알림을 받습니다. 앱은 다음 실행에서 호환성 모드를 가져와서 제대로 실행할 수 있습니다.

그래픽 및 표시 문제 대화 상자로 인해 애플리케이션이 실패함

앱이 DPI 인식을 선언하지 못함

Windows 및 앱이 높은 DPI 모드에서 실행되지만 앱이 EXE 매니페스트를 통해 높은 DPI에 대한 인식을 선언하지 않는 경우 여러 이전 앱의 또 다른 일반적인 표시 문제가 발생합니다. 이러한 설정 불일치로 인해 발생할 수 있는 일반적인 문제 중에는 잘린 UI 요소 또는 텍스트와 잘못된 글꼴 크기가 있습니다. 문제에 대한 자세한 내용은 이 링크를 참조하세요.

이러한 경우 Windows는 앱이 높은 DPI 인식임을 감지하고 첫 번째 실행이 끝날 때 앱에 HIGHDPIAWARE 호환성 모드를 적용합니다. 그러면 PCA는 아래와 같이 사용자에게 이에 대해 알릴 것입니다.

앱이 dpi 인식 대화 상자를 선언하지 못함

Windows 기능 누락으로 인해 애플리케이션 실패

일부 앱은 Windows Vista 이후 제거된 Windows 기능에 따라 달라집니다. 이러한 앱이 누락된 DLL 또는 COM 구성 요소를 로드하려고 하면 작동하지 않습니다.

PCA는 누락된 Windows 기능을 로드하려고 할 때 앱을 검색하고, 앱이 종료된 후 이러한 구성 요소를 다운로드하고 설치하는 권장 사항을 제공합니다. 사용자는 '도움말 온라인 가져오기'를 클릭하여 대안을 찾거나 기능을 다운로드하여 설치할 수 있습니다. 필요한 경우 닫기를 클릭하여 아무 작업도 수행하지 않도록 선택할 수 있습니다.

누락된 Windows 기능 대화 상자로 인해 애플리케이션 실패

64비트 Windows 8 부호 없는 드라이버로 인해 앱이 실패함

64비트 Windows에는 Windows Vista 이후 디지털 서명된 드라이버(SYS 파일)가 필요합니다. 그러나 Windows Vista 릴리스 전에 디자인된 이전 앱은 디지털 서명되지 않은 드라이버를 제공했습니다. 이러한 서명되지 않은 드라이버가 설치되어 있으면 Windows에서 해당 드라이버를 로드하지 않습니다. 드문 경우이지만 이러한 드라이버가 부팅 시간 드라이버로 표시되면 Windows가 시작되지 않을 수 있습니다.

일부 이전 앱은 64비트 Windows에서 서명되지 않은 드라이버를 설치합니다. 이 드라이버를 사용하려고 하는 모든 디바이스 또는 앱이 실패하거나 시스템 크래시가 발생할 수 있습니다. 이러한 시나리오를 방지하기 위해 PCA는 서명되지 않은 드라이버를 설치할 때 앱을 검색하고 부팅 시간 드라이버로 표시된 드라이버를 사용하지 않도록 설정합니다.

또한 앱이 제대로 작동하도록 디지털 서명된 드라이버를 획득하도록 사용자에게 지시합니다. 메시지는 드라이버 설치의 결과와 앱 설치의 결과로 표시됩니다. 다른 앱이 동일한 드라이버를 설치하는 경우 해당 앱도 동일한 메시지를 받게 됩니다.

64비트 windows 8 대화 상자에서 서명되지 않은 드라이버로 인해 앱이 실패함

호환성 설정을 통해 설치된 앱 추적

설치 관리자가 실패하면 PCA는 오류 유형에 따라 다양한 호환성 모드를 설치 관리자에 지원합니다. 설치 관리자가 호환성 설정에 성공하면 PCA는 설치 관리자가 추가한 바로 가기를 추적합니다. 이 작업은 설치된 앱에도 설치 관리자에 적용된 호환성 설정이 필요한지 추적하기 위해 수행됩니다.

사용자가 이러한 앱을 시작하면 PCA는 사용자에게 앱이 제대로 작동했는지 묻는 메시지를 표시합니다. 사용자가 '예'라고 대답하면 PCA는 앱 추적을 중지합니다. 사용자가 '아니요'라고 대답하면 앱의 설치 관리자에 적용된 것과 동일한 호환 모드를 적용하고 호환 모드가 적용된 상태에서 앱을 다시 실행합니다.

앱이 설치 관리자 또는 업데이트 프로그램을 시작하지 못함

앱은 관리자 권한으로 실행해야 하는 자식 프로그램을 시작하는 경우가 있습니다. 일반적으로 앱이 업데이트 프로그램 소프트웨어를 시작하여 앱에 대한 새 업데이트를 확인하고 설치하려고 하는 경우입니다. 앱이 이러한 자식 프로그램을 직접 실행하는 경우 앱 자체에 관리 권한이 없거나 자식 프로그램이 UAC 매니페스트를 사용하여 권한 상승으로 제대로 표시되지 않았기 때문에 자식 프로그램을 시작하지 못할 수 있습니다.

PCA는 이러한 오류를 추적하고 기본 앱이 닫히면 자식 프로그램을 올바르게 실행하는 데 도움이 되는 ELEVATECREATEPROCESS 호환성 모드를 자동으로 적용합니다. 앱이 후속 실행 시 자식 앱을 시작하면 사용자에게 자식 프로그램에 대한 UAC 대화 상자가 표시됩니다.

PCA 대화 상자의 예는 다음과 같습니다.

앱에서 설치 관리자 또는 업데이트 프로그램 대화 상자를 시작하지 못함

관리 권한으로 실행해야 하는 앱 설치 관리자

Windows 데스크톱 앱 설치 관리자는 보호된 시스템 영역에 파일, 폴더 및 레지스트리 항목을 쓰기 때문에 관리 권한이 필요합니다. Windows(UAC)에는 설치 관리자가 실행되는 시기를 식별하는 검색 논리가 있으며, 사용자에게 UAC 대화 상자를 통해 관리 권한을 제공하라는 메시지를 즉시 표시합니다. 그러나 경우에 따라 이 논리는 앱이 실제로 설치 관리자였는지 확인할 수 없으며 관리 권한을 얻지 못할 수도 있습니다. 일반적으로 Windows Installer 또는 Install Shield와 같은 잘 알려진 설치 기술을 사용하지 않는 사용자 지정 설치 관리자입니다.

이러한 경우 PCA는 설치 관리자가 파일을 작성하지 못했음을 감지합니다. 설치에 실패한 경우 마지막에 PCA는 호환성 설정을 적용하는 권장 사항을 제공합니다. 사용자가 '프로그램 실행'을 클릭하도록 선택하는 경우 PCA는 RUNASADMIN 호환성 모드를 적용하고 설치 관리자를 다시 실행합니다. 사용자가 닫기로 선택하면 설정이 적용되지 않습니다. 예제 PCA 대화 상자는 다음과 같습니다.

관리 권한 대화 상자로 실행해야 하는 앱 설치 관리자

관리 권한으로 실행해야 하는 레거시 제어판 애플릿 제어판 애플릿은 일반적으로 시스템 설정을 변경하고 광고 관리자를 실행하는 기능이 필요합니다. 그러나 Windows Vista 이전에 작성된 항목에는 EXE 매니페스트가 없거나 필요한 권한 수준을 선언하는 TRUSTINFO 섹션이 없습니다. 이러한 애플릿이 실행되면 PCA는 이를 감지하고 첫 번째 실행이 끝날 때 관리 설정을 사용하여 실행하는 권장 사항을 제공합니다. 사용자가 '프로그램 실행'을 클릭하도록 선택하는 경우 PCA는 RUNASADMIN 호환성 모드를 적용하고 설치 관리자를 다시 실행합니다. 사용자가 닫기로 선택하면 설정이 적용되지 않습니다. 예제 PCA 대화 상자는 다음과 같습니다.

관리 권한 대화 상자로 실행해야 하는 앱 설치 관리자

사용자 피드백을 통해 권장 설정 확인

각 시나리오가 끝나면(앱이 권장되는 호환성 설정으로 실행된 후) PCA는 사용자에게 다음과 같은 간단한 질문을 합니다.

사용자 피드백 대화 상자를 통해 권장 설정 확인

앱이 호환성 설정으로 작동하거나 실패한 경우 사용자가 피드백을 제공할 수 있습니다. 이 데이터는 익명으로 Microsoft로 전송됩니다. 이렇게 하면 Windows 업데이트 프로세스를 통해 이러한 수정 사항을 Windows 8 빌드할 수 있으므로 향후 Windows 8 사용자가 더 이상 앱 오류가 발생하지 않으며 PCA가 더 이상 실패에 대한 앱을 추적할 필요가 없습니다.

권장 사항이 없는 추적 문제

앱은 호환성을 위해 여러 가지 방법으로 실패할 수 있습니다. PCA는 위의 시나리오에 나열된 것보다 더 많은 호환성 문제를 추적합니다. 이러한 경우 문제 매니페스트는 앱에 따라 달라지는 경우가 많습니다. 즉, 일부 앱은 이러한 문제를 정상적으로 처리하고 복구하지만 다른 앱은 복구하지 않을 수 있습니다. 따라서 이러한 문제의 경우 PCA는 여전히 앱을 추적하지만 수정에 대한 직접적인 권장 사항은 제공하지 않습니다.

권장 설정 또는 대화 상자가 없는 PCA가 추적하는 문제는 다음과 같은 앱을 포함합니다.

  • 매우 짧은 런타임 - 앱이 3초 이상 실행되지 않음
  • 관리 권한 없이 전역 메모리 개체 만들기
  • 시작 시 오류(Win32 예외) 발생
  • 관리 권한 확인(실패할 수 있음)
  • Indeo 코덱 사용(Windows Vista에서 사용되지 않음)
  • HKLM과 같은 보호된 레지스트리 위치에서 키를 쓰거나 삭제해 보세요.
  • 발사 시 충돌

호환성 탭 및 호환성 문제 해결사를 통해 수정 사항 적용

위에서 설명한 대로 앱은 다양한 호환성 이유로 실패할 수 있습니다. 설정이 앱에 종속되어 있으므로 이러한 모든 항목에 명확한 PCA 권장 사항이 있는 것은 아닙니다. 그러나 사용자는 호환성 문제 해결사 또는 호환성 탭으로 이동하여 특정 일반적인 수정 사항을 적용하여 실패한 앱이 Windows 8 제대로 작동하도록 할 수 있습니다. 이러한 경우 PCA는 수정이 적용되기 전과 후에 호환성 문제에 대한 앱을 계속 추적합니다. 수정 사항이 적용된 상태에서 앱을 실행한 후 PCA는 수정이 작동했는지 사용자에게 묻습니다. 사용자가 질문에 대답하면 데이터는 원격 분석을 통해 익명으로 Microsoft로 전송됩니다. 이 데이터는 많은 사용자로부터 수집되고 분석되며, 적격 수정 사항은 Windows 업데이트를 통해 모든 Windows 8 사용자에게 광범위하게 배포됩니다.

호환성 문제 해결사 사용

호환성 문제 해결사란 Windows에서 앱 문제를 진단하고 권장 수정 사항을 적용하여 제대로 작동하도록 하는 메커니즘입니다. 이는 PCA가 앱에 대한 권장 사항을 제공하지 않는 경우에만 필요합니다.

문제 해결사를 사용하면 사용자가 일련의 질문을 살펴보고 답변할 수 있으며, 회신에 따라 수정 사항 집합을 적용하고 사용자가 앱을 테스트하고 수정 사항을 확인할 수 있습니다. 확인되면 수정 사항이 앱에 영구적으로 적용되어 Windows 8 더 잘 작동합니다.

문제 해결사 UI는 참조를 위해 아래에 나와 있습니다.

호환성 문제 해결사 대화 상자 사용

호환성 문제 해결사를 다음 두 가지 방법으로 시작할 수 있습니다.

시작 화면에서 다음을 수행합니다.

  1. 형식: 호환성 문제 해결사
  2. 설정 섹션에서 '이전 버전의 Windows용으로 만든 프로그램 실행' 타일을 클릭합니다.

앱 타일에서:

  1. 시작 화면에서 앱 타일을 마우스 오른쪽 단추로 클릭합니다.
  2. '파일 위치 열기'를 클릭합니다(데스크톱 앱에만 해당).
  3. 탐색기 리본에서 '앱 탭'을 클릭합니다.
  4. '호환성 문제 해결'을 선택합니다.

호환성 탭 사용

다른 호환성 설정을 시도하는 전문가인 사용자에게만 권장됩니다. 이 메서드는 앱에 적용할 수정 유형에 대한 권장 사항을 제공하지 않습니다. 여기서 사용자는 앱 작동을 위해 적용할 수 있는 수정 사항을 알고 있어야 합니다. 수정 사항을 잘 모르는 경우 호환성 문제 해결사를 사용하여 앱에 대한 수정 사항을 찾으세요.

호환성 탭에 액세스하려면 다음을 수행합니다.

시작 화면에서 다음을 수행합니다.

  1. 앱 타일을 마우스 오른쪽 단추로 클릭합니다.
  2. 파일 위치 열기(데스크톱 앱에만 해당)

탐색기 리본에서:

  1. 속성을 클릭합니다.
  2. 호환성 탭으로 이동합니다.
  3. 호환성 수정 선택
  4. 앱 다시 실행

참고

동일한 위치로 다시 돌아와서 수정 사항도 변경하거나 제거할 수 있습니다. 탭에 제공된 단추를 사용하여 컴퓨터의 모든 사용자에게 수정 사항을 적용할 수도 있습니다.

호환성 탭 사용

알려진 호환성 문제가 있는 앱

위에 나열된 런타임 문제 검색 시나리오 외에도 PCA는 앱이 호환성 문제를 알고 있는 경우 앱 시작 시 사용자에게 알릴 수도 있습니다. 목록은 시스템 앱 호환성 데이터베이스에 저장됩니다. 이러한 메시지에는 두 가지 유형이 있습니다.

  • 하드 블록 메시지 - 앱이 호환되지 않는 것으로 알려져 있고 앱을 실행하도록 허용하면 시스템에 심각한 영향을 미치거나(예: Windows 크래시 또는 설치 후 부팅할 수 없음) 아래와 같은 차단 메시지가 표시됩니다.

알려진 호환성 문제가 있는 앱 - 하드 블록 메시지 대화 상자

  • 소프트 블록 메시지 - 앱에 알려진 호환성 문제가 있고 제대로 작동하지 않을 수 있는 경우 다음 메시지가 표시됩니다.

알려진 호환성 문제가 있는 앱 - 소프트 블록 메시지 대화 상자

두 경우 모두 '온라인 도움말 보기' 옵션은 Windows 오류 보고서를 보내 Microsoft로부터 온라인 응답을 받고 사용자에게 표시합니다. 일반적으로 응답은 사용자에게 다음 세 가지 유형의 리소스 중 하나를 가리킵니다.

  • 앱 공급업체의 업데이트
  • 자세한 내용은 앱 공급업체의 웹 사이트
  • 자세한 내용은 Microsoft 기술 자료 문서

PCA에 대한 원격 분석

PCA는 Windows 8 컴퓨터에서 앱 문제를 해결하고 모든 사용자 피드백을 받은 후 앱, 설치 관리자, 검색된 문제 및 앱에 적용된 호환성 설정에 대한 익명 데이터를 수집하고 Microsoft로 다시 보냅니다. 이 데이터는 이러한 익명 데이터를 제공하려는 모든 사용자로부터 수집됩니다(고객 환경 개선 프로그램 - CEIP를 통해). 이 데이터가 수집되면 앱 오류 및 수정 사항이 분석되고 수정 사항이 Windows 업데이트 메커니즘을 통해 전체 Windows 에코시스템에 배포되므로 향후 앱의 모든 사용자가 자동으로 수정의 이점을 얻을 수 있습니다.

관리 컨트롤 및 PCA 설정 관리

IT 관리자는 다음 두 가지 방법으로 PCA 동작을 제어할 수 있습니다.

  • PCA 끄기 – 이 설정을 사용하면 IT 관리자가 PCA가 사용자에게 표시하는 대화 상자를 끌 수 있습니다. PCA는 여전히 문제를 추적 및 검색하고 원격 분석을 다시 보냅니다.
  • 앱 원격 분석 끄 기 – 이 설정은 PCA를 통해 모든 수집 및 원격 분석 데이터 전송을 해제합니다.

참고

CEIP가 꺼져 있는 경우 이 설정은 영향을 주지 않습니다.

PCA에서 작동하도록 앱 디자인

개발자는 위에서 설명한 모든 호환성 시나리오에서 앱이 제대로 작동하는지 확인해야 합니다. 개발자는 위의 각 시나리오에 대해 앱을 테스트하고 유효성을 검사하고 호환성 문제가 없는지 확인해야 합니다. 호환성 문제가 식별되면 개발자는 호환성 문제가 해결되도록 필요한 앱을 수정해야 합니다. 개발자가 수행해야 하는 몇 가지 일반적인 수정 사항은 다음과 같습니다.

  • 설치 및 런타임 시 Windows 운영 체제 버전 검사 제거
  • 권한 검사 제거(관리자 액세스 확인); EXE 매니페스트를 사용하여 필요한 올바른 수준의 권한 선언
  • Windows 이진 파일이 앱 설치 관리자 내에 배송되지 않았는지 확인합니다.
  • 보호된 영역(레지스트리, 폴더)에 대한 쓰기 또는 보호된 파일에 대한 쓰기 제거
  • 모든 이진 파일에 디지털 서명(EXE, DLL, SYS 파일)
  • 설치 관리자의 경우 적절한 '프로그램 추가/제거' 항목이 추가되었는지 확인합니다. 최소한 이 앱 메타데이터 항목에는 앱 이름, 게시자, 버전 문자열 및 지원되는 언어가 포함되어야 합니다. 이는 설치 관리자가 성공적으로 완료되었음을 PCA에 나타내며 사용자가 앱을 제거할 수 있는 편리한 방법도 제공합니다.

앱(실행 파일) 매니페스트의 TRUSTINFO 및 호환성 섹션이 Windows 8 호환성 쿡북에 나열된 대로 업데이트되었는지 확인하면 PCA는 앱이 Windows 8 위해 설계되었음을 알리고 앱이 항상 호환 모드를 적용하지 않고 기본적으로 실행되도록 합니다.

PCA가 앱을 Windows 8 위해 디자인되도록 하려면 다음을 수행합니다.

  • 모든 EXE(설치 관리자 또는 런타임)는 TRUSTINFO 및 Windows 8 호환성 섹션에 대해 매니페스트되어야 합니다.
  • 설치 관리자는 '프로그램 추가/제거' 항목을 추가해야 합니다.

용어

PCA에서 사용하는 호환성 모드는 아래에 나열되어 있으며, 모드에서 사용할 수 있는 기능을 간략하게 설명합니다.

Mode Description
Windows7RTM 이 모드는 운영 체제 버전 번호 6.1을 포함한 일반적인 Windows 7 동작을 에뮬레이트합니다.
WindowsVistaSP2 이 모드는 운영 체제 버전 번호 6.1을 포함한 일반적인 Windows 7 동작을 에뮬레이트합니다.
WindowsXPSp3 이 모드는 운영 체제 버전 번호 5.1을 포함하여 일반적인 Windows XP SP3 동작을 에뮬레이트합니다. 여기에는 RUNASHIGHEST 모드도 포함됩니다.
RUNASHIGHEST 이 모드는 사용 가능한 가장 높은 권한으로 앱을 실행하라는 메시지를 표시합니다. 관리자 권한이 있는 사용자에게 앱에 대한 UAC 권한 상승 프롬프트가 표시됩니다.
RUNASADMIN 이 모드는 항상 관리자 권한으로 앱을 실행하라는 메시지를 표시합니다. 이 모드를 사용하는 앱은 항상 UAC 권한 상승 프롬프트를 받습니다.
ELEVATECREATEPROCESS 이 모드는 주 앱의 자식 프로세스를 관리 권한으로 실행하게 합니다. 자식 프로세스는 UAC 권한 상승 대화 상자를 가져옵니다.
PINDLL 이 모드는 앱이 DLL을 언로드하더라도 앱에 대한 DLL이 메모리에 있게 합니다.
DISABLEUSERCALLBACKEXCEPTION 이 모드는 사용자 콜백 예외를 가로채고 예외를 처리하지 않고도 앱이 계속 진행할 수 있도록 합니다.
VIRTUALIZEDELETE 이 모드는 보호된 파일에 대한 삭제 작업을 가로채고 삭제 작업에서 처리되지 않은 예외로 인해 앱이 실패하지 않도록 방지합니다.
WRPMITIGATION 이 모드는 앱이 Windows로 보호된 파일 또는 레지스트리 항목을 작성, 수정 또는 삭제하려고 할 때(실제로 작업을 완료하지 않고) 성공을 반환합니다.
DXMAXIMIZEDWINDOWEDMODE 이 모드는 전체 화면 모드로 전환되는 앱을 식별하고 최대화된 창 모드로 리디렉션합니다.
HIGHDPIAWARE 이 모드를 사용하면 나머지 Windows에서 앱이 높은 DPI 인식임을 알 수 있으며 UI 요소, 텍스트, 글꼴 등을 적절히 렌더링하는 데 도움이 됩니다.