See itGet itUse it

Microsoft Windows Vista에서 응용 프로그램 호환성 관리 도구를 사용하여 레거시 응용 프로그램에 상승된 실행 수준 표시

Windows 보안 액세스 제어

게시 날짜: 2005년 10월 28일

적용 대상: Microsoft Windows Vista

요약: 이 문서에서는 IT 부서에서 Microsoft Windows Vista의 UAC(사용자 계정 컨트롤) 기능으로 인해 오류가 발생하는 기존 응용 프로그램의 응용 프로그램 호환성을 보완하는 'shim'을 만들어 배포하는 방법을 설명합니다.

이 페이지에서
소개 및 배경 설명소개 및 배경 설명
실행 수준 표시실행 수준 표시
권한 상승을 위한 승인 정책권한 상승을 위한 승인 정책
응용 프로그램 호환성 데이터베이스 shim 작성 준비응용 프로그램 호환성 데이터베이스 shim 작성 준비
CompatAdmin.exe 실행CompatAdmin.exe 실행
AppCompat 데이터베이스 shim 제거AppCompat 데이터베이스 shim 제거
사내에서 그룹 정책을 사용하여 배포사내에서 그룹 정책을 사용하여 배포
사용자 지정 설치 프로그램 VBScript 예제사용자 지정 설치 프로그램 VBScript 예제
.msi 패키지 만들기.msi 패키지 만들기
MSI에 Authenticode 서명MSI에 Authenticode 서명
패키지 테스트패키지 테스트
그룹 정책을 통해 MSI 배포그룹 정책을 통해 MSI 배포
Microsoft Active Directory에 그룹 정책 추가Microsoft Active Directory에 그룹 정책 추가
배포 테스트배포 테스트
*

소개 및 배경 설명

UAC(사용자 계정 컨트롤) 기능은 원래 Microsoft Windows NT 3.1 설계에 포함되었던 Windows 보안 아키텍처를 이용합니다. Windows Vista에서 UAC를 사용하면 관리자를 비롯한 모든 사용자가 표준 사용자 계정으로 실행되고, 관리자는 필요한 경우에만 계정의 모든 권한을 사용할 수 있는 관리 응용 프로그램을 선택적으로 시작할 수 있습니다. PA(보호되는 관리자) 계정 개념은 이러한 원칙을 바탕으로 합니다. 권한이 있는 사용자 계정으로 로그온하는 경우 사실상 표준 사용자 계정 환경에 로그인되지만 승인을 거치면 모든 권한을 가지고 응용 프로그램을 실행할 수 있습니다. 사용자가 모든 권한이 부여된 상태로 응용 프로그램을 실행하려면 권한 부여 승인을 반드시 거쳐야 합니다.

Windows Vista와 호환되는 새 응용 프로그램은 표준 사용자 계정을 사용하여 실행해야 하며 관리 응용 프로그램의 경우 매니페스트 항목으로 표시해야 합니다. 사용자가 이러한 관리 응용 프로그램을 시작하려고 하면 Windows에서 사용자에게 관리 응용 프로그램을 시작하기 위해서는 승인 정보를 제공해야 한다고 알립니다. Microsoft의 로고 프로그램에 대한 자세한 내용을 알아보려면 Microsoft Windows Logo 홈 페이지 (영문)를 방문하십시오.

Windows Vista를 롤아웃하면 기존 업무용 응용 프로그램이 제대로 작동하지 않을 수 있습니다. 이러한 문제는 주로 Windows Vista에 통합되어 있는 향상된 기능과 응용 프로그램이 호환되지 않기 때문에 발생합니다. Microsoft는 IT 부서에서 호환성 문제를 파악하고 호환성 shim을 만들 수 있도록 지원하기 위해 Application Compatibility Tookit을 제공하고 있습니다. 특정 응용 프로그램의 경우 Windows Vista에서 올바르게 작동하기 위해서는 관리 작업을 수행할 수 있어야 합니다. 이를 위해서는 모든 관리 권한이 부여된 상태로 프로그램을 실행하기 전에 먼저 사용자에게 승인을 요구하도록 프로그램에 태그를 지정해야 합니다. 이 도구 키트는 이러한 태그 지정 메커니즘을 사용할 수 있도록 AppCompat 데이터베이스 항목을 구축하고 설치하는 도구입니다.

