윈도우 레지스트리
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
윈도우 레지스트리는 윈도우 운영 체제의 설정 정보를 저장하는 계층적 데이터베이스이다. 윈도우 3.1에서 처음 도입되었으며, 키와 값으로 구성된다. 레지스트리 키는 폴더와 유사하며, 값과 하위 키를 포함할 수 있고, 값은 키 내에 저장된 이름/데이터 쌍이다. 레지스트리는 여러 개의 하이브 파일에 저장되며, HKEY로 시작하는 일곱 개의 미리 정의된 루트 키를 가진다. 레지스트리 편집기를 통해 수동으로 편집하거나, .REG 파일을 사용하여 설정을 가져오거나 내보낼 수 있다. 또한 명령 줄, 프로그램, 스크립트를 통해 레지스트리를 제어할 수 있다. 윈도우는 레지스트리를 백업하고 복구하는 여러 방법을 제공하며, 보안 설명자를 통해 각 키에 대한 접근 권한을 설정할 수 있다. 그룹 정책을 사용하여 여러 컴퓨터 또는 사용자의 레지스트리 설정을 관리할 수 있으며, 레거시 시스템에서는 정책 파일을 통해 레지스트리를 제어할 수 있다.
더 읽어볼만한 페이지
- 설정 파일 - MSDOS.SYS
MSDOS.SYS는 MS-DOS 운영 체제의 핵심 시스템 파일로, 부팅 과정에서 시스템 초기화 및 하드웨어 설정을 관리하며, 윈도우 9x 시리즈 등장 이후에는 윈도우 부팅 옵션을 설정하는 텍스트 파일로 기능이 변화되었다. - 설정 파일 - AUTOEXEC.BAT
AUTOEXEC.BAT는 도스 및 초기 윈도우 운영 체제에서 컴퓨터 시동 시 실행되어 환경 변수 설정, 시스템 유틸리티 실행 등에 사용되는 배치 파일이다. - 윈도우 구성 요소 - 인터넷 익스플로러
마이크로소프트가 개발한 웹 브라우저인 인터넷 익스플로러는 윈도우 운영 체제와의 통합으로 높은 시장 점유율을 유지했으나, 웹 표준 문제와 보안 취약점으로 비판받으며 2015년 엣지에 자리를 내주고 2022년 지원이 종료되었지만, 엣지의 IE 모드로 레거시 호환성을 유지하고 있다. - 윈도우 구성 요소 - 원격 데스크톱 서비스
원격 데스크톱 서비스(RDS)는 네트워크를 통해 원격으로 컴퓨터의 데스크톱 환경에 접근할 수 있게 해주는 기술이며, 클라이언트 소프트웨어, 서버 구성 요소, 다양한 역할을 수행하는 구성 요소로 구성된다.
윈도우 레지스트리 - [IT 관련 정보]에 관한 문서 | |
---|---|
개요 | |
이름 | 윈도우 레지스트리 |
원어 | Windows Registry |
종류 | 계층형 데이터베이스 |
개발 | 마이크로소프트 |
출시일 | 1992년 4월 6일 (윈도우 3.1과 함께) |
운영 체제 | 마이크로소프트 윈도우 |
플랫폼 | IA-32 x86-64 ARM (과거 DEC 알파, 아이테니엄, MIPS, 파워PC) |
포함된 제품 | 마이크로소프트 윈도우 |
라이선스 | 독점 |
![]() |
2. 역사
윈도우 레지스트리가 도입되기 이전에는 각 프로그램의 설정을 주로 `INI 파일`이라는 텍스트 파일이나 이진 파일 형태로 저장했다. 이러한 파일들은 종종 여러 사용자가 함께 쓰는 공유 위치에 저장되어 사용자별 설정을 구분하기 어려웠다.
레지스트리는 키(Key)와 값(Value)이라는 두 가지 기본 요소를 중심으로 구성된 계층형 데이터베이스이다.
반면 윈도우 레지스트리는 모든 응용 프로그램의 설정을 하나의 논리적인 저장소(실제로는 여러 파일로 나뉨)에 표준화된 방식으로 저장한다. 마이크로소프트는 이 방식이 기존 `INI 파일`보다 여러 장점을 가진다고 설명한다.[2][3] 레지스트리는 이진 형식을 사용하기 때문에 텍스트 기반의 `INI 파일`보다 데이터를 더 빠르게 읽고 쓸 수 있다. 또한, `INI 파일`에는 텍스트 정보만 저장할 수 있었던 것과 달리, 레지스트리에는 강력한 형식의 데이터를 저장할 수 있어 데이터 관리가 용이하다. 이는 윈도우에 내장된 레지스트리 편집기인 `regedit.exe`를 사용하여 키를 수동으로 편집할 때 유용하다. 사용자별 설정은 각 사용자의 경로에서 불러오므로, 여러 사용자가 하나의 시스템을 공유하더라도 각자의 설정을 유지할 수 있으며 권한이 낮은 사용자도 프로그램을 사용하는 데 제약이 적다. 또한, 네트워크 연결을 통해 원격으로 레지스트리에 접근하여 관리하거나 지원할 수 있으며, 이는 원격 레지스트리 윈도우 서비스가 실행 중이고 방화벽 설정이 허용하는 한 표준 API를 이용한 스크립트로도 가능하다. 이를 통해 백업과 복원 작업도 간편해진다.
레지스트리는 데이터베이스의 특성을 가지므로 원자적 업데이트와 같은 기능을 통해 시스템의 무결성을 향상시킨다. 예를 들어, 두 개의 프로그램이 동시에 같은 레지스트리 값을 수정하려고 할 때, 한 프로그램의 변경 작업이 완료된 후에 다른 프로그램의 변경 작업이 이루어지도록 하여 데이터의 일관성을 유지한다. 반면 `INI 파일` 방식에서는 이러한 경쟁 조건이 발생하면 데이터가 손상될 수 있었다. 윈도우 비스타 및 이후 버전의 윈도우에서는 커널 트랜잭션 관리자를 통해 레지스트리에 대한 트랜잭션 업데이트 기능을 제공하여, 여러 키나 값 변경 작업을 하나의 원자적 단위로 묶어 처리할 수 있게 되었다. (물론 NTFS 파일 시스템도 이러한 기능을 지원하므로, 이론적으로는 기존 설정 파일을 사용하면서도 동일한 수준의 데이터 무결성을 확보할 수 있다.)
윈도우 3.1 시절까지는 운영 체제의 다양한 설정 정보를 주로 `INI 파일`에 저장했지만, 설정 항목이 많아지면서 비효율적이라는 문제가 제기되어 점차 레지스트리로 대체되었다.
현재와 같이 레지스트리가 운영 체제의 핵심 요소로 널리 사용되기 시작한 것은 윈도우 95부터이다. 하지만 레지스트리 자체는 그 이전인 윈도우 3.1 때부터 존재했으며, 당시에는 파일 연결 정보나 OLE(Object Linking and Embedding) 관련 정보 등 제한적인 용도로만 사용되었다.
3. 구조
레지스트리 키는 파일 시스템의 폴더와 유사한 컨테이너 역할을 하며, 다른 키(하위 키)나 값을 포함할 수 있다. 키들은 계층 구조를 이루며, 각 키는 윈도우의 파일 경로처럼 백슬래시(\\)로 구분된 경로 형태로 표현된다. 예를 들어, `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows`는 `HKEY_LOCAL_MACHINE`이라는 최상위 키 아래의 `Software` 키, 그 아래의 `Microsoft` 키, 그리고 마지막으로 `Windows` 키를 가리킨다.
레지스트리 값은 키 안에 저장되는 이름과 데이터의 쌍으로, 파일 시스템의 파일과 유사하다. 실제 설정 데이터는 이 값에 저장된다.
레지스트리는 전체적으로 여러 개의 논리적인 단위인 하이브(hive)로 나뉘어 관리된다.[63][64] 각 하이브는 레지스트리 계층 구조의 최상위에 위치하는 루트 키(Root Key) 아래에 구성된다. 루트 키는 모두 `HKEY`라는 접두사로 시작하며, 윈도우 API에서 미리 정의된 상수 핸들 이름이나 약어로 불린다. 주요 루트 키는 다음과 같다.[4]
이러한 키와 값, 그리고 하이브 구조를 통해 윈도우 운영체제와 응용 프로그램들은 필요한 설정 정보를 체계적으로 저장하고 관리한다.
3. 1. 키와 값
레지스트리는 '''키'''(Key)와 '''값'''(Value)이라는 두 가지 기본 요소를 포함한다.
레지스트리 키는 파일 시스템의 폴더와 유사한 컨테이너 객체이다. 각 키는 여러 개의 값과 하위 키(서브키)를 가질 수 있다. 키는 계층 구조를 이루며, 각 계층은 백슬래시(\\) 기호를 사용하여 구분한다. 이는 윈도우의 파일 경로와 비슷한 방식이다. 예를 들어, `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows`는 `HKEY_LOCAL_MACHINE`이라는 최상위 키 아래의 `Software` 키, 그 아래의 `Microsoft` 키, 그리고 마지막으로 `Windows` 키를 가리킨다. 키의 이름은 대소문자를 구분하지 않으며 백슬래시를 포함할 수 없다. 모든 레지스트리 키는 액세스 제어 목록(ACL)을 통해 접근 권한이 제어될 수 있다.[4]
레지스트리 값은 키 안에 저장되는 이름과 데이터의 쌍으로, 파일 시스템의 파일과 유사한 비컨테이너 객체이다. 각 값은 특정 키에 속하며, 해당 키 내에서 고유한 이름을 가진다. 값의 이름 역시 대소문자를 구분하지 않는다. 값 이름에 백슬래시를 포함하는 것도 가능하지만, 키 경로와 혼동될 수 있어 주의해야 한다. 윈도우 API는 키 경로와 값 이름을 별도로 받아 레지스트리 값을 찾고 사용한다.
하나의 키는 여러 개의 값을 가질 수 있으며, 이름이 없는 '기본값'(Default value)을 가질 수도 있다. 이는 초창기 윈도우 3 레지스트리와의 호환성을 위한 것으로, 당시에는 키당 하나의 이름 없는 문자열 값만 가질 수 있었다.[5]
레지스트리 값은 다양한 데이터 형식을 가질 수 있으며, 각 형식은 저장된 데이터를 어떻게 해석해야 하는지를 나타낸다. 주요 데이터 형식은 다음과 같다.
유형 ID | 기호 유형 이름 | 레지스트리 값에 저장된 데이터의 의미 및 인코딩 |
---|---|---|
0 | REG_NONE | 유형 없음 (저장된 값 없음) |
1 | REG_SZ | 문자열 값. 일반적으로 UTF-16LE로 저장되며, NUL 문자로 끝난다. |
2 | REG_EXPAND_SZ | 확장 가능한 문자열 값. 환경 변수를 포함할 수 있으며, 일반적으로 UTF-16LE로 저장되고 NUL 문자로 끝난다. |
3 | REG_BINARY | 이진 데이터 (임의의 데이터). |
4 | REG_DWORD / REG_DWORD_LITTLE_ENDIAN | DWORD 값. 32비트 부호 없는 정수 (0 ~ 4,294,967,295 [232 – 1])이며, 리틀 엔디안 방식이다. |
5 | REG_DWORD_BIG_ENDIAN | DWORD 값. 32비트 부호 없는 정수 (0 ~ 4,294,967,295 [232 – 1])이며, 빅 엔디안 방식이다. |
6 | REG_LINK | 다른 레지스트리 키에 대한 심볼릭 링크(유니코드). 대상 키의 루트 키와 경로를 지정한다. |
7 | REG_MULTI_SZ | 다중 문자열 값. 비어 있지 않은 문자열들의 정렬된 목록으로, 각 문자열은 NUL 문자로 끝나고 목록 전체는 일반적으로 두 개의 NUL 문자로 끝난다. 보통 유니코드로 저장된다. |
8 | REG_RESOURCE_LIST | 리소스 목록. 플러그 앤 플레이 하드웨어 열거 및 구성에 사용된다. |
9 | REG_FULL_RESOURCE_DESCRIPTOR | 리소스 설명자. 플러그 앤 플레이 하드웨어 열거 및 구성에 사용된다. |
10 | REG_RESOURCE_REQUIREMENTS_LIST | 리소스 요구 사항 목록. 플러그 앤 플레이 하드웨어 열거 및 구성에 사용된다. |
11 | REG_QWORD / REG_QWORD_LITTLE_ENDIAN | QWORD 값. 64비트 정수이며, 리틀 엔디안 방식이다. (Windows 2000에서 도입됨)[5] |
3. 2. 하이브
레지스트리는 여러 논리적 단위인 하이브(hive)로 나눌 수 있다.[63][64] 하이브의 이름은 보통 윈도우 API 정의에 따라 모두 `HKEY`로 시작하며, HKCU(HKEY_CURRENT_USER), HKLM(HKEY_LOCAL_MACHINE)처럼 짧게 줄여 부르기도 한다. 레지스트리는 계층형 데이터베이스 구조를 가지며, 각 하이브 아래에 레지스트리 키와 값이 저장된다.특정 하이브, 특히 HKEY_LOCAL_MACHINE(HKLM)과 HKEY_CURRENT_USER(HKCU)는 서로 비슷한 구조를 가진다. 응용 프로그램은 일반적으로 설정을 찾을 때 먼저 `HKEY_CURRENT_USER\Software\제조업체 이름\응용 프로그램 이름\버전 번호\설정 이름` 경로를 확인하고, 해당 값이 없으면 HKEY_LOCAL_MACHINE의 동일한 경로에서 다시 찾는다. 설정을 저장할 때는 HKEY_LOCAL_MACHINE에 먼저 기록하려 시도하지만, 권한 등의 문제로 실패하면 HKEY_CURRENT_USER에 대신 저장하기도 한다.
레지스트리의 주요 하이브는 다음과 같다.
키 이름 | 약어 | 설명 |
---|---|---|
HKEY_CLASSES_ROOT | HKCR | 파일 연결, OLE 객체 클래스 ID 등 등록된 응용 프로그램의 정보를 포함한다. 윈도우 2000 이후 버전에서는 HKCU\Software\Classes와 HKLM\Software\Classes의 내용을 조합하여 보여주며, 두 위치에 같은 값이 있으면 HKCU의 값이 우선 적용된다.[9] 이를 통해 사용자별 또는 시스템 전체 COM 객체 등록이 가능하다. |
HKEY_CURRENT_USER | HKCU | 현재 로그인한 사용자의 개인 설정을 저장한다.[10] 실제로는 HKEY_USERS 하이브 아래에 있는 현재 사용자의 SID 키를 가리키는 링크이며, 동일한 정보는 두 위치 모두에서 접근할 수 있다. 사용자 설정은 각자의 사용자 프로필 폴더 내 `NTUSER.DAT` 및 `USRCLASS.DAT` 파일에 저장되며, 로밍 사용자 프로필을 통해 다른 컴퓨터에서도 설정을 유지할 수 있다. |
HKEY_LOCAL_MACHINE | HKLM | 컴퓨터 시스템 전체에 적용되는 설정을 포함한다. 이 키 자체는 디스크에 저장되지 않고 시스템 커널이 메모리에서 관리하며 다른 하위 키들을 매핑한다. 주요 하위 키는 다음과 같다: |
HKEY_USERS | HKU | 컴퓨터에 로드된 모든 사용자 프로파일에 대한 정보를 포함한다. 각 사용자의 HKCU는 이 하이브 아래의 해당 사용자 SID(보안 식별자) 키에 해당한다. 사용자가 로그인하면 해당 사용자 하이브가 이 키 아래에 로드된다. |
HKEY_CURRENT_CONFIG | HKCC | 현재 사용 중인 하드웨어 프로파일 설정을 포함한다. 이 정보는 실행 시간에 수집되며 디스크에 영구적으로 저장되지 않고 부팅할 때마다 생성된다. |
HKEY_PERFORMANCE_DATA | - | 시스템의 실시간 성능 데이터를 제공한다. 레지스트리 편집기에는 보이지 않지만, 윈도우 API나 작업 관리자, 성능 모니터 등을 통해 접근할 수 있다. 이 키는 어떤 하이브에도 저장되지 않으며, NT 커널이나 실행 중인 드라이버, 서비스 등에서 직접 제공한다. |
HKEY_DYN_DATA | - | 윈도우 95, 윈도우 98, 윈도우 Me 운영체제에서만 사용되던 키이다.[65][11] 플러그 앤 플레이를 포함한 하드웨어 장치 정보와 네트워크 성능 통계 등을 포함했다. 이 정보는 하드 드라이브에 저장되지 않고, 부팅 시 수집되어 메모리에 저장되는 휘발성 데이터였다.[66][12] |
레지스트리는 통합된 계층적 데이터베이스처럼 보이지만, 실제로는 하이브 파일(hive file)이라고 하는 여러 개의 디스크 파일에 분산되어 저장된다.[13] '하이브'라는 이름은 벌집(hive) 구조와 유사하다는 점에서 유래한 유머성 명칭으로 알려져 있다.[14] 일부 하이브는 휘발성이어서 디스크에 전혀 저장되지 않는다. 대표적인 예로 시스템 하드웨어 정보를 기록하는 `HKLM\HARDWARE` 하이브는 시스템이 부팅되고 하드웨어를 감지할 때마다 메모리에 새롭게 생성된다.
사용자별 개별 설정은 각 사용자의 프로필 폴더 내에 있는 사용자별 하이브 파일(예: `NTUSER.DAT`)에 저장된다. 사용자가 로그인하면 시스템은 해당 사용자의 하이브를 `HKEY_USERS` 키 아래에 로드하고, `HKCU` (HKEY_CURRENT_USER) 심볼릭 링크가 현재 사용자의 하이브를 가리키도록 설정한다. 모든 하이브가 항상 로드되어 있는 것은 아니며, 부팅 시 최소한의 하이브만 로드되고, 운영 체제 초기화, 사용자 로그인, 또는 응용 프로그램의 명시적 요청에 따라 필요한 하이브가 추가로 로드된다.
4. 편집
레지스트리는 운영 체제, 설치된 애플리케이션, 사용자별 설정 등 중요한 구성 정보를 담고 있다. 일반적으로는 운영 체제나 프로그램 설치/제거 과정에서 자동으로 관리되지만, 특정 문제를 해결하거나 설정을 변경하기 위해 수동으로 편집해야 하는 경우도 있다.
레지스트리를 직접 수정하는 것은 시스템 작동에 필수적인 정보를 건드리는 작업이기에, 잘못 변경하면 시스템에 심각하고 되돌릴 수 없는 손상을 줄 수 있다. 따라서 Microsoft는 레지스트리를 수동으로 편집하기 전에는 반드시 백업할 것을 권장한다.[18] 예를 들어, 프로그램을 제어판에서 제거해도 관련 레지스트리 항목이 완전히 삭제되지 않아 오류를 일으키는 경우, 사용자가 직접 해당 프로그램 관련 파일과 레지스트리 항목을 찾아 수동으로 제거해야 할 수 있다.[19] 또한, 도메인 로그인 문제와 같은 특정 윈도우 관련 문제를 해결하기 위해 레지스트리 편집이 필요할 때도 있다.[20]
레지스트리를 편집하는 방법은 여러 가지가 있다.
- 수동 편집: 레지스트리 편집기(`RegEdit.exe`)와 같은 도구를 사용하여 직접 키와 값을 수정할 수 있다. (자세한 내용은 수동 편집 섹션 참고)
- 그룹 정책: 그룹 정책을 이용하면 여러 컴퓨터나 사용자의 레지스트리 설정을 정책에 따라 일괄적으로 변경하고 관리할 수 있다. 정책은 특정 범위(조직 내 위치, 사용자 그룹 등)에 속한 컴퓨터나 사용자에게 적용되며, 일반적으로 90분마다 자동으로 업데이트된 정책을 확인하고 적용한다.[23] 관리자는 WMI 식 등을 활용하여 정책 적용 규칙을 세밀하게 설정하고, 관리 템플릿을 통해 정책 내용을 편집할 수 있다.
- 명령줄 도구: 명령줄 인터페이스 환경에서 `Reg.exe` 유틸리티나 `.REG` 파일 가져오기/내보내기, Windows PowerShell 등을 이용하여 레지스트리를 조작할 수 있다. (자세한 내용은 .REG 파일, 명령줄 도구 섹션 참고)
- 프로그램 또는 스크립트: 윈도우 API를 직접 호출하거나, 다양한 프로그래밍 언어(VB.NET, C#, Delphi 등)에서 제공하는 라이브러리 또는 스크립트 언어(Perl, Python, Tcl, WSH 등)를 사용하여 프로그래밍 방식으로 레지스트리를 편집할 수 있다.[26][27][28] (자세한 내용은 프로그램 또는 스크립트 섹션 참고)
이 외에도 다음과 같은 편집 관련 기능 및 방법이 있다.
- 오프라인 편집: 윈도우 드라이버 키트(Windows Driver Kit)에서 제공하는 `offreg.dll`[29] 등을 이용하여 윈도우 PE 환경이나 리눅스 같은 다른 운영체제에서 현재 부팅되지 않은 윈도우 시스템의 레지스트리 하이브 파일을 편집할 수 있다.
- COM 등록: 과거 COM 구성 요소(.DLL, .OCX 등)는 설치 시 또는 `Regsvr32.exe` 유틸리티[31], 혹은 자체 명령줄 옵션(`/Regserver`, `/Unregserver`)[32]을 통해 필요한 레지스트리 설정을 등록하거나 해제했다. DLL Hell 문제로 오작동하는 COM 애플리케이션은 때때로 이 방법을 통해 복구될 수 있다.[33]
- 변경 알림 및 필터링: 윈도우 API는 사용자 모드 애플리케이션이 특정 레지스트리 키의 변경을 감지하고 알림을 받을 수 있도록 지원한다.[34] 또한 커널 모드에서는 다른 프로그램의 레지스트리 접근을 감시하고 수정하는 필터링 기능도 제공한다.[35]
- 원격 편집: 네트워크를 통해 다른 컴퓨터의 레지스트리에 접근하여 편집하는 기능도 지원된다. 단, 원격 컴퓨터에서 원격 레지스트리 서비스가 실행 중이고 방화벽 설정이 허용되어 있어야 한다.[36][37]
4. 1. 수동 편집
윈도우 디렉터리에 있는 `regedit.exe` 또는 `regedt32.exe`를 실행하여 윈도우에서 레지스트리를 수동으로 편집할 수 있다. 그러나 레지스트리를 잘못 편집하면 시스템에 심각한 손상을 줄 수 있으므로, 편집하기 전에 반드시 백업하는 것이 좋다.[18] 레지스트리에 대한 지식이 부족하다면, 시스템 설정을 변경하는 최적화 프로그램이나 해킹 도구 사용을 피해야 한다.레지스트리 편집 도구는 윈도우 3.x에서 "등록 정보 편집기"(Registration Info Editor)라는 이름으로 처음 등장했다. 당시에는 주로 응용 프로그램의 데이터베이스 역할과 문서 내 OLE 객체 편집에 사용되었다.
윈도우 9x 운영 체제에는 윈도우와 MS-DOS 리얼 모드에서 사용할 수 있는 `REGEDIT.EXE`가 포함되었다.[67] 윈도우 NT는 레지스트리 편집에 대한 권한 관리 기능을 도입했다. 윈도우 NT 4.0과 윈도우 2000은 윈도우 9x의 `REGEDIT.EXE`와 윈도우 NT 3.x의 `REGEDT32.EXE` 두 가지 편집기를 모두 제공했다. 이 두 편집기 사이에는 몇 가지 차이점이 있었다.[59]
구분 | REGEDIT.EXE (9x 기반) | REGEDT32.EXE (NT 기반) |
---|---|---|
인터페이스 | 왼쪽 트리 뷰에 모든 하이브 표시 ("내 컴퓨터" 시작) | 각 하이브가 별도의 창으로 표시, 트리 뷰는 키만 표시 |
값 표시 | 이름, 유형, 데이터를 표 형식으로 표시 | 이름, 유형, 데이터를 문자열 목록으로 표시 |
조작 방식 | 트리 뷰에서 마우스 오른쪽 클릭 메뉴 지원 | 상단 메뉴 표시줄을 통해서만 조작 가능 |
검색 기능 | 전체 레지스트리에서 키 이름, 값, 데이터 검색 가능 | 한 번에 한 하이브 내에서 키 이름만 검색 가능 |
권한 편집 | 지원 안 함 (윈도우 9x에는 권한 개념 없음) | 지원함 (NT 레지스트리의 모든 기능 접근 가능) |
지원 데이터 형식 | 문자열(REG_SZ), 이진(REG_BINARY), DWORD(REG_DWORD) | 확장 가능 문자열(REG_EXPAND_SZ), 다중 문자열(REG_MULTI_SZ)도 지원 |
윈도우 2000이나 윈도우 NT 4.0에서 `REGEDIT.EXE`를 사용하여 `REGEDT32.EXE`만 지원하는 키 종류를 편집하면, 해당 키가 복구 불가능한 형태로 변환될 수 있었다.[68]
윈도우 XP부터는 이 두 프로그램이 `regedit.exe` 하나로 통합되었다. 새로운 `regedit.exe`는 기존 `REGEDIT.EXE`의 인터페이스에 `REGEDT32.EXE`의 기능을 추가한 형태이며, `regedt32.exe`를 실행하면 단순히 `regedit.exe`를 호출하게 되었다.[59] 따라서 위에 언급된 차이점들은 윈도우 XP 이후 버전에는 해당되지 않는다.
레지스트리 편집기는 다음과 같은 기능을 제공한다:[21]
- 레지스트리 키, 하위 키, 값, 값 데이터 생성, 조작, 이름 변경 및 삭제
- `.REG` 파일 가져오기 및 내보내기, 이진 하이브 형식으로 데이터 내보내기
- 레지스트리 하이브 형식 파일 로드, 조작 및 언로드 (윈도우 NT 기반 시스템만 해당)
- ACL 기반 권한 설정 (윈도우 NT 기반 시스템만 해당)
- 사용자가 선택한 레지스트리 키를 즐겨찾기로 등록
- 키 이름, 값 이름, 값 데이터에서 특정 문자열 검색
- 네트워크로 연결된 다른 컴퓨터의 레지스트리를 원격으로 편집
일반적으로 레지스트리 변경은 운영 체제나 응용 프로그램 설치/제거 과정에서 자동으로 이루어진다. 사용자가 직접 레지스트리를 편집하는 경우는 다음과 같다.
- 소프트웨어 자체에 특정 설정을 변경하는 인터페이스가 없는 경우
- 프로그램 제거 후에도 언인스톨러가 삭제하지 않은 설정 정보를 제거하는 경우[19]
- 컴퓨터 바이러스 등 멀웨어에 의해 변경된 레지스트리 내용을 복구하는 경우
레지스트리는 시스템 운영에 필수적인 정보를 담고 있으므로, 수동 편집 시 운영 체제 오작동이나 부팅 불가 등 심각한 문제가 발생할 수 있다. 따라서 편집 전에는 반드시 백업을 수행하고, 변경 사항에 대해 정확히 이해하고 작업해야 한다.[18] 때로는 도메인 로그인 문제와 같이 특정 윈도우 관련 문제를 해결하기 위해 레지스트리 편집이 필요할 수도 있다.[20]
레지스트리 편집기는 레지스트리의 마지막 수정 날짜와 같은 일부 메타데이터는 표시하지 않는다.
=== .REG 파일 ===
`.REG` 파일은 레지스트리의 일부를 텍스트 형식으로 내보내거나 가져올 때 사용하는 파일이다. INI 파일과 유사한 구문을 사용하며 사람이 읽을 수 있다. 윈도우 2000 이상 버전의 `.REG` 파일은 유니코드 기반이며 파일 시작 부분에 "Windows Registry Editor Version 5.00" 문자열이 포함된다. 윈도우 9x 및 윈도우 NT 4.0 버전은 ANSI 기반이며 "REGEDIT4" 문자열로 시작한다.[22] 윈도우 9x 형식의 `.REG` 파일은 윈도우 2000 이상 버전과 호환된다.[22]
`.REG` 파일의 기본 구문은 다음과 같다.[22]
[<하이브 이름>\<키 이름>\<하위 키 이름>]
"값 이름"=<값 유형>:<값 데이터>
키의 기본값은 "값 이름" 대신 `@` 기호를 사용하여 지정할 수 있다.
[<하이브 이름>\<키 이름>\<하위 키 이름>]
@=<값 유형>:<값 데이터>
문자열 값(REG_SZ)은 `<값 유형>`을 생략할 수 있다. 값 데이터 내의 백슬래시(`\`)는 이중 백슬래시(`\\`)로, 따옴표(`"`)는 백슬래시-따옴표(`\"`)로 표기해야 한다.
다음은 `HKEY_LOCAL_MACHINE\SOFTWARE\Foobar` 키에 여러 유형의 값을 추가하는 예시이다.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Foobar]
"Value A"="<이스케이프 문자가 포함된 문자열 값 데이터>"
"Value B"=hex:<쉼표로 구분된 16진수 값 목록 형태의 이진 데이터>
"Value C"=dword:
"Value D"=hex(0):
"Value E"=hex(1):
"Value F"=hex(2):<확장 가능한 문자열 값 데이터 (UTF-16LE NUL 종료 문자열을 나타내는 16진수 값 목록)>
"Value G"=hex(3):<이진 데이터 (쉼표로 구분된 16진수 값 목록)> ; "Value B"와 동일
"Value H"=hex(4):
"Value I"=hex(5):
"Value J"=hex(7):<다중 문자열 값 데이터 (UTF-16LE NUL 종료 문자열들을 나타내는 16진수 값 목록)>
"Value K"=hex(8):
"Value L"=hex(a):
"Value M"=hex(b):
`.REG` 파일을 두 번 클릭하거나, 명령줄에서 `RegEdit.exe /s 파일이름.reg` 명령을 실행하면 파일 내용이 레지스트리에 추가되거나 병합된다. `/s` 옵션은 확인 프롬프트 없이 자동으로 병합하는 기능이다.
`.REG` 파일을 사용하여 레지스트리 데이터를 제거할 수도 있다. 키 전체(하위 키 및 모든 값 포함)를 제거하려면 키 이름 앞에 빼기 기호(`-`)를 붙인다.[22]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Foobar]
특정 값만 제거하려면 등호(`=`) 뒤에 빼기 기호(`-`)를 붙인다.[22]
[HKEY_LOCAL_MACHINE\SOFTWARE\Foobar]
"Value A"=-
"Value B"=-
키의 기본값을 제거하려면 `@` 뒤에 빼기 기호(`-`)를 붙인다.
[HKEY_LOCAL_MACHINE\SOFTWARE\Foobar]
@=-
세미콜론(`;`)으로 시작하는 줄은 주석으로 처리된다.
; 이것은 주석입니다. .reg 파일의 어느 부분에나 위치할 수 있습니다.
[HKEY_LOCAL_MACHINE\SOFTWARE\Foobar]
"Value"="예제 문자열"
=== 명령줄 도구 ===
명령줄 인터페이스를 통해서도 레지스트리를 조작할 수 있다. `Reg.exe`와 `RegIni.exe` 유틸리티는 윈도우 XP 이상 버전에 포함되어 있다.
`RegEdit.exe`를 명령줄에서 사용하여 `.REG` 파일을 가져오거나 내보낼 수 있다.
- `RegEdit.exe /s 파일이름.reg`: 확인 없이 `.REG` 파일을 레지스트리에 병합한다.
- `RegEdit.exe /e 파일이름.reg`: 전체 레지스트리를 유니코드 `.REG` 파일(버전 5.00 형식)로 내보낸다. 특정 키만 내보내려면 경로를 추가한다 (예: `RegEdit.exe /e 파일이름.reg HKEY_CURRENT_USER\Software\MyApp`).
- `RegEdit.exe /a 파일이름.reg`: 전체 레지스트리를 ANSI `.REG` 파일(REGEDIT4 형식)으로 내보낸다. 특정 키만 내보낼 수도 있다.
`Reg.exe` 도구를 사용하면 레지스트리 값을 조회하거나 수정하는 등 다양한 작업을 수행할 수 있다. 예를 들어 특정 키의 버전 값을 확인하려면 다음 명령을 사용한다.
Reg.exe QUERY HKLM\Software\Microsoft\ResKit /v Version
이 외에도 CScript를 이용한 VBScript 또는 JScript, WMI 또는 `WMIC.exe`, Windows PowerShell 등을 사용하여 명령줄에서 레지스트리를 조작할 수 있다.
레지스트리 권한은 `RegIni.exe`나 `SubInACL.exe` 도구를 사용하여 명령줄에서 관리할 수 있다. 예를 들어, `HKEY_LOCAL_MACHINE\SOFTWARE` 키의 권한을 보려면 다음 명령을 사용한다.
SubInACL.exe /keyreg HKEY_LOCAL_MACHINE\SOFTWARE /display
4. 2. .REG 파일
.REG
파일(레지스트리 항목이라고도 함)은 레지스트리의 일부를 텍스트 형식으로 저장하여 내보내거나 가져오는 데 사용되는 파일이다.[22] 사람이 읽을 수 있는 형식이며 INI 파일과 유사한 구문을 가진다. 이를 통해 레지스트리 설정을 백업하거나 다른 컴퓨터로 쉽게 이전할 수 있다.윈도우 2000 이후의 운영 체제에서 생성된
.REG
파일은 시작 부분에 ''Windows Registry Editor Version 5.00'' 문자열을 포함하며 유니코드를 기반으로 한다. 반면 윈도우 9x와 NT 4.0 운영 체제에서 생성된 파일은 "REGEDIT4" 문자열을 포함하며 ANSI 기반이다.[69][22] 윈도우 9x 형식의 .REG
파일은 윈도우 2000 이후의 운영 체제와 호환되며,[22] 이들 최신 운영 체제의 레지스트리 편집기는 윈도우 9x/NT 형식으로 .REG
파일을 내보내는 기능도 지원한다..REG
파일에 저장되는 데이터는 다음과 같은 기본 구문을 따른다:[69][22][<하이브 이름>\<키 이름>\<서브키 이름>]
"값 이름"=<값 형태>:<값 데이터>
키의 기본값은 `"값 이름"` 대신 `@` 기호를 사용하여 지정할 수 있다.
[<하이브 이름>\<키 이름>\<서브키 이름>]
@=<값 형태>:<값 데이터>
문자열 값의 경우 `<값 형태>` 지정이 필수는 아니지만, 값 데이터 내의 백슬래시('\\') 문자는 이중 백슬래시('\\\\')로, 따옴표('"') 문자는 백슬래시-따옴표('\\"')로 이스케이프 처리해야 한다.
예를 들어, `HKEY_LOCAL_MACHINE\SOFTWARE\Foobar` 키에 여러 종류의 값을 추가하는
.REG
파일의 내용은 다음과 같다.Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Foobar]
"Value A"="<이스케이프 문자가 포함된 문자열 값 데이터>"
"Value B"=hex:<이진 데이터 (쉼표로 구분된 16진수 값 목록)>
"Value C"=dword:
"Value D"=hex(0):
"Value E"=hex(1):
"Value F"=hex(2):<확장 가능한 문자열 값 데이터 (UTF-16LE NUL 종료 문자열을 나타내는 쉼표로 구분된 16진수 값 목록)>
"Value G"=hex(3):<이진 데이터 (쉼표로 구분된 16진수 값 목록)> ; "Value B"와 동일
"Value H"=hex(4):
"Value I"=hex(5):
"Value J"=hex(7):<다중 문자열 값 데이터 (UTF-16LE NUL 종료 문자열을 나타내는 쉼표로 구분된 16진수 값 목록)>
"Value K"=hex(8):
"Value L"=hex(a):
"Value M"=hex(b):
.REG
파일의 내용은 해당 파일을 마우스로 두 번 클릭하거나, 명령 프롬프트에서 `/s` 스위치와 함께 사용하여 레지스트리에 추가하거나 병합할 수 있다. .REG
파일은 레지스트리 데이터를 제거하는 데에도 사용할 수 있다.키(및 모든 하위 키, 값, 데이터)를 제거하려면 키 이름 앞에 빼기 기호("-")를 붙인다.[22] 예를 들어, `HKLM\SOFTWARE\Foobar` 키를 제거하려면 다음과 같이 작성한다.
[-HKEY_LOCAL_MACHINE\SOFTWARE\Foobar]
특정 값을 제거하려면 해당 값의 등호("=") 뒤에 빼기 기호("-")를 붙인다.[22] 예를 들어, `HKLM\SOFTWARE\Foobar` 키에서 "Value A"와 "Value B" 값만 제거하려면 다음과 같다.
[HKEY_LOCAL_MACHINE\SOFTWARE\Foobar]
"Value A"=-
"Value B"=-
키의 기본값을 제거하려면 `@=-`를 사용한다.
[HKEY_LOCAL_MACHINE\SOFTWARE\Foobar]
@=-
파일 내에서 세미콜론(`;`)으로 시작하는 줄은 주석으로 간주되어 처리되지 않는다.
; 이것은 주석입니다. .reg 파일의 어느 부분에나 위치할 수 있습니다.
[HKEY_LOCAL_MACHINE\SOFTWARE\Foobar]
"Value"="Example string"
4. 3. 명령 줄 편집
레지스트리는 명령 줄 인터페이스(CLI)를 통해 여러 방법으로 제어할 수 있다. ''reg.exe'' 및 ''RegIni.exe'' 유틸리티 도구는 윈도우 XP 및 이후 버전의 윈도우에 포함되어 있으며, 이전 버전용은 별도로 내려 받거나 Microsoft 리소스 킷 CD 또는 윈도우 설치 CD 원본에서 구할 수 있다. ''reg.exe''를 사용하면 레지스트리 값을 쿼리, 추가, 삭제, 복사, 저장, 로드, 언로드, 복원, 비교, 내보내기, 가져오기 등의 작업을 수행할 수 있다.다음은 ''reg.exe''를 사용하여 특정 레지스트리 값(''Version'')을 확인하는 예시이다.
: `Reg.exe QUERY HKLM\Software\Microsoft\ResKit /v Version`
또한, 텍스트 기반의 ''.REG'' 파일을 사용하여 레지스트리 정보를 가져올 수도 있다. ''.REG'' 파일은 특정 구문에 따라 레지스트리 키와 값을 정의하며, 명령 줄에서 ''RegEdit.exe''를 통해 실행할 수 있다.
- `RegEdit.exe /s ''파일이름.reg''`: 사용자에게 확인 메시지를 표시하지 않고 자동으로 ''.REG'' 파일의 내용을 레지스트리에 병합한다. `/s` 옵션이 없으면 병합 전에 사용자 확인을 받는다. 일부 윈도우 버전에서는 `/s` 스위치가 관리자가 설정한 특정 제한을 무시하게 할 수도 있다. 다만, `/s` 사용 시 작업 실패 여부를 나타내는 반환 코드를 제대로 받지 못할 수 있다.
- `RegEdit.exe /e ''파일이름.reg'' [키 경로]`: 지정된 레지스트리 키 또는 전체 레지스트리를 유니코드 기반의 V5 형식 ''.REG'' 파일로 내보낸다. 키 경로는 공백이 포함된 경우 따옴표로 묶어야 한다.
- `RegEdit.exe /a ''파일이름.reg'' [키 경로]`: 지정된 레지스트리 키 또는 전체 레지스트리를 ANSI 기반의 V4 형식 ''.REG'' 파일로 내보낸다.
''.REG'' 파일을 이용하여 레지스트리 키나 값을 제거할 수도 있다. 키를 제거하려면 ''.REG'' 파일 내에서 해당 키 경로 앞에 빼기 표시(`-`)를 붙인다. 특정 값만 제거하려면 해당 값의 등호(`=`) 뒤에 빼기 표시(`-`)를 넣는다.[69]
예시: `ExampleKey` 키 전체 제거
: `[-HKEY_LOCAL_MACHINE\SOFTWARE\ExampleKey]`
예시: `ExampleKey` 키 아래의 "ValueA"와 "ValueB" 값만 제거
: `[HKEY_LOCAL_MACHINE\SOFTWARE\ExampleKey]`
: `"ValueA"=-`
: `"ValueB"=-`
이 외에도 윈도우 스크립트 호스트(WSH)의 VBScript나 JScript를 사용하는 `CScript.exe`, WMI 또는 `WMIC.exe`와 같은 다른 명령 줄 옵션도 존재한다.
레지스트리 권한은 ''RegIni.exe'' 또는 외부 도구인 `SubInACL.exe`를 사용하여 명령 줄에서 관리할 수 있다. 예를 들어, 특정 키의 권한을 확인하거나 소유자를 변경하는 등의 작업이 가능하다.
: `rem HKEY_LOCAL_MACHINE\SOFTWARE 키의 권한 표시`
: `SubInACL.exe /keyreg HKEY_LOCAL_MACHINE\SOFTWARE /display`
: `rem HKEY_LOCAL_MACHINE\SOFTWARE 키와 모든 하위 키의 소유자를 Administrator로 설정`
: `SubInACL.exe /keyreg HKEY_LOCAL_MACHINE\SOFTWARE /setowner=Administrator`
: `SubInACL.exe /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE /setowner=Administrator`
: `rem HKEY_LOCAL_MACHINE\SOFTWARE 키에 대해 Administrator에게 모든 권한 부여`
: `SubInACL.exe /keyreg HKEY_LOCAL_MACHINE\SOFTWARE /grant=Administrator=F`
윈도우 파워셸은 레지스트리를 파일 시스템과 유사한 방식으로 다룰 수 있는 레지스트리 공급자(registry provider)를 제공한다.[24] 이를 통해 사용자는 파일 시스템에서 파일과 디렉토리를 조작하는 데 익숙한 명령어들을 그대로 사용하여 레지스트리 키와 값을 관리할 수 있다.

