Windows Registry Reference
Windows 레지스트리 레퍼런스
Windows Registry Reference 소개
Windows 레지스트리 레퍼런스는 하이브, 키, 값 타입, 시작 프로그램, 서비스, 네트워크, 보안, 도구 등 8가지 카테고리에 걸친 Windows 레지스트리의 모든 주요 영역을 검색 가능한 형태로 정리한 치트 시트입니다. 각 항목에는 정확한 레지스트리 경로나 명령어 구문, 설명, 실용적인 예제가 포함되어 있어 시스템 관리자, 보안 분석가, 개발자 누구라도 레지스트리 데이터를 조회·추가·삭제·내보내는 방법을 빠르게 찾을 수 있습니다.
이 레퍼런스는 시작 항목 구성, Windows 서비스 관리, 보안 설정 강화, 명령줄을 통한 레지스트리 작업 자동화가 필요한 Windows 관리자, IT 전문가, 개발자를 위해 설계되었습니다. 5개 루트 하이브(HKLM, HKCU, HKCR, HKU, HKCC), reg.exe 명령어 전체(query, add, delete, export, import, copy, compare, save, restore), 6가지 값 데이터 타입(REG_SZ, REG_DWORD, REG_QWORD, REG_BINARY, REG_MULTI_SZ, REG_EXPAND_SZ), 그리고 Get-ItemProperty, Set-ItemProperty 등 PowerShell 레지스트리 cmdlet을 모두 다룹니다.
시작 프로그램 실행을 제어하는 레지스트리 키(Run, RunOnce, 시작 폴더), Windows 서비스 시작 유형과 의존성, TCP/IP 및 DNS 네트워크 매개변수, SMB 버전 제어, LSA 보안 설정, UAC 구성, Windows Defender 정책, Credential Guard를 빠르게 찾을 수 있도록 구성되어 있습니다. 부팅 문제 해결, 서버 보안 강화, 배포 스크립트 작성 어느 경우에도 Windows 시스템 내부에서 직접 추출한 정확한 경로와 예제를 제공합니다.
주요 기능
- 5개 Windows 레지스트리 하이브 전체: 표준 예제 경로를 포함한 HKLM, HKCU, HKCR, HKU, HKCC
- reg.exe CLI 명령어 완전 커버: query, add, delete, export/import, copy, compare, save/restore
- 6가지 레지스트리 값 데이터 타입: REG_SZ, REG_DWORD, REG_QWORD, REG_BINARY, REG_MULTI_SZ, REG_EXPAND_SZ
- 시작 프로그램 키: Run(사용자/시스템), RunOnce, 시작 폴더 경로, DisableTaskMgr 정책
- Windows 서비스 레지스트리 키: Services 하이브, ImagePath, Start 값(Boot/Auto/Manual/Disabled), DependOnService
- 네트워크 레지스트리 설정: TCP/IP 매개변수, DNS 서버 구성, Windows 방화벽, SMBv1 비활성화, WinHTTP 프록시
- 보안 정책 키: LSA 설정, UAC 구성, Windows Defender 정책, Credential Guard, 감사 정책
- PowerShell 레지스트리 관리: Get-ItemProperty, Set-ItemProperty, regedit GUI 백업/복원 워크플로
자주 묻는 질문
Windows 레지스트리의 5가지 주요 하이브는 무엇인가요?
5개 루트 하이브는 다음과 같습니다: 시스템 전체 하드웨어 및 소프트웨어 설정을 위한 HKEY_LOCAL_MACHINE(HKLM), 현재 로그인한 사용자 설정을 위한 HKEY_CURRENT_USER(HKCU), 파일 연결과 COM 객체를 위한 HKEY_CLASSES_ROOT(HKCR), 모든 사용자 프로필을 위한 HKEY_USERS(HKU), 현재 하드웨어 프로필을 위한 HKEY_CURRENT_CONFIG(HKCC).
명령줄에서 레지스트리 값을 조회하는 방법은?
reg query 명령어를 사용합니다: reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion /v ProgramFilesDir. /v 플래그는 값 이름을 지정합니다. /v를 생략하면 키 아래의 모든 값을 나열하고, /s를 추가하면 모든 하위 키를 재귀적으로 탐색합니다. reg query HKLM\SOFTWARE /s /f "keyword"로 키워드 검색도 할 수 있습니다.
REG_SZ, REG_DWORD, REG_EXPAND_SZ의 차이점은 무엇인가요?
REG_SZ는 일반 null 종료 문자열을 저장합니다. REG_DWORD는 32비트 정수를 저장하며 플래그, 카운트, 활성화/비활성화 설정에 사용합니다. REG_EXPAND_SZ는 값을 읽을 때 확장되는 %USERPROFILE% 같은 환경 변수 참조를 포함할 수 있는 문자열을 저장합니다. 각 사용자 환경에 맞게 조정되어야 하는 경로에는 REG_EXPAND_SZ를 사용합니다.
레지스트리를 통해 Windows 시작 프로그램에 추가하는 방법은?
현재 사용자의 경우 HKCU\Software\Microsoft\Windows\CurrentVersion\Run 아래에, 모든 사용자의 경우 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 아래에 REG_SZ 값을 추가합니다. 값 이름은 프로그램 레이블이고, 데이터는 실행 파일의 전체 경로입니다(예: "C:\Program Files\MyApp\app.exe"). 다음 로그온 시 한 번만 실행해야 하는 경우 Run 대신 RunOnce를 사용합니다.
레지스트리를 통해 SMBv1을 비활성화하는 방법은?
HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters 아래의 SMB1 DWORD 값을 0으로 설정합니다. 전체 명령어는 다음과 같습니다: reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v SMB1 /t REG_DWORD /d 0 /f. 이렇게 하면 WannaCry 등 랜섬웨어가 악용했던 레거시 SMBv1 프로토콜이 비활성화됩니다.
레지스트리를 통해 Windows 서비스 시작 유형을 변경하는 방법은?
시작 유형은 HKLM\SYSTEM\CurrentControlSet\Services\{서비스이름}\Start에 DWORD로 저장됩니다. 값의 의미는 0(Boot), 1(System), 2(자동), 3(수동), 4(사용안함)입니다. 예를 들어 인쇄 스풀러를 비활성화하려면: reg add HKLM\SYSTEM\CurrentControlSet\Services\Spooler /v Start /t REG_DWORD /d 4 /f.
레지스트리 키를 백업하고 복원하는 방법은?
reg export로 키를 .reg 파일로 저장합니다: reg export HKCU\Software\MyApp backup.reg. 복원하려면 reg import backup.reg를 사용합니다. 낮은 수준의 하이브 파일은 reg save HKLM\SOFTWARE C:\backup\software.hiv와 reg restore를 사용합니다. regedit에서 키를 우클릭하고 내보내기를 선택해 GUI로 .reg 백업 파일을 만들 수도 있습니다.
UAC 설정을 레지스트리를 통해 구성하는 방법은?
UAC 설정은 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 아래에 저장됩니다. 주요 값으로는 EnableLUA(UAC 활성화를 위해 REG_DWORD 1, 비활성화를 위해 0)와 ConsentPromptBehaviorAdmin(자격 증명 요청은 2, 동의 요청은 5, 프롬프트 없음은 0)이 있습니다. EnableLUA를 0으로 설정해 UAC를 비활성화하면 보안이 약화되므로 프로덕션 시스템에는 권장하지 않습니다.
reg.exe 대신 PowerShell로 레지스트리를 관리할 수 있나요?
네. PowerShell은 레지스트리를 PSDrive로 노출합니다. Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion"으로 값을 읽고, Set-ItemProperty -Path "HKCU:\Software\MyApp" -Name "Setting" -Value "NewValue"로 값을 씁니다. PowerShell은 reg.exe의 텍스트 출력보다 처리하기 쉬운 구조화된 객체를 반환하므로 스크립트에서 일반적으로 더 선호됩니다.