응용 프로그램 호환성에 대한 자세한 내용은 여기 (영문)를 참조하십시오.

Application Compatibility Toolkit은 여기 (영문)에서 다운로드할 수 있습니다.

실행 수준 표시

응용 프로그램의 실행 수준은 해당 응용 프로그램이 수행하는 시스템 수준 작업의 종류에 따라 선택됩니다.

RunAsUAC - 부모 프로세스와 동일한 권한으로 응용 프로그램이 실행되어야 합니다. 응용 프로그램이 속한 AppCompat 데이터베이스가 없는 것과 같습니다. 응용 프로그램을 시작한 프로세스와 동일한 권한으로 응용 프로그램이 시작됩니다.

RunAsHighest - 현재 사용자에게 부여될 수 있는 가장 높은 수준의 권한으로 응용 프로그램이 실행되어야 하지만 사용자가 관리자일 필요는 없습니다. 이 표시는 다음 두 가지 응용 프로그램 클래스에 사용됩니다.

1.

권한이 있는 사용자와 제한된 사용자가 모두 실행할 수 있고 사용자의 권한에 따라 동작이 결정되는 응용 프로그램

2.

제한된 사용자에게 부여된 권한보다 높은 수준의 권한이 필요하지만 사용자가 Administrators 그룹의 구성원일 필요는 없는(예: Backup Operators의 구성원인 사용자) 프로그램. Backup Operators 구성원인 사용자 클래스는 모든 관리자 권한이 필요한 응용 프로그램은 실행할 수 없지만 백업 응용 프로그램은 실행할 수 있습니다. 이 경우 레거시 백업 응용 프로그램을 RunAsHighest로 표시해야 합니다.

RunAsAdmin - Administrators만 응용 프로그램을 실행해야 하며 관리자 권한이 부여된 상태로 응용 프로그램이 시작되어야 합니다. 이 표시는 사용자가 Administrators 그룹의 구성원이어야 하는 레거시 응용 프로그램에 사용됩니다.

권한 상승을 위한 승인 정책

권한을 요청하는 응용 프로그램을 시작하기 위해 사용자가 입력해야 하는 승인 유형은 승인 정책에 의해 결정됩니다. 이러한 승인 정책은 로컬 보안 정책 설정을 통해 제어됩니다.

시스템의 정책을 확인/설정하려면

1.

시작 단추를 클릭하고 실행을 클릭한 다음 secpol.msc를 입력합니다.

2.

로컬 보안 설정으로 이동한 다음 로컬 정책, 보안 옵션을 차례로 클릭합니다.

3.

UAC: Behavior of the elevation prompt(UAC: 상승 메시지 표시 동작)를 선택합니다.

UAC: 상승 메시지 표시 동작

높은 수준의 사용 권한으로 프로그램을 실행할 때 사용자에게 메시지를 표시하는 방법을 결정합니다.

No Prompt(메시지 표시 안 함) - 메시지를 표시하지 않고 권한을 상승합니다.

Prompt for consent(동의 메시지 표시) - 사용자에게 계속할지 여부를 묻습니다.

Prompt for Credentials(자격 증명 메시지 표시) - 계속하려면 사용자가 로그인 암호를 입력해야 합니다(기본 설정).

이 정책은 UAC를 사용하는 경우에만 적용됩니다.

참고 대개의 경우 No Prompt(메시지 표시 안 함) 설정은 사용하지 않는 것이 좋습니다. No Prompt(메시지 표시 안 함) 권한 상승 설정을 사용하는 경우 UAC 응용 프로그램이 사용자의 승인 없이도 관리 응용 프로그램을 시작할 수 있게 됩니다.

위의 설정은 그룹 정책을 통해 제어되며 중앙에서 관리할 수 있습니다.

부모 프로세스 토큰에 따른 작업 동작

응용 프로그램에 부여될 수 있는 권한뿐만 아니라 응용 프로그램 실행 가능 여부까지도 AppCompat 데이터베이스에 지정되어 있는 응용 프로그램의 실행 수준과 응용 프로그램 실행 시 사용된 계정 권한의 조합에 따라 결정됩니다. 다음 표에는 다양한 조합에 따른 동작이 나와 있습니다.

기본 제공 로컬 관리자 계정

