Windows 레지스트리
Windows Registry![]() | |
![]() Windows 10의 레지스트리 에디터(레지스트리용 사용자 인터페이스) | |
개발자 | 마이크로소프트 |
---|---|
초기 릴리즈 | 1992년 4월 Windows 3.1 사용 | , 전(
운영 체제 | Microsoft Windows |
플랫폼 | IA-32, x86-64 및 ARM(기존 DEC Alpha, Itanium, MIPS, Power)PC) |
부속품 | Microsoft Windows |
유형 | 계층형 데이터베이스 |
웹 사이트 | docs![]() |
Windows 레지스트리는, Microsoft Windows operating system 및 레지스트리의 사용을 선택하는 애플리케이션의 낮은 레벨의 설정을 격납하는 계층형 데이터베이스입니다.커널, 디바이스 드라이버, 서비스, Security Accounts Manager 및 사용자 인터페이스 모두 레지스트리를 사용할 수 있습니다.또한 레지스트리를 통해 시스템 성능을 프로파일링하기 위한 카운터에 액세스할 수 있습니다.
즉, 레지스트리 또는 Windows 레지스트리에는 Microsoft Windows 운영 체제의 모든 버전에 설치된 프로그램 및 하드웨어에 대한 정보, 설정, 옵션 및 기타 값이 포함됩니다.예를 들어 프로그램이 설치되면 프로그램의 위치, 버전, 프로그램 시작 방법 등의 설정을 포함하는 새 하위 키가 모두 Windows 레지스트리에 추가됩니다.
Windows 3.1 에 도입되었을 때, Windows Registry 에는 주로 COM 베이스의 컴포넌트의 설정 정보가 격납되어 있습니다.Windows 95 와 Windows NT 는, 개개의 프로그램의 설정을 보관하고,[1][2] 다양한 장소에 격납되어 있는 INI 파일의 풍부함에 있어서의 정보의 합리화와 집중화를 위해서, 그 사용을 확대했습니다.Windows 애플리케이션이 Windows 레지스트리를 사용할 필요는 없습니다.예를 들어, 입니다.NET Framework 응용 프로그램은 XML 파일을 구성에 사용하는 반면 휴대용 응용 프로그램은 일반적으로 구성 파일을 실행 파일과 함께 유지합니다.
근거
Windows 레지스트리보다 이전 버전입니다.INI 파일은 각 프로그램의 설정을 텍스트 파일 또는 바이너리 파일로 저장했으며, 다중 사용자 시나리오에서 사용자별 설정을 제공하지 않는 공유 위치에 있는 경우가 많습니다.반면 Windows 레지스트리는 모든 응용 프로그램 설정을 하나의 논리 저장소(단, 여러 개의 개별 파일)에 표준화된 형식으로 저장합니다.마이크로소프트에 따르면, 이것은 보다 몇 가지 이점을 제공합니다.INI [2][3]파일파일 해석은 바이너리 형식으로 훨씬 효율적으로 이루어지기 때문에 텍스트 INI 파일보다 빠르게 읽거나 쓸 수 있습니다.또, 에 격납되어 있는 텍스트 정보와 달리, 강한 타입의 데이터를 레지스트리에 격납할 수 있습니다.INI 파일이것은 키를 수동으로 편집하는 경우의 이점입니다.regedit.exe
, Windows 레지스트리 에디터가 내장되어 있습니다.사용자 기반 레지스트리 설정은 읽기 전용 시스템 위치가 아닌 사용자 고유의 경로에서 로드되기 때문에 레지스트리를 사용하면 여러 사용자가 동일한 머신을 공유할 수 있을 뿐만 아니라 권한이 적은 사용자도 프로그램을 사용할 수 있습니다.리모트 레지스트리 서비스가 실행 중이고 방화벽 규칙이 이를 허용하는 한 표준 API 세트를 사용하여 스크립트를 포함한 리모트 관리/지원을 위해 네트워크 연결을 통해 레지스트리에 액세스할 수 있으므로 백업 및 restore도 단순해집니다.
레지스트리는 데이터베이스이기 때문에 Atomic 업데이트 등의 기능으로 시스템 무결성이 향상됩니다.두 프로세스가 동시에 동일한 레지스트리 값을 업데이트하려고 하면 한 프로세스가 다른 프로세스보다 먼저 변경되어 데이터의 전체적인 일관성이 유지됩니다.에 변경이 가해지는 장소.INI 파일에 의해, 이러한 레이스 조건에 의해, 어느쪽의 갱신 시도에도 일치하지 않는 데이터의 일관성이 없어질 가능성이 있습니다.Windows Vista 이후의 operating system은, Kernel Transaction Manager 를 사용해 레지스트리에 트랜잭션 갱신을 제공하고, 기존의 커밋 어보트 시멘틱스(commit-abort semantics)에 의해서, 복수의 키나 값의 변경에 걸쳐 원자성의 보증을 확장합니다.(단, NTFS는 파일 시스템에도 이러한 지원을 제공하므로 이론적으로 기존 구성 파일에서도 동일한 보증을 얻을 수 있습니다.)
구조.
키와 값
레지스트리에는 키와 값의 두 가지 기본 요소가 있습니다.레지스트리 키는 폴더와 유사한 컨테이너 개체입니다.레지스트리 값은 파일과 유사한 컨테이너가 아닌 개체입니다.키에는 값 및 하위 키가 포함될 수 있습니다.키는 윈도우즈 경로 이름과 유사한 구문으로 참조되며 계층 수준을 나타내기 위해 백슬래시를 사용합니다.키는 대소문자를 구분하지 않고 백슬래시를 사용하지 않는 이름을 사용해야 합니다.
레지스트리 키의 계층은 저장된 "hive"에서 커널에 의해 프리로드된 레지스트리 키의 콘텐츠 또는 다른 루트 키 내의 서브키 콘텐츠에 매핑되거나 등록된 서비스 또는 DLL THA에 매핑되는 알려진 루트 키 핸들(익명하지만 유효값이 일정한 숫자 핸들)에서만 액세스할 수 있습니다.t는 포함된 서브키 및 값에 대한 액세스를 제공합니다.
예: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows 는, HKEY_LOCAL_MACHINE 루트 키의 서브 키 「Soft」의 서브 키 「Microsoft」의 서브 키 「Windows」를 참조합니다.
7개의 사전 정의된 루트 키가 있으며, 이전에는 Win32 API에서 정의된 일정한 핸들에 따라 이름이 지정되거나 동의어 약어(애플리케이션에 [4]따라 다름)로 지정되었습니다.
- HKEY_LOCAL_MACHINE 또는 HKLM
- HKEY_CURRENT_CONFIG 또는 HKCC
- HKEY_CLASSES_ROOT 또는 HKCR
- HKEY_CURRENT_USER 또는 HKCU
- HKEY_USER 또는 HKU
- HKEY_PERformance_DATA(Windows NT에서만 가능하지만 Windows 레지스트리 [5]에디터에서는 표시되지 않음)
- HKEY_DYN_DATA(Windows 9x에서만 Windows 레지스트리 에디터에 표시됨)
Windows의 다른 파일 및 서비스와 마찬가지로 모든 레지스트리 키는 Access Control List(ACL; 접근컨트롤 리스트), 사용자 권한, 응용 프로그램에 의해 취득된 보안 토큰 또는 시스템에 의해 강제된 시스템보안 정책에 의해 제한될 수 있습니다(이러한 제한은 시스템 자체에 의해 미리 정의되며 로컬 시스템 관리자가 설정할 수 있습니다).(도메인관리자에의해).다른 사용자, 프로그램, 서비스 또는 리모트시스템에서는 계층의 일부만 표시되거나 동일한 루트키와 다른 계층이 표시될 수 있습니다.
레지스트리 값은 키 내에 저장된 이름과 데이터 쌍입니다.레지스트리 값은 레지스트리 키와 별도로 참조됩니다.레지스트리 키에 저장된 각 레지스트리 값에는 대소문자가 중요하지 않은 고유한 이름이 있습니다.레지스트리 값을 쿼리 및 조작하는 Windows API 함수는 부모 키를 식별하는 키 경로 및/또는 처리와 별도로 값 이름을 가져옵니다.레지스트리 값에는 이름에 백슬래시가 포함되어 있을 수 있지만, 그렇게 하면 Windows 레지스트리 API 기능을 사용할 때(Win32에서는 사용이 권장되지 않음) 키 경로와 구별하기가 어렵습니다.
각 레지스트리 키는 어소시에이트 어레이와 비슷하기 때문에 이 용어는 다소 오해의 소지가 있습니다.표준 용어에서는 각 레지스트리 값의 이름 부분을 "키"라고 부릅니다.이 용어는 Windows 3의 16비트 레지스트리에 대한 보류입니다.레지스트리 키에는 임의의 이름/데이터 쌍을 포함할 수 없고 이름 없는 값(문자열이어야 함)이 1개만 포함되어 있습니다.이 점에서 Windows 3 레지스트리는 단일 어소시에이션 어레이와 같았습니다.키('레지스트리 키'와 '어소시에이션 어레이 키'의 양쪽 모두)는 계층을 형성하고 레지스트리 값은 모두 문자열이었습니다.32비트 레지스트리가 생성되었을 때 키별로 여러 개의 이름 값을 생성하는 추가 기능도 생성되어 이름의 의미가 다소 [6]왜곡되었습니다.이전 동작과의 호환성을 위해 각 레지스트리 키에 "기본값"이 있을 수 있습니다.이 값은 빈 문자열입니다.
각 값은 가변 길이 및 인코딩을 사용하여 임의 데이터를 저장할 수 있지만, 이 데이터를 구문 분석하는 방법을 정의하는 기호 유형(숫자 상수로서 정의됨)과 관련됩니다.표준 타입은 다음과 같습니다.[7]
타입 아이디 | 심볼 타입명 | 레지스트리 값에 저장된 데이터의 의미 및 인코딩 |
---|---|---|
0 | 레지_없음 | 유형 없음(저장된 값(있는 경우) |
1 | REG_SZ | 문자열 값. 보통 UTF-16LE에 저장 및 공개되며(Win32 API 함수의 Unicode 버전을 사용하는 경우), 보통 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 | 리지_링크 | 다른 레지스트리 키에 대한 심볼릭 링크(UNICode)로, 루트 키 및 대상 키에 대한 경로를 지정합니다. |
7 | REG_MULTI_SZ | 다중 문자열 값. 빈 문자열이 아닌 문자열의 순서 목록으로 보통 Unicode에 저장 및 표시됩니다.각 문자열은 늘 문자로 끝납니다.목록은 보통 두 번째 늘 [8]문자로 끝납니다. |
8 | REG_RESOURCE_LIST | 리소스 목록(플러그 앤 플레이 하드웨어 열거 및 구성에 사용됨) |
9 | REG_FULL_RESOURCES_Descriptor | 리소스 기술자(플러그 앤 플레이 하드웨어 열거 및 구성에서 사용) |
10 | REG_RESOURCES_REQUES_LIST | 리소스 요구 사항 목록(플러그 앤 플레이 하드웨어 열거 및 구성에 사용됨) |
11 | REG_QWORD/REG_QWORD_LITTLE_ENDIAN | QWORD 값, 64비트 정수(빅엔디안 또는 리틀엔디안 또는 미지정) ([9]Windows 2000에서 도입) |
루트 키
계층 데이터베이스의 루트 레벨에 있는 키는 일반적으로 모두 "HKEY"[2]로 시작하는 Windows API 정의에 의해 이름이 지정됩니다.이들은 종종 "HK"(HKCU 및 HKLM)로 시작하는 서너 글자의 짧은 이름으로 축약됩니다.기술적으로는 특정 키에 대한 사전 정의된 핸들(정수값 사용)로, 메모리에 유지되거나 로컬 파일 시스템에 저장되어 부팅 시 시스템 커널에 의해 로드된 하이브 파일에 저장되며 로컬 시스템에서 실행 중인 모든 프로세스 간에 공유(다양한 액세스 권한 사용)되거나 모두 로드 및 매핑됩니다.사용자가 시스템에 로그온하면 사용자 세션에서 프로세스가 시작됩니다.
HKEY_LOCAL_MACHINE(로컬 머신 고유의 구성 데이터) 노드와 HKEY_CURRENT_USER(사용자 고유의 구성 데이터) 노드는 서로 유사한 구조를 가지고 있습니다.일반적으로 사용자 애플리케이션은 "HKEY_CURRENT_USER\Software\Vendor" 이름으로 먼저 설정을 확인합니다.응용 프로그램 이름\버전\「설정명」을 참조해 주세요.설정을 찾을 수 없는 경우는, 대신에 HKEY_LOCAL_MACHINE[citation needed] 키의 같은 장소를 참조해 주세요.단, 관리자가 강제하는 정책 설정에서는 HKLM이 HKCU보다 우선하는 경우가 있습니다.Windows 로고 프로그램에는 [a][10]다양한 유형의 사용자 데이터를 저장할 수 있는 장소에 대한 특정 요건이 있으며 애플리케이션을 사용하기 위해 관리자 수준의 액세스가 필요하지 않도록 최소 권한 개념을 따라야 합니다.
HKEY_LOCAL_MACHINE(HKLM)
HKEY_LOCAL_MACHINE은 [11]로컬 컴퓨터 고유의 설정을 저장합니다.
HKLM에 의해 배치된 키는 실제로는 디스크에 저장되지 않고 다른 모든 서브키를 매핑하기 위해 시스템 커널에 의해 메모리에 유지됩니다.응용 프로그램은 추가 하위 키를 만들 수 없습니다.Windows NT에서 이 키에는 부팅 시 %SystemRoot%\에 있는 각 파일 내에 로드되는 4개의 서브키 "SAM", "SECURITY", "SYSTEM" 및 "SOFTWARE"가 포함되어 있습니다.System32\config 폴더.다섯 번째 서브키인 "HARDWARE"는 휘발성이 있어 동적으로 생성되므로 파일에 저장되지 않습니다(현재 검출된 모든 플러그 앤 플레이 디바이스의 뷰를 표시합니다).Windows Vista 이후에서는 6번째 및 7번째 서브키인 "COMPONTS"와 "BCD"가 온디맨드 커널에 의해 메모리에 매핑되어 %SystemRoot%\system32\config\에서 로드됩니다.컴포넌트 또는 부트 구성 데이터로부터 \boot\시스템 파티션의 BCD.
- 일반적으로 대부분의 사용자에게는 "HKLM\SAM" 키가 비어 있는 것으로 표시됩니다(로컬시스템 관리자 또는 로컬시스템을 관리하는 도메인 관리자로부터 액세스가 허가되지 않은 경우).로컬 시스템이 관리상 인가 또는 설정되어 있는 모든 도메인(실행 중인 시스템의 로컬 도메인 포함)의 모든 "보안 계정 관리자"(SAM) 데이터베이스를 참조하기 위해 사용됩니다.SAM 데이터베이스는 "SAM"이라는 이름의 서브키에 저장되어 있습니다.필요에 따라 각 보조 도메인별로1개씩 다른 서브키가 생성됩니다.각 SAM 데이터베이스에는 각 도메인에서 작성 및 설정된 모든 임베디드 계정(대부분 그룹 에일리어스)과 설정된 계정(게스트 계정 및 관리자 계정을 포함한 사용자, 그룹 및 그 에일리어스)이 포함되어 있습니다.이 계정에는 해당 도메인의 로그인에 사용할 수 있는 사용자 이름이 특히 포함되어 있습니다.도메인 내 3가지 고유 사용자 식별자, 활성화된 각 인증 프로토콜에 대한 각 사용자 비밀번호의 암호화 해시, 사용자 레지스트리 하이브의 저장 위치, 다양한 상태 플래그(예를 들어 계정이 열거되어 로그온 프롬프트 화면에 표시될 수 있는 경우), 도메인 목록(로컬 도메인 포함) i계정 설정처n.
- 일반적으로 대부분의 사용자에게는 "HKLM\SECURITY" 키가 비어 있으며(관리 권한을 가진 사용자에 의해 접근 권한이 부여되지 않은 경우), 현재 사용자가 로그온하고 있는 도메인의 보안 데이터베이스에 링크되어 있습니다(사용자가 로컬시스템 도메인에 로그인하고 있는 경우 이 키는 로컬머신에 의해 저장된 레지스트리 하이브에 링크됩니다).로컬 시스템 관리자 또는 내장된 "시스템" 계정과 Windows 설치 프로그램을 통해 관리됩니다.커널이 액세스하여 현재 사용자와 이 사용자가 실행하는 모든 응용 프로그램 또는 작업을 읽고 적용합니다.또한 현재 사용자가 로그온한 도메인의 SAM 데이터베이스에 동적으로 링크되는 "SAM" 서브키도 포함되어 있습니다.
- "HKLM\SYSTEM" 키는 보통 로컬 시스템에서 관리자 권한을 가진 사용자만 쓸 수 있습니다.Windows 시스템 셋업에 관한 정보, Secure Random Number Generator(RNG; 시큐어 랜덤 번호 생성기), 파일 시스템을 포함하는 현재 마운트된 디바이스 목록, 로컬 시스템에서 실행되는 시스템 하드웨어 드라이버 및 서비스 대체 구성을 포함하는 여러 개의 번호부 "HKLM\SYSTEM\Control Sets"가 포함되어 있습니다(현재 사용 중인 서비스 포함).d one 및 백업), 이러한 제어 세트의 상태를 저장하는 "HKLM\SYSTEM\Select" 서브키 및 "HKLM\SYSTEM\CurrentControlSet" 서브키와 부트 시 로컬시스템에서 현재 사용되고 있는 제어 세트에 동적으로 링크됩니다.구성된 각 제어 세트에는 다음이 포함됩니다.
- 이미 알려진 모든 플러그 앤 플레이 디바이스를 열거하여 설치된 시스템 드라이버와 관련짓는 "Enum" 서브키(및 이러한 드라이버의 디바이스 고유의 구성을 저장함),
- 설치되어 있는 모든 시스템 드라이버(디바이스 고유의 설정이 아닌 디바이스의 일람)와 서비스로서 실행되는 모든 프로그램(디바이스 고유의 자동 기동 방법 및 타이밍)을 나열하는 「서비스」서브키.
- 서비스로서 동작하는 각종 하드웨어 드라이버와 프로그램 및 기타 모든 시스템 전체의 구성을 정리하는 「Control」서브키.
- "하드웨어 프로파일" 서브키와 이러한 프로파일 중 하나에 동적으로 링크되어 있는 "하드웨어 프로파일" 서브키와 함께 기본 프로파일을 수정하기 위해 사용되는 "시스템" 또는 "소프트웨어" 설정이 각각 포함되어 있습니다.
- "HKLM\SOFTWARE" 서브키에는 소프트웨어와 Windows 설정이 포함되어 있습니다(기본 하드웨어 프로파일).대부분의 경우 응용 프로그램 및 시스템 설치 프로그램에 의해 수정됩니다.소프트웨어 벤더(각 서브키 포함)별로 구성되지만 Windows 사용자 인터페이스의 일부 설정에 대한 "Windows" 서브키, 파일 확장자, MIME 유형, 오브젝트 클래스 ID 및 인터페이스 ID(OLE, COM/DCOM 및 설치된 DLL에 대한 Activex의 경우)에서 등록된 모든 연결을 포함하는 "Classes" 서브키도 포함됩니다.hat은 이러한 타입을 로컬머신에서 처리할 수 있습니다(다만, 이러한 어소시에이션은 각 유저용으로 설정할 수 있습니다).또, 애플리케이션 및 시스템 서비스(리모트 인증, 허가, 또는 허가 거부용으로 사용되는 중앙 증명서 스토어 포함)에 대해서 일반적인 사용 정책을 실시하기 위한 「정책」서브키(벤더에 의해서도 정리되어 있습니다.로컬 네트워크 도메인 외부에서 실행 중인 시스템 또는 서비스)
- "HKLM\SOFTWARE\Wow6432Node" 키는 64비트 Windows OS 상의 32비트 응용 프로그램에서 사용되며 "HKLM\SOFTWARE"와 동등하지만 다른 키입니다.키 경로는 WoW64에 의해 32비트 어플리케이션에 HKLM[12]\SOFTWARE로 투과적으로 표시됩니다(32비트 어플리케이션이 %SystemRoot%를 참조하는 것과 같은 방식).%SystemRoot%\로서의 Syswow64시스템 32)
HKEY_CLASSES_ROOT(HKCR)
- HKEY_CLASSES_ROOT에는 파일 연결 및 OLE 오브젝트 클래스 ID 등의 등록된 응용 프로그램에 대한 정보가 포함되어 있으며 이러한 항목을 처리하는 데 사용되는 응용 프로그램에 관련지어져 있습니다.Windows 2000 이후에서는 HKCR은 사용자 기반의 HKCU\Software\Classes와 머신 기반의 HKLM\Software\Classes의 컴파일입니다.위의 양쪽 서브키에 소정의 값이 존재할 경우 HKCU\Software\Classes의 값이 [13]우선됩니다.이 설계에서는 COM 오브젝트를 머신 또는 사용자 고유의 등록이 가능합니다.
HKEY_USER(HKU)
- HKU 약어인 HKEY_USER에는 머신에 액티브하게 로드된 각 사용자 프로파일의 HKEY_CURRENT_USER 키에 대응하는 서브키가 포함되어 있습니다.단, 일반적으로 사용자 하이브는 현재 로그인한 사용자에 대해서만 로드됩니다.
HKEY_CURRENT_USER(HKCU)
- HKEY_CURRENT_USER는 HKCU 약어로 현재 로그인한 사용자 [14]고유의 설정을 저장합니다.HKEY_CURRENT_USER 키는 사용자에 대응하는HKEY_USER 서브키에 대한 링크입니다.두 위치에서 동일한 정보에 액세스할 수 있습니다.참조되는 특정 서브키는 "(HKU)\(SID)\..."입니다.여기서 (SID)는 Windows SID에 대응합니다.[HKCU] 키에 다음과 같은 서픽스([HKCU]\Software\Classes\...)가 붙어 있는 경우."는 "(HKU)\(SID)_CLASSES\"에 해당합니다.즉, 서픽스에 문자열 "_CLASSES"가 (SID)에 추가됩니다.
- Windows NT 시스템에서는, 각 유저의 설정은 NTUSER 라고 하는 독자적인 파일에 보존됩니다.DAT 및 USRCASS.자신의 Documents and Settings 하위 폴더(또는 Windows Vista 이상에서는 자신의 Users 하위 폴더)에 있는 DAT.이 하이브의 설정은 시스템 간에 로밍 프로파일을 가진 사용자를 따릅니다.
HKEY_PERformance_DATA
- 이 키는 NT 커널 자체 또는 성능 데이터를 제공하는 시스템 드라이버, 프로그램 및 서비스를 실행하는 성능 데이터에 대한 런타임 정보를 제공합니다.이 키는 하이브에 저장되어 레지스트리 에디터에 표시되지 않지만 Windows API의 레지스트리 기능 또는 태스크 매니저의 [퍼포먼스]탭(로컬시스템상의 일부 퍼포먼스 데이터만 해당) 또는 보다 고도의 제어판(퍼포먼스 모니터나 퍼포먼스 등)을 통해 표시됩니다.ormances Analyzer를 사용하여 원격 시스템을 포함한 이러한 데이터를 수집하고 기록할 수 있습니다).
HKEY_DYN_DATA
- 이 키는 Windows 95, Windows 98 및 Windows [15]Me에서만 사용됩니다. 플러그 앤 플레이 및 네트워크 성능 통계를 포함한 하드웨어 장치에 대한 정보가 들어 있습니다.이 하이브의 정보는 하드 드라이브에도 저장되지 않습니다.플러그 앤 플레이 정보는 시작 시 수집 및 구성되며 [16]메모리에 저장됩니다.
벌집
레지스트리가 통합된 계층형 데이터베이스로 표시되더라도 레지스트리의 브랜치는 실제로 [17]하이브라고 불리는 많은 디스크 파일에 저장됩니다(하이브라는 단어는 농담으로 구성되어 있습니다).[18]
일부 두드러기는 휘발성이 있어 디스크에 전혀 저장되지 않습니다.예를 들어 HKLM\HARDWARE에서 시작하는 브랜치하이브입니다이 하이브는 시스템 하드웨어에 대한 정보를 기록하고 시스템이 부팅되어 하드웨어 탐지를 수행할 때마다 생성됩니다.
시스템의 사용자에 대한 개별 설정은 사용자별로 하이브(디스크 파일)에 저장됩니다.사용자 로그인 시 시스템은 HKEY_USER 키로 사용자 하이브를 로드하고 현재 사용자를 가리키도록 HKEY_CURRENT_USER(HKEY_CURRENT_USER) 심볼 참조를 설정합니다.이를 통해 응용 프로그램은 HKCU 키 아래에 현재 사용자의 설정을 암묵적으로 저장/검색할 수 있습니다.
모든 벌통이 동시에 로드되는 것은 아닙니다.기동시에는, 최소한의 벌집 세트만이 로드되고, 그 후, operating system의 초기화시에, 유저가 로그인 할 때에, 또는 애플리케이션에 의해서 명시적으로 벌집이 로드될 때마다 벌집이 로드됩니다.
파일 위치
레지스트리는 물리적으로 여러 파일에 저장되어 있으며 일반적으로 레지스트리 내의 데이터를 조작하기 위해 사용되는 사용자 모드 API에서 난독화되어 있습니다.Windows 의 버전에 따라서, 이러한 파일의 파일이나 장소는 다릅니다만, 모두 로컬 머신에 있습니다.Windows NT 에서의 시스템레지스트리 파일의 위치는 다음과 같습니다.%SystemRoot%\System32\Config
; 사용자 고유의 HKEY_CURRENT_USER 사용자 레지스트리 하이브는 에 저장됩니다.Ntuser.dat
사용자 프로파일 내에 있습니다.유저 마다 1개의 프로파일이 있습니다.사용자가 로밍 프로파일을 가지고 있는 경우, 이 파일은 각각 로그아웃시 및 로그인시에 서버간에 카피됩니다.UsrClass.dat이라는 이름의 두 번째 사용자 고유의 레지스트리 파일에는 COM 레지스트리 엔트리가 포함되어 있으며 기본적으로 로밍되지 않습니다.
윈도 NT
Windows NT 시스템은 레지스트리를 바이너리 파일 형식으로 저장합니다.레지스트리 편집기는 이러한 운영 체제에서 내보내기, 로드 및 언로드할 수 있습니다.다음 시스템 레지스트리 파일은 에 저장됩니다.%SystemRoot%\System32\Config\
:
Sam
– HKEY_LOCAL_MACHINE\SAMSecurity
– HKEY_LOCAL_MACHINE\SECURITYSoftware
– HKEY_LOCAL_MACHINE\SOFTWARESystem
– HKEY_LOCAL_MACHINE\SYSTEMDefault
– HKEY_USER\.체납Userdiff
– 벌집과 관련이 없습니다.운영 [19]체제를 업그레이드할 때만 사용됩니다.
다음 파일은 각 사용자의 프로파일 폴더에 저장됩니다.
%USERPROFILE%\Ntuser.dat
– HKEY_USER\<사용자 SID>(HKEY_CURRENT_USER에 의해 링크됨)
Windows 2000 、 Server 2003 、 Windows XP 에서는, 다음의 유저 고유의 파일이 파일의 관련성과 COM 정보에 사용됩니다.
%USERPROFILE%\Local Settings\Application Data\Microsoft\Windows\Usrclass.dat
(경로가 현지화되어 있음) – HKEY_USER\<사용자 SID>_Classes(HKEY_CURRENT_USER\Software\Classes)
Windows Vista 이후의 경우는, 패스가 다음과 같이 변경되었습니다.
%USERPROFILE%\AppData\Local\Microsoft\Windows\Usrclass.dat
(경로는 현지화되지 않음)에일리어스%LocalAppData%\Microsoft\Windows\Usrclass.dat
– HKEY_USER\<사용자 SID>_클래스(HKEY_CURRENT_USER\소프트웨어\Classes)
Windows 2000 에서는, 레지스트리 하이브(.)의 대체 카피가 보관 유지되고 있습니다.ALT) 및 파손이 [20]검출되면 ALT로의 전환을 시도합니다.Windows XP 및 Windows Server 2003에서는System.alt
이러한 버전의 Windows 에서는 NTLDR 로 다음의 처리를 실시할 수 있기 때문에, 하이브.System.log
셧다운 또는 크래시 중에 일관되지 않게 된 시스템하이브를 최신 상태로 만듭니다.또,%SystemRoot%\Repair
폴더에는 설치 후 생성된 시스템의 레지스트리 하이브와 Windows를 처음 시작한 후 생성된 레지스트리 하이브의 복사본이 포함되어 있습니다.
각 레지스트리 데이터 파일에는 ".log" 확장자를 가진 관련 파일이 있습니다.이 파일은 트랜잭션 로그로 동작하며 다음 시작 [21]시 중단된 업데이트를 완료할 수 있도록 합니다.레지스트리의 파일은, 「셀」[21]의 컬렉션을 포함한 4 kB의 「빈」으로 분할됩니다.
Windows 9x
레지스트리 파일은 에 저장됩니다.%WINDIR%
이름 아래 전화번호부USER.DAT
그리고.SYSTEM.DAT
가 더해져CLASSES.DAT
또, 각 유저 프로파일(프로파일이 유효하게 되어 있는 경우)에는, 독자적인 프로파일이 있습니다.USER.DAT
의 사용자 프로파일 디렉토리에 있는 파일%WINDIR%\Profiles\<Username>\
.
Windows 3.11
유일한 레지스트리 파일이 호출됩니다.REG.DAT
이 파일은 에 저장되어 있습니다.%WINDIR%
디렉토리로 이동합니다.
Windows 10 모바일
주의: 레지스트리 파일에 액세스 하려면 , 다음의 어느쪽인가를 사용해 전화기를 특수 모드로 설정할 필요가 있습니다.
- WpInternals (모바일 디바이스를 플래시 모드로 합니다.)
- InterOp Tools (MTP를 사용하여 MainOS 파티션을 마운트합니다.)
위의 방법 중 하나가 유효한 경우 - 디바이스 레지스트리 파일은 다음 위치에 있습니다.
{전화}\EFIESP\Windows\System32\config
주의: InterOp Tools에는 레지스트리 에디터도 포함되어 있습니다.
편집
레지스트리 에디터
레지스트리에는, operating system, 인스톨 끝난 애플리케이션의 중요한 설정 정보, 및 각 유저와 애플리케이션의 개별 설정이 포함됩니다.레지스트리에서 운영체제 구성을 부주의하게 변경하면 돌이킬 수 없는 손상이 발생할 수 있습니다.따라서 일반적으로 레지스트리 데이터베이스 변경은 설치/구성 및 삭제 중에 수행하는 설치 프로그램뿐입니다.사용자가 레지스트리를 수동으로 편집하려는 경우 변경 [22]전에 레지스트리의 백업을 수행하는 것이 좋습니다.프로그램이 제어판에서 제거될 때 완전히 제거되지 않을 수 있으며 누락된 프로그램에 대한 참조로 인해 오류나 결함이 발생한 경우 사용자가 프로그램 파일 등의 내부 디렉토리를 수동으로 확인해야 할 수 있습니다.그 후, 레지스트리에서 언인스톨 된 프로그램에 대한 참조를 수동으로 삭제할 필요가 있습니다.이 작업은 보통 RegEdit.[23]exe를 사용하여 수행합니다.레지스트리를 [24]편집하는 것으로써, 도메인 로그인시의 문제를 해결할 수 있는 등, Windows 고유의 문제를 회피하기 위해서 레지스트리의 편집이 필요한 경우가 있습니다.
Windows 레지스트리는 RegEdit 등의 프로그램을 사용하여 수동으로 편집할 수 있습니다.exe. 단, 마지막 수정일 등 레지스트리의 메타데이터는 표시되지 않습니다.
3.1/95 시리즈 운영 체제의 레지스트리 에디터는 RegEdit입니다.Windows NT 의 경우는 RegEdt32.exe 입니다.이 기능은 Windows XP 에서 통합됩니다.RegEdit과 유사한 옵션 도구 및/또는 서드파티 도구.exe는 많은 Windows CE 버전에서 사용할 수 있습니다.
레지스트리 에디터를 사용하면, 다음의 기능을 실행할 수 있습니다.
- 레지스트리 키, 하위 키, 값 및 값 데이터 생성, 조작, 이름[25] 변경 및 삭제
- Import 및 내보내기.
REG
파일, 이진 하이브 형식으로 데이터 내보내기 - 레지스트리 하이브 형식 파일 로드, 조작 및 언로드(Windows NT 시스템만 해당)
- ACL을 기반으로 권한 설정(Windows NT 시스템만 해당)
- 사용자가 선택한 레지스트리 키를 즐겨찾기로 즐겨찾기
- 키 이름, 값 이름 및 값 데이터에서 특정 문자열 찾기
- 네트워크로 연결된 다른 컴퓨터의 레지스트리 원격 편집
.REG
파일
.REG
파일(등록 항목이라고도 함)은 INI 기반 구문을 사용하여 레지스트리의 일부를 내보내거나 가져오기 위한 텍스트 기반 판독 가능한 파일입니다.Windows 2000 이후에서는, 선두에 Windows Registry Editor Version 5.00 문자열이 포함되어 Unicode 베이스입니다.Windows 9x 및 NT 4.0 시스템에서는 REGEDIT4 문자열이 포함되어 ANSI 기반입니다.[26]Windows 9x 포맷.REG
파일은 Windows 2000 이후와 호환성이 있습니다.이러한 시스템의 Windows 의 레지스트리 에디터는, export도 서포트하고 있습니다..REG
Windows 9x/NT 형식의 파일입니다.데이터는 다음 위치에 저장됩니다..REG
다음 [26]구문을 사용하여 파일을 만듭니다.
[<본명>\]<키명>\<서브키명> "값 이름"=<값 유형>:<값 데이터>
키의 기본값은 "값 이름" 대신 "@"을 사용하여 편집할 수 있습니다.
[<본명>\]<키명>\<서브키명> @=<값 유형>:<값 데이터>
문자열 값에는 <Value type>이 필요 없습니다(예 참조).백슬래시('\')는 더블백슬래시('\')로, 따옴표('')는 백슬래시 따옴표('')로 써야 합니다.
예를 들어, "값 A", "값 B", "값 C", "값 D", "값 E", "값 F", "값 G", "값 H", "값 I", "값 J", "값 K", "값 L", "값 L" 및 "값"에 값을 추가하려면 다음과 같이 하십시오.
Windows 레지스트리 에디터 버전 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Foobar] "Value A"="<Value B"="Value B"="Value"="Value B"="Value (16진수치의 쉼표로 구분된 목록)>"Value C="="Word:<DWORD value integer> "Value D" = value(0):<REG_NONE(쉼표로 구분된 16진수 값 목록)> "Value E"=value(1):<REG_SZ(UTF-16LE NUL 종단 문자열을 나타내는 쉼표로 구분된 16진수 값 목록)> "Value F"=value(2):<확장 가능한 문자열 값 데이터(UTF-16LE NUL로 종단된 문자열을 나타내는 쉼표로 구분된 16진수 값 목록)> "Value G"=value(3):<2진수 데이터(쉼표로 구분된 16진수 값 목록)>; "값 B" "값 H"=값 H(4):<DWORD 값(쉼표로 구분된 4개의 16진수 값 목록, 리틀 엔디안 바이트 순서)> "Value I"=value(5):<DWORD 값(쉼표로 구분된 4개의 16진수 값 목록, 빅 엔디언 바이트 순서)> "값 J"=값(7):<멀티 스트링 값 데이터(UTF-16LE NUL 종단 문자열을 나타내는 16진수 값의 쉼표 목록)> "값 K" = value (8) :<REG_RESOURCE_LIST(쉼표로 구분된 16진수 값 목록)> "Value L"=value(a):<REG_RESOURCE_REQUREMENTS_LIST(16진수치의 쉼표로 구분된 목록)> "Value M"=value(b):<QWORD 값(리틀엔디안 바이트 순서로 8개의 16진수 값의 쉼표 목록)>
데이터 원본.REG
이러한 파일을 더블 클릭하거나 명령줄의 /s 스위치를 사용하여 레지스트리에서 파일을 추가/삭제할 수 있습니다. REG
파일을 사용하여 레지스트리 데이터를 삭제할 수도 있습니다.
키(및 모든 하위 키, 값 및 데이터)를 삭제하려면 키 이름 앞에 마이너스 기호("-")[26]가 있어야 합니다.
예를 들어 HKLM\SOFTWARE\Foobar 키(및 모든 서브키, 값 및 데이터)를 삭제하려면
[-HKEY_LOCAL_MACHINE\SOFTWARE\Foobar]
값과 해당 데이터를 제거하려면 제거할 값의 등호("=")[26] 뒤에 마이너스 기호("-")가 있어야 합니다.
예를 들어 HKLM\SOFTWARE\Foobar 키에서 "Value A" 및 "Value B" 값(및 그 데이터)만 삭제하려면 다음 절차를 수행합니다.
[HKEY_LOCAL_MACHINE\SOFTWARE\Foobar] "A값"=- "값 B"=-
키 HKLM\SOFTWARE\Foobar(및 그 데이터)의 기본값만 삭제하려면 다음 절차를 수행합니다.
[HKEY_LOCAL_MACHINE\SOFTWARE\Foobar] @=-
세미콜론으로 시작하는 행은 주석으로 간주됩니다.
;댓글입니다.이것은 .reg 파일의 임의의 부분에 배치할 수 있습니다. [HKEY_LOCAL_MACHINE\SOFTWARE\Foobar] '가치'="예제 문자열"
그룹 정책
윈도우즈 그룹 정책은 정책에 따라 여러 시스템 또는 개별 사용자의 레지스트리 키를 변경할 수 있습니다.정책이 시스템 또는 시스템의 개별 사용자에 대해 처음 적용될 때 정책의 일부로 지정된 레지스트리 설정이 시스템 또는 사용자 설정에 적용됩니다.
또한 Windows는 업데이트된 정책을 검색하여 정기적으로 적용합니다(일반적으로 90분마다).[27]
정책은 그 범위를 통해 정책을 적용할 머신 및/또는 사용자를 정의합니다.시스템 또는 사용자가 정책의 범위 내에 있는지 여부는 조직 디렉토리, 특정 사용자 또는 시스템 계정 또는 보안 그룹의 시스템 또는 사용자 계정 위치를 필터링할 수 있는 규칙 집합에 의해 정의됩니다.Windows Management Instrumentation 식을 사용하여 보다 고급 규칙을 설정할 수 있습니다.이러한 규칙은 컴퓨터 벤더 이름, CPU 아키텍처, 설치된 소프트웨어 또는 연결된 네트워크와 같은 속성을 기준으로 필터링할 수 있습니다.
예를 들어 관리자는 회계부문의 머신에 대한 레지스트리 설정 세트를 사용하여 정책을 작성하고 방문자 영역에 있는 키오스크 단말기에 대한 레지스트리 설정 세트를 사용하여 정책을 작성할 수 있습니다.머신을 한 범위에서 다른 범위로 이동(예를 들어 머신의 이름을 변경하거나 다른 조직 단위로 이동)하면 올바른 정책이 자동으로 적용됩니다.정책이 변경되면 해당 범위에 있는 모든 시스템에 자동으로 다시 적용됩니다.
정책은 설정 선택 및 변경을 위한 사용자 인터페이스를 제공하는 여러 관리 템플릿을 통해 편집됩니다.관리 템플릿 세트는 확장 가능하며 이러한 원격 관리를 지원하는 소프트웨어 패키지는 자체 템플릿을 등록할 수 있습니다.
명령줄 편집
개발자 | 마이크로소프트 |
---|---|
운영 체제 | Microsoft Windows |
유형 | 명령어 |
면허증. | 독자 사양 상용 소프트웨어 |
웹 사이트 | docs |
개발자 | 마이크로소프트 |
---|---|
운영 체제 | Microsoft Windows |
유형 | 명령어 |
면허증. | 독자 사양 상용 소프트웨어 |
웹 사이트 | docs |
레지스트리는 명령줄에서 여러 가지 방법으로 조작할 수 있습니다.그Reg.exe
그리고.RegIni.exe
유틸리티 툴은 Windows XP 이후의 Windows 버전에 포함되어 있습니다.기존 버전의 윈도우즈를 위한 대체 위치로는 Resource Kit CD 또는 윈도우즈의 원래 설치 CD가 있습니다.
또, a..REG
다음 명령을 사용하여 명령줄에서 파일을 가져올 수 있습니다.
RegEdit.exe /s 파일
/s 는, 파일이 레지스트리에 사일런트 Marge 되는 것을 의미합니다.이 경우,/s
파라미터를 생략하면 조작 확인을 요구할 수 있습니다.Windows 98, Windows 95 및 Windows XP의 적어도 일부 구성에서는/s
스위치도 원인이 됩니다.RegEdit.exe
관리자가 비활성화할 수 있는 레지스트리 설정을 무시합니다.를 사용하는 경우/s
전환하다RegEdit.exe
이 조작에 실패했을 경우와는 달리 적절한 리턴 코드를 반환하지 않습니다.Reg.exe
그렇긴 하지
RegEdit.exe /e 파일
전체 레지스트리를 V5 형식으로 UNICODE로 내보냅니다..REG
파일, 한편,
RegEdit.exe /e 파일HKEY_CLASSES_ROOT[\<key>] RegEdit.exe /e 파일HKEY_CURRENT_CONFIG[\<key>] RegEdit.exe /e 파일HKEY_CURRENURRENT_USER[\key>/E 파일HKE [\KEY_MACH]
지정된 (서브) 키(스페이스가 포함되어 있는 경우 따옴표로 묶어야 함)만 내보냅니다.
RegEdit.exe /a 파일
전체 레지스트리를 V4 형식으로 ANSI로 내보냅니다..REG
파일.
RegEdit.exe /a 파일 <키>
는 지정된 (서브) 키만 내보냅니다(스페이스가 포함되어 있는 경우는 따옴표로 묶어야 합니다).
사용할 수도 있습니다.Reg.exe
레지스트리 값의 표시 예를 다음에 나타냅니다.버전:
Reg.exe 쿼리 HKLM\소프트웨어\Microsoft\ResKit /v 버전
기타 명령줄 옵션으로는 VBScript 또는 JScript와 CScript, WMI 또는WMIC.exe
및 Windows PowerShell.
레지스트리 권한은 명령줄에서 조작할 수 있습니다.RegIni.exe
및 그SubInACL.exe
예를 들어 HKEY_LOCAL_MACHINE\SOFTWARE 키에 대한 권한은 다음과 같이 표시할 수 있습니다.
SubInACL.exe /키레그 HKEY_LOCAL_MACHINE\SOFTWARE /표시
PowerShell 명령 및 스크립트
Windows PowerShell에는 레지스트리가 파일 시스템과 유사한 위치 유형으로 표시되는 레지스트리 공급자가 포함되어 있습니다.파일 시스템의 파일 및 디렉토리를 조작하기 위해서 사용하는 명령어와 같은 명령어를,[28] 레지스트리의 키 및 값을 조작하기 위해서 사용할 수 있습니다.
또한 파일 시스템과 마찬가지로 PowerShell은 현재 위치의 개념을 사용하여 기본적으로 명령이 작동하는 컨텍스트를 정의합니다.그Get-ChildItem
(에일리어스를 통해서도 사용 가능)ls
,dir
또는gci
)는 현재 위치의 자녀 키를 가져옵니다.를 사용하여Set-Location
(또는 에일리어스)cd
) 명령어는 현재 위치를 [28]레지스트리의 다른 키로 변경할 수 있습니다.항목 이름 변경, 항목 제거, 새 항목 만들기 또는 항목 또는 속성 내용 설정 명령을 사용하여 키 이름 변경, 키 또는 전체 하위 트리 제거 또는 값 변경에 사용할 수 있습니다.
관리자는 PowerShell 스크립트 파일을 통해 실행 시 레지스트리를 변경하는 스크립트를 준비할 수 있습니다.이러한 스크립트는 개별 머신에서 실행할 수 있는 관리자에게 배포할 수 있습니다.PowerShell 레지스트리 프로바이더는 트랜잭션을 지원합니다.즉, 레지스트리에 대한 여러 변경 사항을 단일 원자성 트랜잭션에 번들할 수 있습니다.원자성 트랜잭션을 사용하면 모든 변경이 데이터베이스에 커밋되거나 스크립트가 실패해도 데이터베이스에 [28][29]커밋되지 않습니다.
프로그램 또는 스크립트
레지스트리는 Advanced Windows 32 Base API Library(advapi32.dll)[30]의 API를 통해 편집할 수 있습니다.레지스트리 API 함수 목록:
- RegClose 키
- RegConnect Registry
- RegCreateKey
- RegCreateKey예
- RegDeleteKey
- RegDeleteValue(값
- RegEnum 키
- RegEnum 키예
- RegEnum
- RegFlushKey
- RegGetKeySecurity
- RegLoadKey
- 재알림ChangeKey Value(키값 변경)
- RegOpenKey
- RegOpenKey예
- RegQueryInfoKey
- RegQueryMultipleValues(복수값)
- RegQueryValue(레지쿼리값)
- RegQueryValue(레지쿼리값)예
- RegReplaceKey(키 치환)
- RegRestoreKey
- RegSaveKey
- RegSetKeySecurity
- Reg Set Value(RegSetValue)
- RegSetValueEx
- RegUnLoadKey
많은 프로그래밍 언어는 기본 Windows API를 랩하여 프로그램이 레지스트리에 설정을 저장할 수 있도록 하는 내장 런타임 라이브러리 함수 또는 클래스를 제공합니다(예:Microsoft.Win32.Registry
VB.NET 및 C# 또는TRegistry
델파이와 프리 파스칼).Visual Basic 6과 같은 COM 지원 애플리케이션은 WSH를 사용할 수 있습니다. WScript.Shell
물건.또 다른 방법은 Windows Resource Kit Tool을 사용하는 것입니다.Reg.exe
코드로부터 [31]실행시키는 것으로, 이것은 프로그래밍 연습의 불량으로 간주됩니다.
마찬가지로 Perl 등의 스크립트 언어(와 Win32::TieRegistry
Python(winreg 포함), TCL(레지스트리 [32]패키지와 함께 제공됨),Windows Powershell 및 Windows Scripting Host는 스크립트에서 레지스트리 편집도 가능하게 합니다.
오프라인 편집
Windows 드라이버 키트에서 이용할 수 있는 offreg[33].dll은 advapi32.dll에서 제공되는 것과 유사한 현재 로드되지 않은 레지스트리 하이브의 작성 및 조작을 위한 API 세트를 제공합니다.
또한 Windows PE 또는 Linux에서 오프라인 시스템의 레지스트리(하이브)를 편집할 수도 있습니다(후자의 경우 오픈 소스 도구를 사용합니다).
COM 자기 등록
등록이 필요 없는 COM이 도입되기 전에 개발자들은 오브젝트가 동작하기 위해 필요한 레지스트리 구성을 수행하기 위해 프로세스 내 및 프로세스 외 바이너리에 초기화 코드를 추가하는 것이 권장되었습니다.와 같은 진행 중인 바이너리의 경우.DLL과OCX 파일, 일반적으로 모듈은 설치 프로그램에서 호출하거나 Regsvr32.[35]exe 등의 유틸리티를 사용하여 수동으로 호출할 수 있는 DllInstall()[34]이라는 함수를 내보냅니다.프로세스 외 이진 파일은 일반적으로 필요한 레지스트리 설정을 [36]작성 또는 삭제한 명령줄 인수 /Regserver 및 /Unregserver를 지원합니다.DLL Hell 문제로 인해 파손된 COM 응용 프로그램은 일반적으로 RegSvr32.exe 또는 /RegServer 스위치로 복구할 수 있습니다.설치 프로그램을 [37]재기동할 필요는 없습니다.
고도의 기능
Windows 에서는, 특정의 레지스트리 키가 [38]변경되었을 경우에, 유저 모드애플리케이션을 등록해 통지 이벤트를 수신할 수 있는 API 가 표시됩니다.또한 API를 사용하여 커널 모드애플리케이션이 다른 [39]어플리케이션의 레지스트리 콜을 필터링 및 변경할 수 있습니다.
Windows 에서는, 다른 컴퓨터의 레지스트리에의 리모트 액세스도 서포트하고 있습니다.RegConnectRegistry
원격[40] 레지스트리 서비스가 실행 중이고 올바르게 구성되어 있으며 네트워크 트래픽이 방화벽에 의해 [41]차단되지 않은 경우 이 기능이 작동합니다.
보안.
Windows NT 버전의 레지스트리에 있는 각 키에는, 관련하는 시큐러티 기술자를 포함할 수 있습니다.보안 기술자에는 액세스 권한이 부여되거나 거부되는 사용자 그룹 또는 개별 사용자를 설명하는 Access Control List(ACL; 접근컨트롤 리스트)가 포함되어 있습니다.레지스트리 권한 세트에는 사용자 또는 사용자 그룹에 명시적으로 허용 또는 거부할 수 있는 10개의 권한/권한이 포함됩니다.
허가 | 묘사 |
---|---|
쿼리 값 | 레지스트리 키 값을 읽을 수 있는 권한입니다. |
값 설정 | 새로운 값을 쓸 권리 |
서브키 작성 | 하위 키를 만들 수 있는 권한입니다. |
서브키 열거 | 하위 키 열거를 허용합니다. |
알리다 | 레지스트리 키 또는 하위 키에 대한 변경 통지를 요청할 수 있는 권한입니다. |
링크 작성 | 운영 체제에 의해 예약됩니다. |
삭제 | 키를 삭제할 수 있는 권한. |
DACL 쓰기 | 컨테이너의 DACL 권한을 수정할 수 있는 권한입니다. |
기입 소유자 | 컨테이너의 소유자를 수정할 수 있는 권한입니다. |
읽기 제어 | DACL을 읽을 권리. |
운영체제 내의 다른 보안 가능한 객체와 마찬가지로 보안 기술자 상의 개별 접근컨트롤 엔트리(ACE)는 부모 [42]객체에서 명시적으로 또는 상속할 수 있습니다.
Windows Resource Protection은 Windows Vista 이후 버전의 Windows에서 보안을 사용하여 일부 중요 키에 대한 관리자 및 시스템 쓰기 액세스를 거부하여 말웨어 및 실수로 인한 [43]수정으로부터 시스템의 무결성을 보호하는 기능입니다.
시큐러티 디스크립터의 특수한 ACE에서는, 레지스트리 키와 서브 키에 대한 필수 무결성 제어도 실장할 수 있습니다.무결성 수준이 낮은 프로세스에서는 프로세스의 계정에 ACL을 통한 액세스가 허용되어도 레지스트리 키/값의 쓰기, 변경 또는 삭제를 수행할 수 없습니다.예를 들어 보호 모드에서 실행 중인 Internet Explorer는 현재 로그온한 사용자의 중간 및 낮은 무결성 레지스트리 키/값을 읽을 수 있지만 낮은 무결성 [44]키만 수정할 수 있습니다.
보안 외부에서 레지스트리 키는 다른 이유로 삭제 또는 편집할 수 없습니다.NUL 문자가 포함된 레지스트리 키는 표준 레지스트리 편집기에서 삭제할 수 없으며 RegDelNull과 [45][46]같은 특수 유틸리티가 필요합니다.
백업 및 복구
Windows 의 에디션 마다, 오랜 세월에 걸쳐 레지스트리를 백업 및 복원하는 다양한 방법이 서포트되고 있습니다만, 그 중 몇 가지는 폐지되고 있습니다.
- 시스템 복원은 Windows가 부팅 가능한 한 또는 Windows 복구 환경(Windows Vista 이후)에서 레지스트리를 백업하고 복원할 수 있습니다.
- NTBackup은 시스템 상태의 일부로 레지스트리를 백업하고 복원할 수 있습니다.Windows XP 의 자동 시스템 리커버리에 의해서, 레지스트리를 복원할 수도 있습니다.
- Windows NT 에서는, 기동 메뉴의 [마지막으로 정상적인 설정]옵션을 선택하면,
HKLM\SYSTEM\CurrentControlSet
key: 하드웨어 및 디바이스 드라이버 정보를 저장합니다. - Windows 98 및 Windows Me에는 레지스트리의 무결성을 체크 및 수정하고 기본적으로는 최대 5개의 자동 정기 백업을 생성하여 수동으로 또는 손상이 [47]감지될 때마다 복원하기 위한 명령줄(Scanreg.exe) 및 GUI(Scanregw.exe) 레지스트리 체커 도구가 포함되어 있습니다.레지스트리 체커툴은 디폴트로 레지스트리를 백업합니다.
%Windir%\Sysbckup
스캔레그exe는 MS-DOS에서도 [48]실행할 수 있습니다. - Windows 95 의 CD-ROM 에는, 레지스트리를 백업 및 restore 하기 위한 Emergency Recovery Utility(ERU.exe)와 Configuration Backup Tool(Cfgback.exe)이 포함되어 있습니다.또, Windows 95 에서는, 정상적으로 기동할 때마다, 레지스트리를 system.da0 및 user.da0 파일에 백업 합니다.
- Windows NT 4.0 포함
RDISK.EXE
전체 [49]레지스트리를 백업 및 복원하는 유틸리티입니다. - Windows 2000 리소스 키트에는 Regback이라는 지원되지 않는 유틸리티 쌍이 포함되어 있습니다.레지스트리의 [50]백업 및 복구를 위해 exexe 및 RegRest.exe.
- Windows 2019년 5월 10일 업데이트(버전 1903)에서는 레지스트리의 정기적인 자동 백업이 기본적으로 비활성화되어 있습니다.대신 [51]시스템 복원을 사용할 것을 권장합니다.
정책.
그룹 정책
Windows 2000 이후의 Windows 버전은 그룹 정책을 사용하여 그룹 정책 처리 [52]엔진의 레지스트리 고유 클라이언트 확장을 통해 레지스트리 설정을 적용합니다.정책을 단일 시스템에 로컬로 적용할 수 있습니다.gpedit.msc
또는 도메인 내의 여러 사용자 또는 컴퓨터 또는 둘 다에 대해gpmc.msc
.
레거시 시스템
Windows 95, Windows 98, Windows Me 및 Windows NT 4.0 에서는 관리자는 정책 파일이라고 불리는 특별한 파일을 레지스트리에 Marge할 수 있습니다.POLICY.POL
정책 파일을 사용하면 관리자가 아닌 사용자가 Internet Explorer의 보안 수준이나 데스크톱 배경 배경 벽지 등의 레지스트리 설정을 변경하지 못하도록 할 수 있습니다.정책 파일은 주로 악성 사용자나 부주의한 사용자로부터 비즈니스를 보호해야 하는 다수의 컴퓨터가 있는 기업에서 사용됩니다.
정책 파일의 기본 확장자는 다음과 같습니다..POL
정책 파일은 사용자별 및 그룹별로 적용되는 설정을 필터링합니다("그룹"은 정의된 사용자 집합입니다).이를 위해 정책 파일이 레지스트리에 병합되어 사용자가 설정을 다시 변경하는 것만으로 이를 우회하는 것을 방지합니다.정책 파일은 일반적으로 LAN을 통해 배포되지만 로컬 컴퓨터에 배치할 수 있습니다.
정책 파일은 파일 이름별로 Microsoft가 제공하는 무료 도구로 작성됩니다.poledit.exe
Windows 95/Windows 98 용 및 Windows NT 용 컴퓨터 관리 모듈을 사용합니다.권한을 사용하는 시스템에서 관리자 권한을 실행해야 합니다.에디터는 로컬 컴퓨터의 현재 레지스트리 설정을 직접 변경할 수도 있습니다.또, 리모트 레지스트리 서비스가 인스톨 되어 다른 컴퓨터에 기동하고 있는 경우는, 그 컴퓨터의 레지스트리를 변경할 수도 있습니다.정책 에디터는 변경할 수 있는 설정을 로드합니다..ADM
Windows 쉘이 제공하는 설정이 포함된 파일입니다.그.ADM
파일은 일반 텍스트이며 모든 문자열을 한 곳에 저장할 수 있으므로 현지화가 용이합니다.
가상화
INI 파일 가상화
Windows NT 커널은 "Inifile Mapping"[53]이라는 기능을 사용하여 INI 파일 관련 API를 HKEY_CURRENT_USER 등의 레지스트리 위치에 있는 가상 파일로 리다이렉트할 수 있습니다.이 기능은 16비트 버전의 Windows용으로 작성된 레거시 애플리케이션을 System 폴더가 사용자 고유의 데이터 또는 구성에 적합한 위치로 간주되지 않게 된 Windows NT 플랫폼에서 실행할 수 있도록 하기 위해 도입되었습니다.비준거 32비트어플리케이션도 원래 16비트어플리케이션용으로 리다이렉트 할 수 있습니다.
레지스트리 가상화
Windows Vista 에서는, 최소한의 특권의 원칙을 존중하지 않고, 대신에 읽기 전용의 시스템 로케이션(HKEY_LOCAL_MACHINE 하이브등)에 유저 데이터를 쓰려고 하는, 제대로 기술되어 있지 않은 애플리케이션은, 애플리케이션 자체를 변경하지 않고, 보다 적절한 로케이션으로 자동적으로 리다이렉트 됩니다.
마찬가지로 응용 프로그램 가상화는 응용 프로그램의 잘못된 레지스트리 작업을 모두 파일과 같은 위치로 리디렉션합니다.파일 가상화와 함께 사용하면 애플리케이션을 설치하지 않고도 시스템에서 실행할 수 있습니다.
무결성 저하 프로세스에서도 레지스트리 가상화를 사용할 수 있습니다.예를 들어 Windows Vista 이상에서 "보호 모드"로 실행되는 Internet Explorer 7 또는 8은 ActiveX 컨트롤에 의한 레지스트리 쓰기를 샌드박스로 자동 리다이렉트하여 일부 보안 악용 클래스를 방해합니다.
Application Compatibility[54] Toolkit은 HKEY_LOCAL_MACHINE 또는 HKEY_CLASSES_ROOT 레지스트리 조작을 HKEY_CURRENT_USER로 투과적으로 리다이렉트 할 수 있는 심을 제공하여 권한이 부족한 사용자에게 응용 프로그램이 작동하지 않도록 하는 "LUA" 버그에 대처합니다.
단점들
Windows 95 의 [citation needed]레지스트리가 파손되었을 경우는, operating system의 재인스톨이 필요하기 때문에, Windows 95 의 레지스트리를 단일 장해점이라고 하는 평가도 있었습니다.그러나 Windows NT는 트랜잭션 로그를 사용하여 업데이트 중 손상을 방지합니다.현재 버전의 Windows 에서는,[55] 2 레벨의 로그 파일을 사용하고 있어, 데이터베이스 갱신중에 전원 장해나 같은 치명적인 이벤트가 발생했을 경우에서도, 정합성이 보증되고 있습니다.복구할 수 없는 오류가 발생한 경우에도 Windows는 시스템 [55]부팅 중에 손상된 레지스트리 엔트리를 복구하거나 다시 초기화할 수 있습니다.
동등품 및 대체품
이 섹션은 확인을 위해 추가 인용문이 필요합니다.2010년 11월 (이 의 방법과 에 대해 합니다) |
Windows 에서는, 프로그램 데이터를 보존하기 위해서 레지스트리를 사용하는 것은 개발자의 재량에 달려 있습니다.Microsoft는 개발자가 대신 사용할 수 있는 XML 파일(MSXML 경유) 또는 데이터베이스 파일(SQL Server Compact 경유)에 데이터를 저장하기 위한 프로그래밍 인터페이스를 제공합니다.개발자는 Microsoft 이외의 대체품을 사용하거나 독자적인 데이터 스토어를 개발할 수도 있습니다.
Windows Registry의 바이너리 기반 데이터베이스 모델과는 달리 일부 다른 운영 체제에서는 데몬 및 응용 프로그램 구성에 별도의 플레인 텍스트 파일을 사용하지만 관리를 쉽게 하기 위해 이러한 구성을 함께 그룹화합니다.
- 파일 시스템 계층 표준을 따르는 Unix와 유사한 운영 체제(Linux 포함)에서는 시스템 전체의 구성 파일(Windows의 HKEY_LOCAL_MACHINE에 표시되는 것과 유사한 정보)은 일반적으로 다음 파일의 파일에 저장됩니다.
/etc/
서브 디렉토리 또는 경우에 따라서는/usr/local/etc
사용자별 정보(HKEY_CURRENT_USER의 정보와 거의 동등한 정보)는 사용자의 홈 디렉토리 내의 숨겨진 디렉토리 및 파일(마침표/풀스톱으로 시작)에 저장됩니다.다만, XDG 준거 애플리케이션은, 베이스 디렉토리 사양에 [56]정의되어 있는 환경 변수를 참조할 필요가 있습니다. - macOS에서는 일반적으로 시스템 전체의 설정 파일은
/Library/
사용자별 설정 파일은 대응하는 에 저장됩니다.~/Library/
사용자의 홈 디렉토리에 있는 폴더 및 시스템에 의해 설정된 설정 파일은/System/Library/
이러한 각각의 디렉토리내에서, 애플리케이션은 통상, 속성 리스트 파일을 격납합니다.Preferences/
서브 디렉토리 - RISC OS(MIPS RISC/os와 혼동하지 말 것)는 설정 데이터에 디렉토리를 사용합니다.이것에 의해, Windows 애플리케이션을 나타내는 개별의 인스톨 프로세스가 아니고, 애플리케이션을 애플리케이션 디렉토리에 카피할 수 있습니다.이 어프로치는 [57]ROX Desktop for Linux에서도 사용됩니다.또, 이 디렉토리 베이스의 설정에서는, 설정이 「즉시」[58]되기 때문에, 같은 애플리케이션의 다른 버전을 사용할 수도 있습니다.애플리케이션을 삭제하고 싶은 경우는,[59][60] 그 애플리케이션에 속하는 폴더를 삭제하기만 하면 된다.이것에 의해, 대부분의 경우, 애플리케이션으로부터 독립적으로 보존되고 있는 설정(통상은 컴퓨터의!)은 삭제되지 않습니다.부트 구조, !Boot.네트워크 파일 서버상의 임의의 장소 또는 선택 가능.RISC OS 를 실행하고 있는 컴퓨터간에, 그 프로그램에 속하는 애플리케이션 디렉토리를 카피하는 것으로, 인스톨 되고 있는 프로그램을 카피할 수 있습니다.다만, 일부의 프로그램에서는,[58] 공유 파일이 애플리케이션 디렉토리 밖에 있는 경우 등, 재인스톨이 필요한 경우가 있습니다.
- IBM AIX(유닉스 변형)는 ODM(Object Data Manager)이라는 레지스트리 구성 요소를 사용합니다.ODM은 시스템 및 디바이스 설정에 대한 정보를 저장하기 위해 사용됩니다.광범위한 도구 및 유틸리티 세트를 통해 ODM 데이터베이스를 확장, 확인 및 수정할 수 있습니다.ODM은 정보를 여러 파일에 저장합니다.기본 위치는 다음과 같습니다.
/etc/objrepos
. - GNOME 데스크톱 환경에서는 dconf라는 레지스트리와 같은 인터페이스를 사용하여 데스크톱 및 응용 프로그램의 구성 설정을 저장합니다.
- Elektra Initiative는 다양한 텍스트 설정 파일에 대체 백엔드를 제공합니다.
- 운영체제는 아니지만 Windows 소프트웨어를 Unix와 유사한 시스템에서 실행할 수 있는 Wine 호환성 레이어에서는 Windows와 유사한 레지스트리를 WINEPREFIX 폴더에 텍스트 파일로 사용합니다.시스템.reg(HKEY_LOCAL_MACHINE), user.reg(HKEY_CURRENT_USER) 및 userdef.[61]reg.
「 」를 참조해 주세요.
- 레지스트리 클리너
- 응용 프로그램 가상화
- LogParser – 다양한 유형의 로그 파일에 대한 SQL 유사 쿼리
- 셸 아이콘 오버레이 식별자 목록
- 레지스트리를 사용하는 랜섬웨어 공격
메모들
- ^ 애플리케이션이 필요한 권한보다 더 많은 권한을 요구하여 실행할 수 없는 경우(이러한 권한이 거부됨) 이를 Limited User Application(LUA; 제한 사용자 애플리케이션) 버그라고 합니다.
각주
- ^ Esposito, Dino (November 2000). "Windows 2000 Registry: Latest Features and APIs Provide the Power to Customize and Extend Your Apps". MSDN Magazine. Microsoft. Archived from the original on April 15, 2003. Retrieved July 19, 2007.
- ^ a b c "The System Registry".
- ^ "Windows 95 Architecture Components". www.microsoft.com. Archived from the original on February 7, 2008. Retrieved April 29, 2008.
The following table shows other difficulties or limitations caused by using .INI files that are overcome by using the Registry.
- ^ 힙슨 2002, 페이지 5, 41~43
- ^ Richter, Jeffrey; Nasarre, Christophe (2008). Windows Via C/C++ (Fifth ed.). Microsoft Press. ISBN 9780735642461. Retrieved August 28, 2021.
- ^ Raymond Chen, "레지스트리 키에 기본값이 있는 이유는 무엇입니까?"
- ^ 힙슨 2002, 페이지 207, 513-514.
- ^ Hipson 2002, 페이지 520-521.
- ^ 힙슨 2002, 7페이지
- ^ "Designed for Windows XP Application Specification". Microsoft. August 20, 2002. Retrieved April 8, 2009.
- ^ "HKEY_LOCAL_MACHINE". Gautam. 2009. Retrieved April 8, 2009.
- ^ "Registry Keys Affected by WOW64 (Windows)". Msdn.microsoft.com. Retrieved April 10, 2014.
- ^ "Description of the Microsoft Windows registry". Retrieved September 25, 2008.
- ^ "HKEY_CURRENT_USER". Microsoft. 2009. Retrieved April 8, 2009.
- ^ "Description of the HKEY_DYN_DATA Registry Key in Windows 95, Windows 98, and Windows 98 SE". support.microsoft.com.
- ^ "A Closer Look at HKEY_DYN_DATA". rinet.ru. Archived from the original on May 9, 2008.
- ^ "Registry hives". Retrieved July 19, 2007.
- ^ Chen, Raymond (August 8, 2011). "Why is a registry file called a "hive"?". The Old New Thing. Retrieved July 29, 2011.
- ^ "Overview of the Windows NT Registry". Retrieved December 2, 2011.
- ^ "Inside the Registry". Retrieved December 28, 2007.
- ^ a b Norris, Peter (February 2009). "The Internal Structure of the Windows Registry" (PDF). Cranfield University. Archived from the original (PDF) on May 29, 2009.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ "Incorrect Icons Displayed for .ico Files". November 15, 2009. Retrieved March 31, 2012.
- ^ "How to Completely Uninstall / Remove a Software Program in Windows without using 3rd Party Software? - AskVG". www.askvg.com.
- ^ "You may receive a "STOP 0x00000035 NO_MORE_IRP_STACK_LOCATIONS" error message when you try to log on to a domain". October 9, 2011. Retrieved March 31, 2012. 이 페이지에서는 문제를 해결할 때 레지스트리를 편집하도록 사용자에게 안내합니다.
- ^ 기본 API가 이름 바꾸기 기능을 직접 지원하지 않기 때문에 키 이름은 제거 및 추가로 구현됩니다.
- ^ a b c d "How to add, modify, or delete registry subkeys and values by using a .reg file". support.microsoft.com.
- ^ "Applying Group Policy". Microsoft.
- ^ a b c Payette, Bruce; Siddaway, Richard (2018). Windows PowerShell in Action (Third ed.). Manning Publications. pp. 7–8, 24, 608, 708–710. ISBN 9781633430297. Retrieved August 28, 2021.
- ^ Warner, Timothy L. (May 2015). Windows PowerShell in 24 Hours, Sams Teach Yourself. Sams Publishing. p. 19, 211. ISBN 9780134049359. Retrieved August 28, 2021.
- ^ "Reading and Writing Registry Values with Visual Basic". Retrieved July 19, 2007.
- ^ "REG command in Windows XP". Retrieved July 19, 2007.
- ^ "registry manual page – Tcl Bundled Packages". www.tcl.tk. Retrieved December 14, 2017.
- ^ "Offline Registry Library". Retrieved June 4, 2014.
- ^ "DllInstall Function". Microsoft. March 7, 2012. Retrieved March 22, 2012.
- ^ "Regsvr32". Microsoft. Retrieved March 22, 2012.
- ^ "How to: Register Automation Servers". Microsoft. Retrieved March 22, 2012.
- ^ "How to re-register PowerPoint 2000, PowerPoint 2003, PowerPoint 2007 and PowerPoint 2010". Microsoft. January 2012. Retrieved March 22, 2012.
- ^ "RegNotifyChangeKeyValue function". Microsoft.
- ^ "Registering for Notifications". Microsoft.
- ^ "RegConnectRegistry function". Microsoft.
- ^ "How to Manage Remote Access to the Registry". Microsoft.
- ^ Gibson, Darril (June 28, 2011). "Chapter 4: Securing Access with Permissions". Microsoft Windows security : essentials. Indianapolis, Ind.: Wiley. ISBN 978-1-118-01684-8.
- ^ "Application Compatibility: Windows Resource Protection (WRP)". Microsoft. Retrieved August 8, 2012.
- ^ Marc Silbey, Peter Brundrett. "Understanding and Working in Protected Mode Internet Explorer". Retrieved August 8, 2012.
- ^ "RegDelNull v1.1". November 1, 2006. Retrieved August 8, 2012.
- ^ "Unable to delete certain registry keys – Error while deleting key". March 23, 2010. Retrieved August 8, 2012. Microsoft 지원 페이지
- ^ "Description of the Windows Registry Checker Tool (Scanreg.exe)".
- ^ "Command-Line Switches for the Registry Checker Tool".
- ^ "How To Backup, Edit, and Restore the Registry in Windows NT 4.0". support.microsoft.com.
- ^ "Technical Reference to the Registry: Related Resources". Microsoft. Retrieved September 9, 2011.
- ^ "Microsoft Kills Automatic Registry Backups in Windows 10". ExtremeTech. Retrieved July 1, 2019.
- ^ "How Core Group Policy Works". Microsoft. September 2, 2009. Retrieved August 13, 2012.
- ^ "Chapter 26 – Initialization Files and the Registry". Microsoft. Retrieved March 3, 2008.
- ^ "Microsoft Application Compatibility Toolkit 5.0". Microsoft. Retrieved July 26, 2008.
- ^ a b Ionescu, Mark Russinovich, David A. Solomon, Alex (2012). "Registry Internals". Windows internals (6th ed.). Redmond, Wash.: Microsoft Press. ISBN 978-0-7356-4873-9.
- ^ "XDG Base Directory Specification". standards.freedesktop.org.
- ^ "Application directories". Archived from the original on May 27, 2012. Retrieved May 17, 2012.
- ^ a b "Case Studies Of The Top 132 Annoyances With Operating Systems Other Than RISC OS". Retrieved April 3, 2012. riscos.com 웹사이트 페이지82번과 104번에서 언급된다.
- ^ "RISC OS tour". Retrieved July 19, 2007.
- ^ "The RISC OS Products Directory". November 2, 2006. Archived from the original on February 19, 2007. Retrieved April 1, 2012.
- ^ 3.2. 레지스트리 및 Regedit 사용(와인 사용자 가이드)
레퍼런스
- Hipson, Peter (2002). Mastering Windows XP Registry. Wiley. ISBN 0-7821-2987-0. Retrieved August 28, 2021.
- Russinovich, Mark E.; Solomon, David A. (2005). Microsoft Windows Internals (Fourth ed.). Microsoft Press. pp. 183–236. ISBN 978-0-7356-1917-3.
외부 링크

- MSDN 라이브러리의 Windows 레지스트리 정보 및 참조