하이브
레지스트리는 수많은 논리를 구분하는 "하이브"(hive)로 나눌 수 있다.[1][2] 하이브는 모두 HKEY로 시작하며, 윈도 API 정의로 이름이 지정되어 있는 것이 보통이다. HK로 시작하는 이 이름들은 HKCU, HKLM과 같이 짧은 3~4개의 이름을 줄인 것이다.
HKEY_LOCAL_MACHINE과 HKEY_CURRENT_USER 노드는 서로 비슷한 구조를 가지고 있다. 응용 프로그램은 보통 "HKEY_CURRENT_USER\Software\제조업체 이름\응용 프로그램 이름\버전 번호\설정 이름"의 설정 항목을 검색하고 설정값을 찾지 못할 경우 HKEY_LOCAL_MACHINE 키의 같은 위치에서 다시 한 번 검색한다. 또, HKEY_LOCAL_MACHINE을 먼저 기록하지만 (로그온한 사용자가 관리자가 아닌 경우 등에 따라) 기록하지 못하는 경우, 설정값은 HKEY_CURRENT_USER에 대신 저장한다.
하이브의 종류는 다음과 같다.
- HKEY_CLASSES_ROOT (HKCR): 파일 연결, OLE 객체 클래스 ID와 같은 등록된 응용 프로그램의 정보를 담고 있다. 윈도 2000 이후로, HKCR은 HKCU\Software\Classes와 HKLM\Software\Classes를 편집한다. 주어진 값이 위의 서브키의 두 곳에 존재하면, HKCU\Software\Classes의 항목을 사용한다.
- HKEY_CURRENT_USER (HKCU): 현재 로그인한 사용자의 설정을 담고 있다.
- HKEY_LOCAL_MACHINE (HKLM): 컴퓨터의 모든 사용자의 설정을 담고 있다.
- HKEY_USERS (HKU): 컴퓨터에서 사용 중인 각 사용자 프로파일에 대한 HKEY_CURRENT_USER 키에 일치하는 서브키를 담고 있다.
- HKEY_CURRENT_CONFIG: 실행 시간에 수집한 자료를 담고 있다. 이 키에 저장된 정보는 디스크에 영구적으로 저장되지 않고 시동 시간에 생성된다.
- HKEY_PERFORMANCE_DATA: 런타임 성능 데이터 정보를 제공한다. 이 키는 레지스트리 편집기에 보이지 않지만 윈도 API의 레지스트리 명령어를 통해 볼 수 있다.
- HKEY_DYN_DATA: 이 키는 윈도 95, 윈도 98, 윈도 Me에만 쓰인다. 플러그 앤 플레이를 비롯한 하드웨어 장치, 네트워크 성능 통계에 대한 정보를 포함한다. 이 하이브의 정보는 하드 드라이브에 저장되지 않는다. 플러그 앤 플레이 정보는 컴퓨터가 시작할 때 구성되며 메모리에 저장된다.
사용자 변수 : HKEY_CURRENT_USER\Environment
시스템 변수 : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
C:\>reg /?
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved
REG 작업 [매개 변수 목록]
작업 [ QUERY | ADD | DELETE | COPY |
SAVE | LOAD | UNLOAD | RESTORE |
COMPARE | EXPORT | IMPORT ]
반환 코드: (REG COMPARE 제외)
0 - 성공
1 - 실패
특정 작업 유형에 대한 도움말을 보려면
REG 작업 /?를 입력하십시오.
예:
REG QUERY /?
REG ADD /?
REG DELETE /?
REG COPY /?
REG SAVE /?
REG RESTORE /?
REG LOAD /?
REG UNLOAD /?
REG COMPARE /?
REG EXPORT /?
REG IMPORT /?
C:\>reg query /?
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved
REG QUERY KeyName [/v ValueName | /ve] [/s]
KeyName [\Machine\]FullKey
Machine - 원격 컴퓨터 이름. 생략하면 기본값이 현재 컴퓨터가 됩니다.
원격 컴퓨터에서는 HKLM과 HKU만 사용할 수 있습니다.
FullKey - ROOTKEY\SubKey 이름 형식
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
레지스트리 값 종류 목록 | ||
---|---|---|
0 | REG_NONE | 종류 없음 |
1 | REG_SZ | 문자열 값 |
2 | REG_EXPAND_SZ | 확장할 수 있는 문자열 값. 환경 변수를 포함할 수 있다. |
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 | 다중 문자열 값 (고유한 문자열의 배열) |
8 | REG_RESOURCE_LIST | 리소스 목록 (플러그 앤 플레이 하드웨어 열거 및 구성에 쓰임) |
9 | REG_FULL_RESOURCE_DESCRIPTOR | 리소스 서술자 (플러그 앤 플레이 하드웨어 열거 및 구성에 쓰임) |
10 | REG_RESOURCE_REQUIREMENTS_LIST | 리소스 요구 목록 (플러그 앤 플레이 하드웨어 열거 및 구성에 쓰임) |
11 | REG_QWORD/REG_QWORD_LITTLE_ENDIAN | QWORD 값 (64 비트 정수), 빅/리틀 엔디언 또는 정의되지 않음 (윈도 2000에 도입) |
SubKey - 선택한 ROOTKEY 아래에 있는 레지스트리 키의 전체 이름
/v 특정 레지스트리 키에 대한 쿼리
ValueName - 선택한 키 아래에 있는 쿼리할 이름.
생략하면 키 아래의 모든 키를 쿼리합니다.
/ve 기본값 또는 비어 있는 값 이름 <이름 없음>에 대한 쿼리
/s 모든 하위 키와 값을 쿼리합니다.
예:
REG QUERY HKLM\Software\Microsoft\ResKit /v Version
레지스트리 값 Version의 값을 표시합니다.
REG QUERY HKLM\Software\Microsoft\ResKit\Nt\Setup /s
레지스트리 키 Setup 아래의 모든 하위 키와 값을 표시합니다.
C:\>reg add /?
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved
REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]
KeyName [\\Machine\]FullKey
Machine 원격 컴퓨터 이름 - 생략하면 기본값이 현재 컴퓨터가 됩니다.
원격 컴퓨터에서는 HKLM과 HKU만 사용할 수 있습니다.
FullKey ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 선택한 ROOTKEY 아래에 있는 레지스트리 키의 전체 이름
/v 선택한 키 아래에 있는 추가할 값 이름
/ve 키에 대해 비어 있는 값 이름 <이름 없음>을 추가합니다.
/t RegKey 데이터 형식
[ REG_SZ | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN |
REG_DWORD | REG_BINARY | REG_DWORD_LITTLE_ENDIAN |
REG_NONE | REG_EXPAND_SZ ]
생략하면 REG_SZ인 것으로 간주합니다.
/s REG_MULTI_SZ에 대한 데이터 문자열에서 구분자로 사용할 문자를
하나 지정합니다. 생략하면 "\0"이 구분자로 사용됩니다.
/d 추가할 레지스트리 ValueName에 지정할 데이터
/f 확인 절차 없이 기존 레지스트리 항목을 강제로 덮어씁니다.
예:
REG ADD \\ABC\HKLM\Software\MyCo
원격 컴퓨터 ABC에 HKLM\Software\MyCo 키를 추가합니다.
REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
값(이름: Data, 형식: REG_BINARY, 데이터: fe340ead)을 추가합니다.
REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
값(이름: MRU, 형식: REG_MUTLI_SZ, 데이터: fax\0mail\0\0)을 추가합니다.
REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d %%systemroot%%
값(이름: Path, 형식: REG_EXPAND_SZ, 데이터: %systemroot%)을 추가합니다.
참고: 확장 문자열 내에는 퍼센트 기호를 두 개( %% ) 사용하십시오.
C:\>reg delete /?
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved
REG DELETE KeyName [/v ValueName | /ve | /va] [/f]
KeyName [\\Machine\]FullKey
Machine 원격 컴퓨터의 이름 - 생략하면 기본값이 현재 컴퓨터가 됩니다.
원격 컴퓨터에서는 HKLM과 HKU만 사용할 수 있습니다.
FullKey ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 선택한 ROOTKEY 아래에 있는 레지스트리 키의 전체 이름
ValueName 선택한 키 아래에 있는 삭제할 값 이름.
생략하면 해당 키 아래의 모든 하위 키와 값이 삭제됩니다.
/ve 비어 있는 값 이름 <이름 없음>의 값을 삭제합니다.
/va 이 키 아래의 모든 값을 삭제합니다.
/f 확인 절차 없이 강제로 삭제합니다.
예:
REG DELETE HKLM\Software\MyCo\MyApp\Timeout
레지스트리 키 Timeout과 그 하위 키 및 값을 모두 삭제합니다.
REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU
ZODIAC의 MyCo 아래에 있는 레지스트리 값 MTU를 삭제합니다.
C:\>reg copy /?
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved
REG COPY KeyName1 KeyName2 [/s] [/f]
KeyName [\\Machine\]FullKey
Machine 원격 컴퓨터의 이름 - 생략하면 기본값이 현재 컴퓨터가 됩니다.
원격 컴퓨터에서는 HKLM과 HKU만 사용할 수 있습니다.
FullKey ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 선택한 ROOTKEY 아래에 있는 레지스트리 키의 전체 이름
/s 모든 하위 키와 값을 복사합니다.
/f 확인 절차 없이 강제로 복사합니다.
예:
REG COPY HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp /s
MyApp 키 아래에 있는 모든 하위 키와 값을 SaveMyApp 키로 복사합니다.
REG COPY \\ZODIAC\HKLM\Software\MyCo HKLM\Software\MyCo1
ZODIAC의 MyCo 키 아래에 있는 모든 값을 현재 컴퓨터의 MyCo1
키로 복사합니다.
C:\>reg save /?
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved
REG SAVE KeyName FileName
KeyName ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 선택한 ROOTKEY 아래에 있는 레지스트리의 전체 이름
FileName 저장할 디스크 파일 이름. 경로를 지정하지 않으면
호출 중인 프로세스의 현재 폴더에 파일을 만듭니다.
예:
REG SAVE HKLM\Software\MyCo\MyApp AppBkUp.hiv
하이브 MyApp를 현재 폴더의 AppBkUp.hiv 파일에 저장합니다.
C:\>reg restore /?
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved
REG RESTORE KeyName FileName
KeyName ROOTKEY\SubKey (local machine only)
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 하이브 파일을 복원할 레지스트리 키의 전체 이름.
기존 키의 값과 하위 키를 덮어씁니다.
FileName 복원할 하이브 파일 이름.
REG SAVE를 사용하여 이 파일을 만들어야 합니다.
예:
REG RESTORE HKLM\Software\Microsoft\ResKit NTRKBkUp.hiv
ResKit 키를 덮어쓰면서 NTRKBkUp.hiv 파일을 복원합니다.
C:\>reg load /?
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved
REG LOAD KeyName FileName
KeyName ROOTKEY\SubKey (로컬 컴퓨터만)
ROOTKEY [ HKLM | HKU ]
SubKey 하이브 파일을 로드할 키 이름. 새 키를 만듭니다.
FileName 로드할 하이브 파일 이름.
REG SAVE를 사용하여 이 파일을 만들어야 합니다.
예:
REG LOAD HKLM\TempHive TempHive.hiv
TempHive.hiv 파일을 HKLM\TempHive 키로 로드합니다.
C:\>reg unload /?
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved
REG UNLOAD KeyName
KeyName ROOTKEY\SubKey (로컬 컴퓨터만)
ROOTKEY [ HKLM | HKU ]
SubKey 언로드할 하이브의 키 이름
예:
REG UNLOAD HKLM\TempHive
HKLM에 있는 TempHive 하이브를 언로드합니다.
C:\>reg compare /?
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved
REG COMPARE KeyName1 KeyName2 [/v ValueName | /ve] [Output] [/s]
KeyName [\\Machine\]FullKey
Machine 원격 컴퓨터의 이름 - 생략하면 기본값이 현재 컴퓨터가 됩니다.
원격 컴퓨터에서는 HKLM과 HKU만 사용할 수 있습니다.
FullKey ROOTKEY\SubKey
FullKey2를 지정하지 않으면 FullKey2가 FullKey1과 동일합니다.
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 선택한 ROOTKEY 아래에 있는 레지스트리 키의 전체 이름
ValueName 선택한 키 아래에 있는 비교할 값 이름.
생략하면 키 아래의 모든 값을 비교합니다.
/ve 비어 있는 값 이름 <이름 없음>의 값을 비교합니다.
/s 모든 하위 키와 값을 비교합니다.
Output [/oa | /od | /os | /on]
생략하면 서로 다른 값만 출력합니다
/oa 서로 다른 모든 값과 일치하는 값을 출력합니다.
/od 서로 다른 값만 출력합니다.
/os 일치하는 값만 출력합니다.
/on 결과를 출력하지 않습니다.
반환 코드:
0 - 성공. 비교한 결과가 동일함
1 - 실패
2 - 성공. 비교한 결과가 서로 다름
예:
REG COMPARE HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp
MyApp 키 아래의 모든 값을 SaveMyApp와 비교합니다.
REG COMPARE HKLM\Software\MyCo HKLM\Software\MyCo1 /v Version
MyCo와 MyCo1 키 아래의 Version 값을 비교합니다.
REG COMPARE \\ZODIAC\HKLM\Software\MyCo \\. /s
ZODIAC의 HKLM\Software\MyCo 아래에 있는 모든 하위 키와 값을
현재 시스템의 동일한 키와 비교합니다.
C:\>reg export /?
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved
REG EXPORT KeyName FileName
Keyname ROOTKEY\SubKey (로컬 컴퓨터만)
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 선택한 ROOTKEY 아래에 있는 레지스트리 키의 전체 이름
FileName 내보낼 디스크 파일의 이름
예:
REG EXPORT HKLM\Software\MyCo\MyApp AppBkUp.reg
MyApp 키의 모든 하위 키와 값을 AppBkUp.reg 파일로 내보냅니다.
C:\>reg import /?
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001. All rights reserved
REG IMPORT 파일 이름
파일 이름 가져올 디스크 파일 이름입니다(로컬 컴퓨터만).
예:
REG IMPORT AppBkUp.reg
AppBkUp.reg 파일에서 레지스트리 항목을 가져옵니다.
1. 초간단! 복사 배치파일
test1.bat
xcopy [원본] [대상] [옵션] xcopy f:\ d:\ /y |
배치파일 기본 중의 기본!
디렉터리 복사 하기 영 귀찮을 때, 혹은 같은 복사를 수 십대의 컴퓨터에 해야할 때 특히 유용합니다.
기본적으로 배치파일은 윈도우 명령 프롬프트 창에서 실행할 수 있는 모든 명령어를 포함하여 사용할 수 있습니다.
명령 프롬프트에서의 명령어는 dos와 같은데다, 자체 도움말 help를 내장하고 있으므로 쉽게 찾아보실 수 있습니다. 따라서 사용하고자 하는 커맨드를 나열하여 배치파일을 만들면, 복사 배치파일 뿐만 아니라 자신이 필요로 하는 배치파일을 만들 수 있습니다.
2.레지스트리 변경용 배치파일
명령 프롬프트 중에서 사용 가능한 명령어 중에,
reg라는 놈이 있습니다. 이 놈이 하는 역할은 윈도우에서 제공하는 레지스트리 편집기랑 같은 놈인데요,
이 명령어를 이용하면 사용하고자 하는 환경변수 등록을 “자동적으로” 만들 수 있습니다.
간단한 예로 자바 환경변수 등록을 하려면 다음과 같이 배치파일을 만듭니다.
test2.bat
reg add [윈도우의 전역 환경변수 위치] /v [추가될 변수 이름] /d [변수의 값] reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME /d "C:\Program Files\Java\jdk1.6.0_13" |
※포스팅 시점의 JDK가 1.6.13입니다. 이 부분은 사용하려는 JDK버전에 맞추어 바꿔주시기를 간절히 희망합니다.
위와 같이 만든 뒤 내 컴퓨터>속성>고급>환경변수에 가 보시면, JAVA_HOME 변수가 추가 된 것과 Path에 %JAVA_HOME%\bin\이 추가된 것을 볼 수 있습니다.
이런 팁을 어디다 쓰느냐 하면,
저 같은 경우 D:\Lib폴더를 만들어 제가 사용할 라이브러리들을 모아두는데요, 포맷 후 개발 환경을 복구시킬 때 이렇게 만들어 두고 배치파일 한번 실행 해버리고 마는 거죠. 일일이 마우스 우 클릭하면서 환경변수 등록하기 귀찮잖아요~?
3. 배치파일로 FTP사용하기.
이건 무려 배치파일과 스크립트 파일이라는 녀석을 함께 이용합니다. 우와~
위와 마찬가지로 명령 프롬프트 안에는 ftp라는 명령어가 있습니다. 하지만 이 녀석은 Unicode를 지원하지 않아서 좀 그렇더군요.
그래도 뭐 ftp에다가 폴더 이름하고 파일 이름을 영어로 쓰면 될 테니까요 뭐 쓰는데 큰 지장은 없지요.
test3.bat
ftp -n -s:ftp.scr [FTP서버 주소] |
ftp.scr
user [사용자 이름] |
ftp에 접속하여 파일을 받아오는 겁니다. 다만 ftp.scr에서 지정한 사용자 이름으로 접속하고 패스워드를 적으며 지정된 파일을 받아오는 일만 합니다.
그 외에도 ftp 자체 명령어가 많으니 그것도 알아보시면 더 많은 일을 할 수 있을 겁니다.
'ETC' 카테고리의 다른 글
CMD 창에 호스트명(hostname) 표시해주는 REG (0) | 2014.03.20 |
---|---|
[VS] Visual Studio C++ 2005 단축키( VS2008 호환 ) (0) | 2014.02.26 |
[cmd] -dir /s 옵션 (0) | 2014.02.26 |
2013_01_16 _VC_환경변수 경로설정_펌 (2) | 2014.01.16 |
2014.01.08 _ 데이터 통신 방식과 데이터 통신 종류( RS-232 / RS-422 / RS-485 ) (2) | 2014.01.08 |