기본 제공 관리자는 UAC로 보호되지 않으므로 모든 응용 프로그램이 계정의 모든 권한을 부여 받은 채로 시작되고 사용자에게 승인 여부를 묻지 않습니다.

부모 프로세스 토큰: 모든 관리자 권한

승인 정책: (관계 없음)

응용 프로그램 AppCompat 데이터베이스 표시
없음 또는 RunAsUACRunAsHighestRunAsAdmin

모든 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

모든 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

모든 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

Administrators 그룹 구성원인 사용자 계정

부모 프로세스 토큰: 표준 사용자

승인 정책: 자동

응용 프로그램 AppCompat 데이터베이스 표시
없음 또는 RunAsUACRunAsHighestRunAsAdmin

표준 사용자로 응용 프로그램 시작

모든 관리자 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

모든 관리자 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

부모 프로세스 토큰: 표준 사용자

승인 정책: 동의

응용 프로그램 AppCompat 데이터베이스 표시
없음 또는 RunAsUACRunAsHighestRunAsAdmin

표준 사용자로 응용 프로그램 시작

모든 관리자 권한이 부여된 상태로 응용 프로그램 시작, 승인 여부를 묻는 메시지 표시 모든 권한이 부여된 상태로 응용 프로그램 시작

관리자 권한 부여, 승인 여부를 묻는 메시지 표시

부모 프로세스 토큰: 표준 사용자

승인 정책: 자격 증명

응용 프로그램 AppCompat 데이터베이스 표시
없음 또는 RunAsUACRunAsHighestRunAsAdmin

표준 사용자로 응용 프로그램 시작

모든 관리자 권한이 부여된 상태로 응용 프로그램 시작, 자격 증명을 묻는 메시지 표시

모든 관리자 권한이 부여된 상태로 응용 프로그램 시작, 자격 증명을 묻는 메시지 표시

부모 프로세스 토큰: 모든 관리자 권한

승인 정책: (관계 없음)

응용 프로그램 AppCompat 데이터베이스 표시
없음 또는 RunAsUACRunAsHighestRunAsAdmin

모든 관리자 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

모든 관리자 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

모든 관리자 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

표준 사용자 계정

부모 프로세스 토큰: 제한된 사용자

승인 정책: 자동

응용 프로그램 AppCompat 데이터베이스 표시
없음 또는 RunAsUACRunAsHighestRunAsAdmin

제한된 사용자로 응용 프로그램 시작

제한된 사용자로 응용 프로그램 시작

응용 프로그램을 시작할 수 없음

부모 프로세스 토큰: 제한된 사용자

승인 정책: 동의

응용 프로그램 AppCompat 데이터베이스 표시
없음 또는 RunAsUACRunAsHighestRunAsAdmin

제한된 사용자로 응용 프로그램 시작

제한된 사용자로 응용 프로그램 시작

응용 프로그램 실행 전에 관리자 자격 증명을 묻는 메시지 표시

부모 프로세스 토큰: 제한된 사용자

승인 정책: 자격 증명

응용 프로그램 AppCompat 데이터베이스 표시
없음 또는 RunAsUACRunAsHighestRunAsAdmin

제한된 사용자로 응용 프로그램 시작

제한된 사용자로 응용 프로그램 시작

응용 프로그램 실행 전에 관리자 자격 증명을 묻는 메시지 표시

관리자가 아니면서 추가 권한이 있는 사용자(Backup Operator)

부모 프로세스 토큰: 제한된 사용자

승인 정책: 자동

응용 프로그램 AppCompat 데이터베이스 표시
없음 또는 RunAsUACRunAsHighestRunAsAdmin

제한된 사용자로 응용 프로그램 시작

모든 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

응용 프로그램을 시작할 수 없음

부모 프로세스 토큰: 제한된 사용자

승인 정책: 동의

응용 프로그램 AppCompat 데이터베이스 표시
없음 또는 RunAsUACRunAsHighestRunAsAdmin

제한된 사용자로 응용 프로그램 시작

모든 권한이 부여된 상태로 응용 프로그램 시작, 승인 여부를 묻는 메시지 표시

응용 프로그램 실행 전에 관리자 자격 증명을 묻는 메시지 표시

부모 프로세스 토큰: 제한된 사용자

승인 정책: 자격 증명

