레지스트리 테이블
Registry 테이블에는 애플리케이션이 시스템 레지스트리에서 설정해야 하는 레지스트리 정보가 들어 있습니다.
Registry 테이블에는 다음과 같은 열이 있습니다.
Column | 형식 | 키 | Nullable |
---|---|---|---|
레지스트리 | 식별자 | Y | N |
Root | 정수 | N | N |
키 | RegPath | N | N |
속성 | Formatted | N | Y |
값 | Formatted | N | Y |
Component_ | 식별자 | N | N |
열
-
Registry
-
레지스트리 레코드를 식별하는 데 사용되는 기본 키입니다.
-
Root
-
레지스트리 값에 대해 미리 정의된 루트 키입니다. 이 필드에 -1 값을 입력하여 루트 키가 설치 유형에 종속되도록 합니다. 다음 표의 다른 값 중 하나를 입력하여 레지스트리 값을 특정 루트 키 아래에 쓰도록 합니다.
상수 16진수 Decimal 루트 키 (없음) - 0x001 -1 사용자별 설치인 경우 레지스트리 값은 HKEY_CURRENT_USER 아래에 기록됩니다. 컴퓨터별 설치인 경우 레지스트리 값은 HKEY_LOCAL_MACHINE 아래에 기록됩니다. 컴퓨터별 설치는 ALLUSERS 속성을 1로 설정하여 지정됩니다. msidbRegistryRootClassesRoot 0x000 0 HKEY_CLASSES_ROOT설치 관리자는 사용자별 설치 컨텍스트에서 설치하는 동안 HKCU\Software\Classes 하이브에 값을 기록하거나 값을 제거합니다.
설치 관리자는 컴퓨터별 설치 중에 HKLM\Software\Classes 하이브에 값을 기록하거나 값을 제거합니다.msidbRegistryRootCurrentUser 0x001 1 HKEY_CURRENT_USER msidbRegistryRootLocalMachine 0x002 2 HKEY_LOCAL_MACHINE msidbRegistryRootUsers 0x003 3 HKEY_USERS HKCU 하이브에 기록된 레지스트리 항목은 Component 테이블의 Attributes 열에 RegistryKeyPath 비트가 설정된 구성 요소를 참조하는 것이 좋습니다. 이렇게 하면 설치 관리자가 동일한 컴퓨터에 여러 사용자가 있을 때 필요한 레지스트리 항목을 기록합니다.
-
Key
-
레지스트리 값에 대한 지역화 가능한 키입니다.
-
Name
-
이 열에는 레지스트리 값 이름(지역화 가능)이 포함됩니다. Null이면 값 열에 입력된 데이터가 기본 레지스트리 키에 기록됩니다.
값 열이 Null이면 Name 열의 다음 표에 표시된 문자열은 특별한 의미를 갖습니다.
String 의미 + 키가 없으면 구성 요소가 설치될 때 생성됩니다. - 키가 있으면 구성 요소가 제거될 때 모든 값 및 하위 키와 함께 삭제됩니다. * 키가 없으면 구성 요소가 설치될 때 생성됩니다. 또한 키가 있으면 구성 요소가 제거될 때 모든 값 및 하위 키와 함께 삭제됩니다. 구성 요소가 설치될 때 해당 값과 하위 키와 함께 설치된 레지스트리 키를 삭제하려면 RemoveRegistry 테이블을 사용해야 합니다.
-
Value
-
이 열은 지역화 가능한 레지스트리 값입니다. 필드는 Formatted입니다. 값이 다음 접두사(예: #%value) 중 하나에 연결된 경우 값은 표에 설명된 대로 해석됩니다. 각 접두사는 숫자 기호(#)로 시작합니다. 값이 두 개 이상의 연속 숫자 기호(#)로 시작하는 경우 첫 번째 #은 무시되고 값이 해석되고 문자열로 저장됩니다.
접두사 의미 #x 값이 16진수 값(REG_BINARY)으로 해석 및 저장됩니다. #% 값이 확장 가능한 문자열(REG_EXPAND_SZ)로 해석 및 저장됩니다. # 값이 정수(REG_DWORD)로 해석 및 저장됩니다. - 값에 시퀀스 물결표 [~]가 포함된 경우 값은 Null로 구분된 문자열 목록(REG_MULTI_SZ)으로 해석됩니다. 예를 들어 3개의 문자열 a, b 및 c가 포함된 목록을 지정하려면 "a[~]b[~]c"를 사용합니다.
- 값 내의 시퀀스 [~]는 개별 문자열을 구분하고 Null 문자로 해석 및 저장됩니다.
- 문자열 목록 앞에 [~]가 있으면 문자열은 기존 레지스트리 값 문자열에 추가됩니다. 추가 문자열이 레지스트리 값에 이미 있는 경우 문자열의 원래 항목이 제거됩니다.
- 문자열 목록 끝 다음에 [~]가 있으면 문자열은 기존 레지스트리 값 문자열 앞에 추가됩니다. 앞에 추가하는 문자열이 레지스트리 값에 이미 있는 경우 문자열의 원래 항목이 제거됩니다.
- [~]이 시작과 끝 둘 다에 있거나 문자열 목록의 시작과 끝에 있지 않은 경우 문자열은 기존 레지스트리 값 문자열을 대체합니다.
- 그렇지 않으면 값이 문자열(REG_SZ)로 해석 및 저장됩니다.
-
Component_
-
레지스트리 값의 설치를 제어하는 구성 요소를 참조하는 Component 테이블의 첫 번째 열에 대한 외부 키입니다.
설명
시퀀스 테이블의 WriteRegistryValues 및 RemoveRegistryValues 작업은 이 테이블의 정보를 처리합니다. 시퀀스 테이블 사용에 대한 자세한 내용은 시퀀스 테이블 사용을 참조하세요.
레지스트리 정보는 해당 구성 요소가 로컬로 설치되거나 원본에서 실행되도록 선택된 경우 시스템 레지스트리에 기록됩니다.
설치 관리자는 키 아래의 마지막 값 또는 하위 키를 제거한 후 레지스트리 키를 제거합니다. 설치를 제거할 때 빈 레지스트리 키가 제거되지 않도록 하려면 유지해야 하는 키 아래에 더미 값을 쓰고 Name 열에 +를 입력합니다. *가 Name 열에 있으면 구성 요소가 제거될 때 모든 값과 하위 키와 함께 키가 삭제됩니다.
사용자 지정 작업을 사용하여 트랜잭션을 설치, 제거 또는 복구하는 동안 Registry 테이블에 행을 추가할 수 있습니다. 이러한 행은 Registry 테이블에 유지되지 않으며 정보는 현재 트랜잭션 중에만 사용할 수 있습니다. 따라서 사용자 지정 작업은 이러한 추가 행의 정보가 필요한 모든 설치, 제거 또는 복구 트랜잭션에서 실행되어야 합니다. 사용자 지정 작업은 작업 시퀀스에서 RemoveRegistryValues 및 WriteRegistryValues 작업 앞에 와야 합니다.
레지스트리 키를 보호하는 방법에 대한 자세한 내용은 MsiLockPermissionsEx 테이블 및 LockPermissions 테이블을 참조하세요.
유효성 검사