- 탐색 및 조회: `Set-Location` (별칭 `cd`) 명령으로 특정 레지스트리 경로로 이동하고, `Get-ChildItem` (별칭 `ls`, `dir`, `gci`) 명령으로 하위 키 목록을 볼 수 있다.[24]
- 생성, 수정, 삭제: `New-Item`, `Rename-Item`, `Remove-Item` 등의 명령으로 키를 생성, 이름 변경, 삭제할 수 있으며, `New-ItemProperty`, `Set-ItemProperty`, `Remove-ItemProperty` 등으로 레지스트리 값을 생성, 수정, 삭제할 수 있다.
- 스크립팅: 파워셸 스크립트(.ps1 파일)를 작성하여 레지스트리 변경 작업을 자동화하고 여러 시스템에 배포할 수 있다.
- 트랜잭션 지원: 파워셸 레지스트리 공급자는 트랜잭션을 지원한다. 이는 여러 레지스트리 변경 작업을 하나의 논리적인 단위(원자적 트랜잭션)로 묶어 처리할 수 있음을 의미한다. 트랜잭션 내의 모든 작업이 성공해야만 실제 레지스트리에 반영되며, 하나라도 실패하면 모든 변경 사항이 취소되어 레지스트리 일관성을 유지하는 데 도움이 된다.[24][25]
4. 4. 프로그램 또는 스크립트
레지스트리는 고급 Windows 32 기반 API 라이브러리(advapi32.dll)의 API를 통해 편집할 수 있다.[26] 운영체제나 레지스트리 편집기가 레지스트리를 변경할 때도 이 API를 사용한다.[60] 레지스트리 API 함수의 목록은 다음과 같다.- RegCloseKey
- RegConnectRegistry
- RegCreateKey
- RegCreateKeyEx
- RegDeleteKey
- RegDeleteValue
- RegEnumKey
- RegEnumKeyEx
- RegEnumValue
- RegFlushKey
- RegGetKeySecurity
- RegLoadKey
- RegNotifyChangeKeyValue
- RegOpenKey
- RegOpenKeyEx
- RegQueryInfoKey
- RegQueryMultipleValues
- RegQueryValue
- RegQueryValueEx
- RegReplaceKey
- RegRestoreKey
- RegSaveKey
- RegSetKeySecurity
- RegSetValue
- RegSetValueEx
- RegUnLoadKey
많은 프로그래밍 언어는 기본 Windows API를 감싸서(wrapping) 프로그램이 레지스트리에 설정을 저장할 수 있도록 하는 내장 런타임 라이브러리 함수나 클래스를 제공한다. 예를 들어 VB.NET 및 C#에서는 `Microsoft.Win32.Registry` 클래스를, Delphi 및 Free Pascal에서는 `TRegistry` 클래스를 사용할 수 있다. COM을 지원하는 애플리케이션(예: Visual Basic 6)은 WSH의 `WScript.Shell` 개체를 사용할 수 있다. 또 다른 방법으로는 윈도우 리소스 킷 도구인 `Reg.exe`를 코드 내에서 실행하는 것이지만,[27] 이는 좋지 않은 프로그래밍 방식으로 간주된다.
스크립트 언어를 통해서도 레지스트리를 편집할 수 있다. Perl(`Win32::TieRegistry` 모듈 사용), Python(`winreg` 모듈 사용), Tcl(레지스트리 패키지 사용),[28] Windows PowerShell, Windows Scripting Host 등이 이를 지원한다.
특히 Windows PowerShell은 파일 시스템과 유사한 구조로 레지스트리를 다룰 수 있는 레지스트리 공급자(registry provider)를 제공한다. 이를 통해 파일 시스템에서 파일과 디렉토리를 조작하는 데 사용되는 동일한 명령어(cmdlet)를 사용하여 레지스트리의 키와 값을 조작할 수 있다.[24] PowerShell은 명령이 기본적으로 작동하는 컨텍스트를 정의하는 '현재 위치' 개념을 사용한다. `Get-ChildItem`(별칭 `ls`, `dir`, `gci`) 명령어로 현재 위치의 하위 키를 검색하고, `Set-Location`(별칭 `cd`) 명령어로 현재 위치를 다른 키로 변경할 수 있다.[24] 또한, 항목 이름 변경, 제거, 생성, 내용 설정 등의 명령어를 사용하여 키 이름을 바꾸거나, 키 또는 하위 트리 전체를 제거하거나, 값을 변경할 수 있다.
PowerShell 스크립트 파일을 통해 관리자는 실행 시 레지스트리를 변경하는 스크립트를 미리 준비하여 개별 시스템에 배포할 수 있다. PowerShell 레지스트리 공급자는 트랜잭션을 지원하므로, 레지스트리에 대한 여러 변경 사항을 단일 원자적 트랜잭션으로 묶을 수 있다. 이는 모든 변경 사항이 한 번에 적용되거나, 스크립트 실패 시 아무 변경 사항도 적용되지 않음을 보장한다.[24][25]
윈도우 드라이버 키트(Windows Driver Kit)에서 제공되는 `offreg.dll`[29] 라이브러리는 현재 시스템에 로드되지 않은 레지스트리 하이브(hive) 파일을 생성하고 조작하기 위한 API를 제공한다. 이를 이용하면 Windows PE 환경이나 심지어 리눅스와 같은 다른 운영체제에서도 오프라인 상태인 윈도우 시스템의 레지스트리를 편집할 수 있다(리눅스의 경우 오픈 소스 도구 사용 필요).
5. 위치
레지스트리는 여러 개의 파일에 나뉘어 저장되며, 이 파일들의 이름과 위치는 윈도우 버전에 따라 다르지만 모두 사용자의 로컬 컴퓨터에 존재한다. 레지스트리의 각 부분은 '하이브'(hive)라고 불리는 파일에 저장된다.[13] 일부 하이브는 시스템이 부팅될 때마다 하드웨어 정보를 바탕으로 새로 생성되므로 디스크에 영구적으로 저장되지 않는다 (예: `HKLM\HARDWARE` 하이브).
사용자별 설정은 각 사용자의 프로필 폴더 안에 있는 개별 하이브 파일에 저장된다. 사용자가 시스템에 로그인하면, 해당 사용자의 하이브가 `HKEY_USERS` 키 아래에 로드되고, `HKEY_CURRENT_USER` (HKCU) 키는 현재 로그인한 사용자의 하이브를 가리키게 된다. 만약 사용자가 로밍 프로파일을 사용한다면, 사용자 하이브 파일(`Ntuser.dat`)은 로그아웃 시 서버에 복사되고, 로그인 시 서버로부터 다시 가져온다.
=== 윈도우 NT 계열 ===
윈도우 NT 기반 운영 체제(윈도우 2000, 윈도우 XP, 윈도우 서버 2003, 윈도우 비스타 및 이후 버전 포함)는 레지스트리를 '하이브'라는 이진 파일 형식으로 저장한다. 시스템 전체에 적용되는 주요 레지스트리 파일들은 일반적으로 `%SystemRoot%\System32\Config\` 폴더에 저장된다.
사용자별 레지스트리 하이브 파일은 각 사용자의 프로필 폴더에 저장된다.
- `%UserProfile%\Ntuser.dat`: `HKEY_USERS\<사용자 SID>` 키에 해당하며, `HKEY_CURRENT_USER` 키가 이 곳을 가리킨다.
- `UsrClass.dat`: 사용자의 클래스 등록 및 파일 연결 정보를 담고 있으며, 기본적으로 로밍되지 않는다.
- 윈도우 2000, XP, Server 2003: `%UserProfile%\Local Settings\Application Data\Microsoft\Windows\Usrclass.dat` (경로는 시스템 언어에 따라 다를 수 있음)
- 윈도우 비스타 이상: `%UserProfile%\AppData\Local\Microsoft\Windows\Usrclass.dat` (경로는 고정됨)
이 파일은 `HKEY_USERS\<사용자 SID>_Classes` 키 (또는 `HKEY_CURRENT_USER\Software\Classes`)에 해당한다.
윈도우 2000은 레지스트리 하이브 파일의 손상을 대비하여 `.ALT` 확장자를 가진 대체 복사본을 유지했다.[16] 하지만 윈도우 XP와 윈도우 서버 2003부터는 이 방식을 사용하지 않는다. 대신 시스템 종료나 충돌 시 `System.log` 파일을 처리하여 시스템 하이브의 일관성을 유지한다. 또한, 윈도우 설치 후 처음 성공적으로 부팅했을 때의 시스템 레지스트리 하이브 복사본이 `%SystemRoot%\Repair` 폴더에 저장된다.
각 레지스트리 데이터 파일에는 일반적으로 `.log` 확장자를 가진 연관 파일이 있으며, 이는 다음 시작 시 중단된 업데이트를 완료하는 데 사용되는 트랜잭션 로그 역할을 한다.[17] 내부적으로 레지스트리 파일은 "셀"의 모음을 포함하는 4 KB "빈"으로 분할된다.[17]
=== 윈도우 9x/Me ===
윈도우 95, 윈도우 98, 윈도우 Me와 같은 윈도우 9x 계열 운영 체제에서는 레지스트리 파일이 `%WINDIR%` (보통 `C:\Windows`) 디렉터리에 저장된다.
- `USER.DAT`: 사용자별 설정을 저장한다. 사용자 프로필 기능이 활성화된 경우, 각 사용자의 프로필 폴더(`%WINDIR%\Profiles\<사용자 이름>\`) 아래에도 개별 `USER.DAT` 파일이 존재한다.
- `SYSTEM.DAT`: 시스템 전체 설정을 저장한다.
- `CLASSES.DAT`: 윈도우 Me에서 추가된 파일로, 파일 연결 및 COM 정보를 저장한다.
=== 윈도우 3.1 ===
윈도우 3.1에서는 `.INI` 파일의 단점을 보완하기 위해 `Reg.dat`라는 단일 레지스트리 파일을 도입했다. 이 파일은 `%WINDIR%` (보통 `C:\WINDOWS`) 디렉터리에 저장되며, 이후 윈도우 95 레지스트리의 기초가 되었다.[74]
=== 접근 ===
윈도우가 실행 중일 때는 시스템이 레지스트리 하이브 파일을 사용 중이므로 다른 프로그램이 직접 접근하거나 수정할 수 없도록 잠겨 있다. 윈도우 환경 외부(예: 다른 운영 체제나 부팅 디스크 사용)에서는 파일에 직접 접근할 수 있지만, 파일 구조가 복잡하고 공식 문서가 부족하여 직접 수정하는 것은 매우 위험하다.[61]
6. 백업 및 복구
윈도우 95는 CD-ROM에 포함된 긴급 복구 유틸리티(ERU.exe)와 구성 백업 도구(Cfgback.exe)를 통해 레지스트리를 백업하고 복원할 수 있다. 또한, 성공적으로 부팅할 때마다 레지스트리를 system.da0 및 user.da0 파일로 백업한다.
윈도우 98과 윈도우 Me에서는 레지스트리 검사 도구를 사용하여 레지스트리의 무결성을 확인하고 수정할 수 있다. 명령 프롬프트에서는 Scanreg.exe를, 그래픽 사용자 인터페이스에서는 Scanregw.exe를 이용한다.[43] 이 도구는 기본적으로 최대 5개의 자동 정규 백업본을 생성하며, 손상이 감지되면 수동 또는 자동으로 복원할 수 있다. 백업 파일은 기본적으로 %Windir%\Sysbckup 폴더에 저장되며, Scanreg.exe는 MS-DOS 환경에서도 실행 가능하다.[44]
윈도우 NT 4.0은 RDISK.EXE 유틸리티를 제공해 전체 레지스트리를 백업하고 복원할 수 있다.[45] 윈도우 2000 리소스 키트에는 레지스트리 백업 및 복구를 위한 Regback.exe와 RegRest.exe 유틸리티가 포함되어 있었으나, 현재는 지원되지 않는다.[46]
윈도우 NT 기반 운영 체제(윈도우 NT, 2000, XP 등)는 일반적으로 각 하이브의 백업본(.BAK 파일)을 %Windir%\System32\config 폴더에 자동으로 생성한다. 이 파일들은 복구 콘솔을 통해 복원할 수 있다. 또한, 윈도우 NT 계열 운영 체제에서는 부팅 시 '최후의 정상 구성' 옵션을 선택하여 하드웨어나 장치 드라이버 정보가 저장된 레지스트리 키(HKLM\SYSTEM\CurrentControlSet)를 이전 상태로 되돌릴 수 있다.
NT백업(NTBackup) 유틸리티는 '시스템 상태' 데이터의 일부로 레지스트리를 백업하고 복원하는 기능을 제공한다. 윈도우 XP의 자동 시스템 복구(ASR) 기능 역시 레지스트리 복원에 사용될 수 있다.
시스템 복원 기능은 윈도우가 정상적으로 부팅될 수 있는 상태이거나, 윈도우 비스타 이후 버전의 경우 윈도우 복구 환경(WinRE)을 통해 레지스트리를 이전 시점으로 백업하고 복원할 수 있다.
윈도우 10의 2019년 5월 업데이트(버전 1903)부터는 레지스트리의 정기적인 자동 백업 기능이 기본적으로 비활성화되었다. 마이크로소프트는 대신 시스템 복원 기능을 사용할 것을 권장하고 있다.[47]
레지스트리에 잘못된 설정이 기록되거나 데이터베이스 자체가 손상된 경우, 시스템이 자동으로 백업한 데이터를 이용해 복구할 수도 있다. 예를 들어 윈도우 XP에서는 레지스트리 데이터베이스 본체가 \windows\system32\config\ 폴더에 저장되는데, 윈도우 설치 완료 시점의 설정 데이터베이스 백업본이 \windows\repair\ 폴더에 저장된다. 복구 콘솔 등을 사용하여 이 백업 파일을 원래 위치로 복사하면 레지스트리 설정을 초기 상태로 되돌릴 수 있다.[62]
7. 보안
윈도우 NT 버전의 레지스트리 각 키는 관련 보안 설명자를 가질 수 있다. 보안 설명자는 사용자 그룹 또는 개별 사용자에게 액세스 권한을 부여하거나 거부하는 방법을 설명하는 액세스 제어 목록(ACL)을 포함한다. 레지스트리 권한 집합은 사용자 또는 사용자 그룹에 명시적으로 허용하거나 거부할 수 있는 10가지 권한/사용 권한을 포함한다.
권한 | 설명 |
---|---|
값 쿼리 | 레지스트리 키 값을 읽을 수 있는 권한. |
값 설정 | 새 값을 쓸 수 있는 권한 |
하위 키 만들기 | 하위 키를 만들 수 있는 권한. |
하위 키 열거 | 하위 키의 열거를 허용. |
알림 | 레지스트리 키 또는 하위 키에 대한 변경 알림을 요청할 수 있는 권한. |
링크 만들기 | 운영 체제에서 예약됨. |
삭제 | 키를 삭제할 수 있는 권한. |
DACL 쓰기 | 컨테이너의 DACL의 권한을 수정할 수 있는 권한. |
소유자 쓰기 | 컨테이너의 소유자를 수정할 수 있는 권한. |
제어 읽기 | DACL을 읽을 수 있는 권한. |
운영 체제의 다른 보안 개체와 마찬가지로 보안 설명자의 개별 액세스 제어 항목(ACE)은 상위 개체에서 명시적으로 또는 상속될 수 있다.[38]
Windows 리소스 보호는 윈도우 비스타 이상 버전의 윈도우 기능으로, 시스템의 무결성을 멀웨어 및 우발적인 수정으로부터 보호하기 위해 보안을 사용하여 관리자 및 시스템의 일부 민감한 키에 대한 쓰기 액세스를 거부한다.[39]
보안 설명자의 특수 ACE는 레지스트리 키 및 하위 키에 대한 강제 무결성 제어를 구현할 수도 있다. 낮은 무결성 수준에서 실행되는 프로세스는 프로세스 계정에 ACL을 통해 액세스 권한이 부여된 경우에도 레지스트리 키/값을 쓰거나 변경하거나 삭제할 수 없다. 예를 들어, 보호 모드에서 실행되는 인터넷 익스플로러는 현재 로그온한 사용자의 중간 및 낮은 무결성 레지스트리 키/값을 ''읽을'' 수 있지만 낮은 무결성 키만 수정할 수 있다.[40]
보안 외에도 다른 원인으로 인해 레지스트리 키를 삭제하거나 편집할 수 없다. NUL 문자를 포함하는 레지스트리 키는 표준 레지스트리 편집기로 삭제할 수 없으며, RegDelNull과 같은 특수 유틸리티를 사용하여 삭제해야 한다.[41][42]
8. 가상화
윈도우 NT 커널은 "InifileMapping" 기능을 통해 API 중 INI 파일 관련 API 호출을 HKEY_CURRENT_USER와 같은 레지스트리 위치의 가상 파일로 리디렉션하는 것을 지원한다.[49] 이 기능은 본래 16비트 윈도우용으로 만들어진 오래된 애플리케이션을 지원하기 위해 도입되었다. 당시 시스템 폴더는 사용자별 데이터나 설정을 저장하기에 적합하지 않다고 여겨졌기 때문에, 이러한 애플리케이션들이 윈도우 NT 플랫폼에서도 실행될 수 있도록 하기 위함이었다. 호환되지 않는 32비트 애플리케이션도 이 방식으로 리디렉션될 수 있다.
윈도우 비스타부터는 제한적인 레지스트리 가상화가 도입되었다. 이는 최소 권한 원칙을 따르지 않고 읽기 전용 시스템 위치(예: HKEY_LOCAL_MACHINE 하이브)에 사용자 데이터를 쓰려고 하는 잘못 작성된 애플리케이션의 쓰기 작업을 감지하여, 애플리케이션 자체를 수정하지 않고도 자동으로 더 적절한 사용자별 위치로 리디렉션하는 방식이다.
이와 유사하게, 애플리케이션 가상화는 특정 애플리케이션의 모든 레지스트리 관련 작업을 파일과 같은 별도의 위치로 리디렉션한다. 파일 가상화와 함께 사용하면, 애플리케이션을 컴퓨터에 직접 설치하지 않고도 실행할 수 있게 된다.
낮은 무결성 수준으로 실행되는 프로세스도 레지스트리 가상화를 활용할 수 있다. 예를 들어, 윈도우 비스타 이상에서 "보호 모드"로 실행되는 인터넷 익스플로러 7 또는 인터넷 익스플로러 8은 ActiveX 컨트롤이 레지스트리에 무언가를 쓰려고 할 때, 이를 자동으로 격리된 샌드박스 위치로 리디렉션한다. 이를 통해 일부 보안 공격을 막을 수 있다.
또한, 애플리케이션 호환성 도구 키트[50]는 심(shim)이라는 호환성 해결 방법을 제공한다. 이 심은 HKEY_LOCAL_MACHINE이나 HKEY_CLASSES_ROOT 레지스트리에 쓰려는 작업을 HKEY_CURRENT_USER로 투명하게 리디렉션하여, 충분한 권한이 없는 사용자 환경에서 애플리케이션이 제대로 작동하지 않는 LUA(Limited User Account) 관련 문제를 해결하는 데 도움을 준다.
9. 정책
윈도우 레지스트리의 설정을 관리하고 통제하는 방법으로 '정책' 기능이 활용된다. 정책은 주로 시스템 관리자가 다수의 컴퓨터나 사용자에 대해 레지스트리 설정을 일관되게 적용하거나 특정 설정을 강제하여 시스템의 안정성과 보안을 유지하고 사용자 환경을 표준화하는 데 목적을 둔다. 이를 통해 관리자는 사용자가 임의로 중요 설정을 변경하는 것을 제한할 수 있다.
최신 윈도우 운영체제에서는 그룹 정책을 통해 레지스트리 설정을 관리하며, 이는 특히 액티브 디렉터리 환경에서 중앙 집중적인 관리를 가능하게 한다. 반면, 윈도우 9x 계열이나 윈도우 NT 4.0과 같은 구형 운영체제에서는 '.POL' 확장자를 가진 정책 파일을 사용하여 레지스트리 설정을 관리했다. 각 방식에 대한 자세한 내용은 하위 섹션에서 설명한다.
9. 1. 그룹 정책
윈도우 그룹 정책은 정책에 따라 여러 대의 컴퓨터 또는 개별 사용자의 레지스트리 키를 변경할 수 있다. 정책이 컴퓨터 또는 컴퓨터의 개별 사용자에게 처음 적용될 때, 정책의 일부로 지정된 레지스트리 설정이 해당 컴퓨터 또는 사용자 설정에 적용된다.윈도우는 또한 업데이트된 정책을 찾아 일반적으로 90분마다 적용한다.[23]
정책은 해당 범위를 통해 정책이 적용될 컴퓨터와 사용자를 정의한다. 컴퓨터 또는 사용자가 정책의 범위 내에 있는지 여부는 조직 디렉터리의 컴퓨터 또는 사용자 계정 위치, 특정 사용자 또는 컴퓨터 계정, 또는 보안 그룹을 필터링할 수 있는 일련의 규칙에 의해 정의된다. Windows Management Instrumentation(WMI) 식을 사용하여 보다 고급 규칙을 설정할 수 있다. 이러한 규칙은 컴퓨터 공급업체 이름, CPU 아키텍처, 설치된 소프트웨어 또는 연결된 네트워크와 같은 속성을 필터링할 수 있다.
예를 들어, 관리자는 회계 부서의 컴퓨터에 대한 일련의 레지스트리 설정이 있는 정책과 방문자 구역의 키오스크 터미널에 대한 다른 (잠금) 레지스트리 설정이 있는 정책을 만들 수 있다. 컴퓨터가 한 범위에서 다른 범위로 이동하면 (예: 이름을 변경하거나 다른 조직 단위로 이동) 올바른 정책이 자동으로 적용된다. 정책이 변경되면 현재 범위 내에 있는 모든 컴퓨터에 자동으로 다시 적용된다.
정책은 설정을 선택하고 변경하기 위한 사용자 인터페이스를 제공하는 여러 관리 템플릿을 통해 편집된다. 관리 템플릿 집합은 확장 가능하며, 이러한 원격 관리를 지원하는 소프트웨어 패키지는 자체 템플릿을 등록할 수 있다.
윈도우 2000 및 이후 버전의 윈도우는 그룹 정책을 사용하여 그룹 정책 처리 엔진의 레지스트리 관련 클라이언트 확장을 통해 레지스트리 설정을 적용한다.[48] 정책은 `gpedit.msc`를 사용하여 단일 컴퓨터에 로컬로 적용되거나, `gpmc.msc`를 사용하여 도메인의 여러 사용자 및 컴퓨터에 적용될 수 있다.
9. 2. 레거시 시스템
윈도우 95, 윈도우 98, 윈도우 Me, 윈도우 NT 4.0에서는 관리자가 정책 파일('POLICY.POL')이라는 특수한 파일을 사용하여 레지스트리에 병합할 수 있다. 정책 파일을 이용하면 관리자는 일반 사용자가 인터넷 익스플로러의 보안 수준이나 바탕 화면 배경 그림과 같은 레지스트리 설정을 변경하지 못하도록 제한할 수 있다. 이러한 정책 파일은 주로 여러 대의 컴퓨터를 관리해야 하는 기업 환경에서 사용자의 실수나 의도적인 변경으로부터 시스템을 보호하기 위해 활용된다.정책 파일의 기본 확장자는 '.POL'이다. 이 파일은 사용자별 또는 그룹별(미리 정의된 사용자 집합)로 적용될 설정을 필터링한다. 정책 파일은 레지스트리에 직접 병합되기 때문에, 사용자가 설정을 임의로 변경하여 정책을 우회하는 것을 방지한다. 정책 파일은 일반적으로 근거리 통신망(LAN)을 통해 배포되지만, 로컬 컴퓨터에 직접 배치하여 사용할 수도 있다.
정책 파일은 마이크로소프트에서 제공하는 무료 도구를 사용하여 생성할 수 있다. 윈도우 95/98에서는 'poledit.exe'라는 프로그램을 사용하고, 윈도우 NT에서는 컴퓨터 관리 모듈을 이용한다. 정책 편집기를 실행하려면 해당 시스템의 관리자 권한이 필요하다.
정책 편집기는 로컬 컴퓨터의 현재 레지스트리 설정을 직접 변경하는 기능도 제공한다. 만약 다른 컴퓨터에 원격 레지스트리 서비스가 설치되어 실행 중이라면, 해당 원격 컴퓨터의 레지스트리도 변경할 수 있다. 정책 편집기는 변경 가능한 설정 목록을 '.ADM' 파일에서 불러오는데, 이 파일 중 하나에는 윈도우 셸에서 제공하는 설정들이 포함되어 있다. '.ADM' 파일은 일반 텍스트 형식으로 되어 있으며, 모든 문자열을 한 곳에 저장하여 다양한 언어로 쉽게 현지화할 수 있도록 지원한다.
참조
[1]
웹사이트
Windows 2000 Registry: Latest Features and APIs Provide the Power to Customize and Extend Your Apps
http://msdn.microsof[...]
Microsoft
2000-11
[2]
웹사이트
The System Registry
https://msdn.microso[...]
[3]
웹사이트
Windows 95 Architecture Components
http://www.microsoft[...]
2008-04-29
[4]
서적
Windows Via C/C++
https://books.google[...]
Microsoft Press
2008
[5]
문서
"Why do registry keys have a default value?"
https://devblogs.mic[...]
[6]
웹사이트
Designed for Windows XP Application Specification
http://www.microsoft[...]
Microsoft
2002-08-20
[7]
웹사이트
HKEY_LOCAL_MACHINE
https://technet.micr[...]
Gautam
2009
[8]
웹사이트
Registry Keys Affected by WOW64 (Windows)
https://msdn.microso[...]
Msdn.microsoft.com
2014-04-10
[9]
웹사이트
Description of the Microsoft Windows registry
http://support.micro[...]
2008-09-25
[10]
웹사이트
HKEY_CURRENT_USER
https://technet.micr[...]
Microsoft
2009
[11]
웹사이트
Description of the HKEY_DYN_DATA Registry Key in Windows 95, Windows 98, and Windows 98 SE
http://support.micro[...]
[12]
웹사이트
A Closer Look at HKEY_DYN_DATA
http://docs.rinet.ru[...]
[13]
웹사이트
Registry hives
http://msdn2.microso[...]
2007-07-19
[14]
웹사이트
Why is a registry file called a "hive"?
https://devblogs.mic[...]
The Old New Thing
2011-08-08
[15]
웹사이트
Overview of the Windows NT Registry
https://technet.micr[...]
2011-12-02
[16]
웹사이트
Inside the Registry
https://technet.micr[...]
2007-12-28
[17]
웹사이트
The Internal Structure of the Windows Registry
http://amnesia.gtisc[...]
Cranfield University
2009-02
[18]
웹사이트
Incorrect Icons Displayed for .ico Files
http://support.micro[...]
2009-11-15
[19]
웹사이트
How to Completely Uninstall / Remove a Software Program in Windows without using 3rd Party Software? - AskVG
http://www.askvg.com[...]
2011-08-26
[20]
웹사이트
You may receive a "STOP 0x00000035 NO_MORE_IRP_STACK_LOCATIONS" error message when you try to log on to a domain
http://support.micro[...]
2011-10-09
[21]
문서
key renaming is implemented as removal and add while retaining subkeys/values, as the underlying APIs do not support the rename function directly
[22]
웹사이트
How to add, modify, or delete registry subkeys and values by using a .reg file
https://support.micr[...]
[23]
웹사이트
Applying Group Policy
https://msdn.microso[...]
Microsoft
[24]
서적
Windows PowerShell in Action
https://books.google[...]
Manning Publications
2018
[25]
서적
Windows PowerShell in 24 Hours, Sams Teach Yourself
https://books.google[...]
Sams Publishing
2015-05
[26]
웹사이트
Reading and Writing Registry Values with Visual Basic
http://www.windowsde[...]
2007-07-19
[27]
웹사이트
REG command in Windows XP
http://www.petri.co.[...]
2007-07-19
[28]
웹사이트
registry manual page – Tcl Bundled Packages
http://www.tcl.tk/ma[...]
2017-12-14
[29]
웹사이트
Offline Registry Library
https://msdn.microso[...]
2014-06-04
[30]
웹사이트
DllInstall Function
https://msdn.microso[...]
Microsoft
2012-03-07
[31]
웹사이트
Regsvr32
https://msdn.microso[...]
Microsoft
2012-03-22
[32]
웹사이트
How to: Register Automation Servers
https://msdn.microso[...]
Microsoft
[33]
웹사이트
How to re-register PowerPoint 2000, PowerPoint 2003, PowerPoint 2007 and PowerPoint 2010
http://support.micro[...]
Microsoft
2012-01
[34]
웹사이트
RegNotifyChangeKeyValue function
https://msdn.microso[...]
Microsoft
[35]
웹사이트
Registering for Notifications
https://msdn.microso[...]
Microsoft
[36]
웹사이트
RegConnectRegistry function
https://msdn.microso[...]
Microsoft
[37]
웹사이트
How to Manage Remote Access to the Registry
http://support.micro[...]
Microsoft
[38]
서적
Microsoft Windows security : essentials
Wiley
2011-06-28
[39]
웹사이트
Application Compatibility: Windows Resource Protection (WRP)
https://msdn.microso[...]
Microsoft
2012-08-08
[40]
웹사이트
Understanding and Working in Protected Mode Internet Explorer
https://msdn.microso[...]
2012-08-08
[41]
웹사이트
RegDelNull v1.1
https://technet.micr[...]
2006-11-01
[42]
웹사이트
Unable to delete certain registry keys – Error while deleting key
http://support.micro[...]
Microsoft Support page.
2010-03-23
[43]
웹사이트
Description of the Windows Registry Checker Tool (Scanreg.exe)
https://support.micr[...]
[44]
웹사이트
Command-Line Switches for the Registry Checker Tool
https://support.micr[...]
[45]
웹사이트
How To Backup, Edit, and Restore the Registry in Windows NT 4.0
http://support.micro[...]
[46]
웹사이트
Technical Reference to the Registry: Related Resources
https://technet.micr[...]
Microsoft
2011-09-09
[47]
뉴스
Microsoft Kills Automatic Registry Backups in Windows 10
https://www.extremet[...]
2019-07
[48]
웹사이트
How Core Group Policy Works
https://technet.micr[...]
Microsoft
2009-09-02
[49]
웹사이트
Chapter 26 – Initialization Files and the Registry
http://www.microsoft[...]
Microsoft
2008-03-03
[50]
웹사이트
Microsoft Application Compatibility Toolkit 5.0
https://technet.micr[...]
Microsoft
2008-07-26
[51]
서적
Windows internals
Microsoft Press
[52]
웹사이트
XDG Base Directory Specification
http://standards.fre[...]
[53]
웹사이트
Application directories
http://roscidus.com/[...]
[54]
웹사이트
Case Studies Of The Top 132 Annoyances With Operating Systems Other Than RISC OS
http://www.riscos.co[...]
Page from the riscos.com website. Mentioned in points 82 and 104.
[55]
웹사이트
RISC OS tour
http://www.riscos.or[...]
[56]
웹사이트
The RISC OS Products Directory
http://productsdb.ri[...]
2006-11-02
[57]
문서
3.2. Using the Registry and Regedit
http://www.winehq.or[...]
(Wine User Guide)
[58]
문서
registry
"registry"の本来の語義は「登記」「登録」「登記所」「戸籍役場」といったものである。
[59]
웹사이트
Regedit.exe と Regedt32.exe の相違点
http://support.micro[...]
2011-05-16
[60]
웹사이트
レジストリ関数
http://support.micro[...]
2018-05-31
[61]
웹사이트
Windows Registry File Format Specification
https://github.com/m[...]
[62]
웹사이트
レジストリの破損により Windows XP を起動できなくなった場合の回復方法
https://docs.microso[...]
2006-05-24
[63]
문서
레지스트리 하이브
http://msdn2.microso[...]
[64]
문서
레지스트리 편집기에서 파일->내보내기를 누르면 "파일 형식"에서 "레지스트리 하이브 파일"로 내보낼 수 있는 옵션을 고를 수 있다. (윈도우 한글판 기준)"
[65]
문서
Description of the HKEY_DYN_DATA Registry Key in Windows 95, Windows 98, and Windows 98 Second Edition
http://support.micro[...]
[66]
웹인용
App F - A Closer Look at HKEY_DYN_DATA
http://docs.rinet.ru[...]
2008-03-31
[67]
문서
리얼 모드에서 레지스트리 편집기 사용하기
http://support.micro[...]
[68]
문서
Microsoft's ''
'[http://www.microsoft.com/technet/security/prodtech/windows2000/win2khg/05sconfg.mspx Windows 2000 Security Hardening Guide
[69]
문서
How to add, modify, or delete registry subkeys and values by using a registration entries (.reg) file
http://support.micro[...]
[70]
웹인용
Reading and Writing Registry Values with Visual Basic
http://www.windowsde[...]
2007-07-19
[71]
웹인용
REG command in Windows XP
http://www.petri.co.[...]
2007-07-19
[72]
웹인용
Microsoft Corporation
http://www.microsoft[...]
2008-05-12
[73]
웹인용
Inside the Registry
http://www.microsoft[...]
2007-12-28
[74]
웹사이트
A+ - Hardware - The Registry Tutorials
http://www.brainbell[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com