응용 프로그램 AppCompat 데이터베이스 표시
없음 또는 RunAsUACRunAsHighestRunAsAdmin

제한된 사용자로 응용 프로그램 시작

모든 권한이 부여된 상태로 응용 프로그램 시작, 자격 증명을 묻는 메시지 표시

응용 프로그램 실행 전에 관리자 자격 증명을 묻는 메시지 표시

부모 프로세스 토큰: 모든 권한

승인 정책: 자동

응용 프로그램 AppCompat 데이터베이스 표시
없음 또는 RunAsUACRunAsHighestRunAsAdmin

모든 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

모든 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

응용 프로그램을 시작할 수 없음

부모 프로세스 토큰: 모든 권한

승인 정책: 동의

응용 프로그램 AppCompat 데이터베이스 표시
없음 또는 RunAsUACRunAsHighestRunAsAdmin

모든 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

모든 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

응용 프로그램 실행 전에 관리자 자격 증명을 묻는 메시지 표시

부모 프로세스 토큰: 모든 권한

승인 정책: 자격 증명

응용 프로그램 AppCompat 데이터베이스 표시
없음 또는 RunAsUACRunAsHighestRunAsAdmin

모든 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

모든 권한이 부여된 상태로 응용 프로그램 시작, 메시지를 표시하지 않음

응용 프로그램 실행 전에 관리자 자격 증명을 묻는 메시지 표시

응용 프로그램 호환성 데이터베이스 shim 작성 준비

사내에서 사용 중인 업무용 관리자 응용 프로그램이 확인되면 이 문서의 나머지 단원에 나와 있는 설명에 따라 적합한 응용 프로그램 호환성 shim을 만들어 배포할 수 있습니다.

CompatAdmin.exe 실행

CompatAdmin.exe는 사내 관리자가 Windows 새 버전에서 실행할 레거시 응용 프로그램의 프로그램 호환성 shim을 만들 수 있도록 지원하는 GUI입니다. Windows Vista에서 이 도구 키트는 shim 데이터베이스 항목을 만들어 응용 프로그램에 실행 수준을 표시할 수 있도록 기능이 향상되었습니다. IT 부서에서 데이터베이스를 만든 후에는 sdbinst.exe라는 도구를 사용하여 시스템에 데이터베이스를 설치할 수 있습니다. 이 도구도 Application Toolkit에 포함되어 있습니다.

생성된 각 데이터베이스에는 대상 응용 프로그램에 사용할 실행 수준 표시 shim이 하나 이상 포함될 수 있습니다. 다음 단계에 따라 관리 응용 프로그램 표시 방법을 결정할 수 있습니다.

1.

Windows Vista를 실행하는 해당 컴퓨터에 Application Compatibility Toolkit을 설치합니다.

2.

Windows Vista에서 제대로 실행되지 않는 레거시 관리 응용 프로그램을 모두 확인합니다. 이 과정에서 다른 Application Compatibility Toolkit 기능을 사용할 수 있습니다.

3.

각 응용 프로그램의 실행 수준을 결정합니다.
응용 프로그램에 적합한 표시에 대한 자세한 내용은 실행 수준 표시 단원을 참조하십시오.

4.

CompatAdmin.exe를 실행하여 AppCompat shim 데이터베이스를 만듭니다.

5.

sdbinst.exe를 사용하여 테스트 컴퓨터에 shim을 설치하여 테스트합니다.

예:

1.

compatadmin.exe를 시작합니다(그림 1).

2.

Fix(수정) 아이콘을 클릭합니다.

3.

프로그램 이름, 공급업체 이름, 프로그램 위치를 입력하고(그림 2) Next(다음)를 클릭합니다.

마법사의 첫 화면은 이전 Windows 버전에 일반적인 호환성 픽스를 적용하기 위한 것입니다. 실행 수준 응용 프로그램 호환성 shim은 마법사의 이후 단계에서 선택합니다.

4.

Operating System Modes(운영 체제 모드)를 None(없음)으로 선택하고 Next(다음)를 클릭합니다(그림 3).

5.

Compatibility Fixes(호환성 픽스) 목록을 스크롤하여 원하는 실행 수준을 선택합니다. 응용 프로그램에 적합한 실행 수준을 결정하려면 실행 수준 표시 단원을 참조하십시오. Next(다음)를 클릭합니다(그림 4).

6.

일치시킬 정보를 선택합니다. 이 정보는 shim이 속하게 될 파일을 찾는 데 사용됩니다. 다음 예에서는 해당 프로그램에 shim을 적용해야 할지 여부를 결정하는 기준으로 프로그램 이름뿐만 아니라 크기와 PE 체크섬도 사용되었습니다. 일치 정보를 추가로 선택할 수도 있지만 크기와 체크섬만 선택해도 실수로 shim이 같은 이름의 다른 응용 프로그램에 적용되는 것을 방지할 수 있습니다. Finish(마침)를 클릭합니다(그림 5).

7.

File(파일), Save(저장)를 차례로 클릭합니다(그림 6).

8.

데이터베이스 이름을 입력합니다. sdbinst.exe를 사용하여 shim을 설치하고 나면 이 이름이 제어판의 프로그램 추가/제거(ARP)에 표시됩니다. ARP에서 찾기 쉽도록 shim에 설명이 포함된 이름을 사용하십시오. OK(확인)를 클릭합니다(그림 7).

9.

데이터베이스 파일 이름을 선택하고 Save(저장)를 클릭합니다(그림 8).

10.

sdbinst.exe를 실행하여 방금 만든 데이터베이스 파일 이름을 매개 변수로 전달합니다(그림 9). -q 한정자를 사용하면 sdbinst.exe 실행 시에 출력 대화 상자가 표시되지 않으므로 무인 모드로 배포할 때 사용하면 됩니다.

AppCompat 데이터베이스 shim 제거

관리자는 제어판에 설치되어 있는 프로그램 애플릿을 통해 이전에 설치한 AppCompat 데이터베이스 항목을 제거할 수 있습니다(그림 10). 해당 응용 프로그램 호환성 shim을 필요로 하는 응용 프로그램이 환경에서 더 이상 사용되지 않거나 shim 자체를 수정해야 하는 경우에 이 방법을 사용할 수 있습니다. 응용 프로그램 호환성 shim을 제거하려면 목록에서 원하는 항목을 마우스 오른쪽 단추로 클릭하고 Change/Remove(변경/제거)를 선택합니다. 이 과정을 반복하여 다른 AppCompat 데이터베이스도 제거할 수 있습니다.

사내에서 그룹 정책을 사용하여 배포

이 단원에서는 compatAdmin.exe 실행 단원에서 만든 응용 프로그램 호환성 데이터베이스 shim을 그룹 정책을 사용하여 배포하는 방법을 설명합니다. 주요 단계는 다음과 같습니다.

사용자 지정 설치 프로그램 Microsoft Visual Basic 스크립트(VBScript)를 작성합니다. 여기에서 예제 스크립트를 볼 수 있습니다.

만든 각 .sdb 데이터베이스에 대해 .msi 패키지를 만듭니다.

.msi 패키지에 IT 부서의 Authenticode를 서명합니다.

그룹 정책을 통해 .msi를 배포합니다.

사용자 지정 설치 프로그램 VBScript 예제

.msi를 만들기 전에 사용자 지정 설치를 수행할 VBScript를 작성해야 합니다. 모든 .msi 패키지에 동일한 스크립트를 사용할 수 있으므로 이 작업은 한 번만 수행하면 됩니다. 예제 스크립트는 다음과 같습니다.

'--------------------------------------------------------------------------------------
'  Filename         : setsdb.vbs
'  Description      : Installs SDB entry in appcompat database
'  Version          : 1.0
'--------------------------------------------------------------------------------------
' History:
'   07-19-2005:  Created version 1.0

	dim Ws
	myCmdArgs = Session.Property("CustomActionData")
	setDir = "%ComSpec% /C sdbinst.exe -q " & chr(34) & myCmdArgs & chr(34)
	set Ws = CreateObject("WScript.Shell")
	retval = Ws.Run( setDir, 2, true )

.msi 패키지 만들기

다음은 Microsoft Visual Studio 7을 사용하여 AppCompat 데이터베이스 shim을 배포하기 위한 msi 설치 프로그램 패키지를 만드는 방법을 보여 주는 예제입니다.

1.

Visual Studio를 시작합니다.

2.

메뉴 모음에서 파일, 새 프로젝트를 차례로 클릭합니다.

3.

왼쪽 창에서 프로젝트 형식을 설치 및 배포 프로젝트로 선택합니다. 오른쪽 창에서 설치 프로젝트를 선택하고 배포 shim의 이름을 입력한 다음 확인을 클릭합니다(그림 11).

4.

오른쪽 창의 솔루션 탐색기에서 배포 프로젝트의 이름(이 예제의 경우 DeployIsUserAdminShim)을 마우스 오른쪽 단추로 클릭하고 추가, 파일을 차례로 클릭합니다.

5.

자신이 만든 .sdb 데이터베이스 파일을 찾아 열기를 클릭합니다(그림 12).

6.

4단계와 5단계를 반복하여 이전에 만든 사용자 지정 작업 VBScript의 이름을 추가합니다. 이 예제의 경우 setsdb.vbs입니다.

7.

오른쪽 창의 솔루션 탐색기에서 배포 프로젝트의 이름을 마우스 오른쪽 단추로 클릭하고 보기, 사용자 지정 작업을 차례로 클릭합니다. 왼쪽 창에 사용자 지정 작업 탭이 나타납니다(그림 13).

8.

사용자 지정 작업 탭에서 커밋 폴더를 마우스 오른쪽 단추로 클릭한 다음 사용자 지정 작업 추가를 클릭합니다.

9.

응용 프로그램 폴더를 두 번 클릭하고 vbscript 파일을 선택한 다음 확인을 클릭합니다(그림 14).

10.

왼쪽 창에서 setsdb.vbs라는 커밋 작업을 마우스 오른쪽 단추로 클릭한 다음 속성 창을 클릭합니다.

CustomActionData 속성에 다음 줄을 추가합니다.
[ProgramFilesFolder][Manufacturer]\[ProductName]\IsUserAdmin.sdb.

참고

[ProgramFilesFolder]와 [Manufacturer] 사이에는 백슬래시(\)를 사용하지 않습니다.

.sdb 파일을 만들 때 선택한 파일 이름을 사용합니다(그림 15).

11.

파일 메뉴에서 빌드를 클릭한 다음 솔루션 빌드를 클릭합니다. 빌드가 완료되면 .msi 패키지가 디버그 폴더에 만들어집니다.

12.

Visual Studio를 끝냅니다.

MSI에 Authenticode 서명

.msi 패키지를 만든 후에는 그룹 정책을 통해 배포하기 전에 Authenticode를 서명하는 것이 좋습니다. 여기에서는 사내에서 배포 .msi 패키지에 서명하는 데 사용할 서명 키가 이미 만들어져 있다고 가정합니다. 다음 예제에서 사용한 서명 및 유효성 검사 도구는 Microsoft Visual Studio SDK에 들어 있습니다.

signcode -v <path>yourkey.pvk -spc <path>yourkey.spc (deployment package).msi

서명에 타임스탬프를 넣으려면 명령줄에 다음 매개 변수를 추가합니다.

-t http://timestamp.verisign.com/scripts/timstamp.dll

다음 명령을 사용하면 서명의 유효성을 확인할 수 있습니다.

ckhtrust (deployment package).msi

파일의 유효성이 확인되고 서명 인증서가 해당 환경에서 신뢰할 수 있는 게시자 인증서에 연결되면 chktrust.exe에서 성공 반환 코드를 반환합니다.

Microsoft Authenticode 기술에 대한 자세한 내용은 여기 (영문)를 참조하십시오.

패키지 테스트

IT 부서에서 패키지를 빌드한 후에는 .msi 파일을 대상 컴퓨터에 복사한 다음 두 번 클릭하여 Microsoft Windows 설치 마법사를 열어 보는 방법으로 테스트할 수 있습니다(그림 16).

1.

다음을 클릭합니다.
설치 폴더 선택 창이 나타납니다(그림 17).

2.

다음을 클릭합니다.
설치 확인 창이 나타납니다(그림 18).

3.

다음을 클릭합니다.
설치가 완료되면 설치가 성공적으로 완료되었음을 확인하는 메시지가 표시됩니다(그림 19).

4.

닫기를 클릭합니다.
이제 제어판에서 Installed Programs(설치된 프로그램) 아이콘을 통해 .sdb 파일이 설치되어 있는지 확인할 수 있습니다. 올바르게 설치된 경우 shim 설치 프로그램과 shim 항목이 표시됩니다(그림 20).

그룹 정책을 통해 MSI 배포

IT 부서에서는 그룹 정책을 사용하여 AppCompat 데이터베이스 shim을 모든 클라이언트 컴퓨터에 자동으로 배포할 수 있습니다. 이 단원에서는 이러한 배포를 설정하는 기본 단계를 설명합니다. 그룹 정책 배포 준비에 대한 자세한 내용은 여기 (영문)를 참조하십시오.

첫 번째 단계로 shim을 배포 받을 모든 컴퓨터가 사용할 수 있는 파일 공유 위치에 .msi 배포 패키지를 넣습니다. 배포 대상은 전체 도메인이 될 수도 있고 조직 구성 단위(OU)로 제한될 수도 있습니다. 이때 파일 공유 위치에 대한 .msi 패키지의 ACL(액세스 제어 목록)이 해당 컴퓨터만 액세스할 수 있도록 올바로 설정되어 있는지 확인하는 것이 좋습니다.

이 예제에서는 \\jettdualproc\Applications라는 도메인 서버의 파일 공유 위치에 DeployIsUserAdmin.msi 파일이 저장됩니다. 이 파일에 대한 ACL은 그림 21과 같습니다.

Microsoft Active Directory에 그룹 정책 추가

1.

.msi 파일을 올바른 위치에 저장한 후에는 도메인 컨트롤러에 Domain Administrator로 로그온하여 시작 단추를 클릭하고 프로그램, 관리 도구를 차례로 가리킨 다음 Active Directory 사용자 및 컴퓨터를 클릭합니다.

2.

왼쪽 창에서 도메인 이름을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다. 나타나는 속성 창에서 그룹 정책 탭을 클릭합니다(그림 22).

3.

새로 만들기를 클릭하고 새 그룹 정책 개체(GPO)의 이름을 입력합니다. 이 예제의 경우 GPO 이름은 Deploy IsUserAdmin Shim입니다(그림 23).

4.

새로 만든 GPO를 선택하고 속성을 클릭합니다.

5.

shim은 도메인의 컴퓨터에만 적용되고 사용자에게는 적용되지 않으므로 사용자 구성 설정 사용 안 함 확인란을 선택합니다(그림 24). 확인 대화 상자가 나타나면 를 클릭합니다.

6.

보안 탭을 클릭하고 도메인 컴퓨터 액세스를 허용하는 데 필요한 ACL을 모두 추가합니다. 이때 Read and Apply Group Policy(그룹 정책 읽기 및 적용)를 반드시 선택해야 합니다. 작업을 마쳤으면 확인을 클릭합니다.

7.

열려 있는 속성 창에서 편집을 클릭합니다.
그룹 정책 개체 편집기가 나타납니다.

8.

왼쪽 창의 컴퓨터 구성에서 Software Settings(소프트웨어 설정)을 확장합니다.

9.

소프트웨어 설치를 마우스 오른쪽 단추로 클릭하고 새로 만들기, 패키지를 차례로 클릭합니다.

10.

열기 대화 상자에서 배포할 패키지를 선택하고 열기를 클릭합니다(그림 25).

11.

소프트웨어 배포 대화 상자가 나타납니다. 할당을 선택하고 확인을 클릭합니다.
그러면 패키지가 사용자 작업 없이 대상 컴퓨터에 자동으로 설치됩니다(그림 26).

선택한 .msi 패키지가 그룹 정책 개체 편집기에 표시됩니다(그림 27).

12.

그룹 정책 개체 편집기를 닫습니다.

13.

속성 창을 닫습니다.

14.

Active Directory 사용자 및 그룹 응용 프로그램을 끝냅니다.

배포 테스트

배포 결과를 테스트하려면 도메인 구성원 컴퓨터 중 하나를 다시 부팅해야 합니다. 다시 부팅하면 사용자 로그인 화면이 표시되기 전에 그룹 정책에 따라 컴퓨터에 자동으로 패키지가 설치되어야 합니다.

해당 컴퓨터에 로그온한 다음 제어판에서 Installed Programs(설치된 프로그램)를 열어 패키지가 설치되었는지 확인합니다. 성공적으로 설치된 경우 설치된 .msi와 실제 응용 프로그램 호환성 데이터베이스 항목이 표시됩니다(그림 28).