프로그래밍

스크립트를 이용하여 레지스트리 항목을 추가, 변경, 삭제하는 방법

채윤아빠 2009. 2. 13. 11:53
728x90
반응형
Windows 2000 환경에서 각 클라이언트나 서버의 레지스트리 항목을 추가하거나 삭제하려면 VBScript를 작성하여 로그온 스크립트로 실행할 수 있습니다. WScript.Shell 개체의 RegWrite() 메소드와 RegDelete() 메소드를 이용합니다

메모장과 같은 일반적인 텍스트 파일 편집기를 이용하여 Visual Basic Script를 작성함으로써, 레지스트리에 항목을 추가하거나 변경 또는 삭제할 수 있습니다. 텍스트 형태로 입력한 후, 확장자를 .vbs로 저장합니다. WScript.Shell 개체를 만들고, 새로운 항목을 만들거나 기존 항목을 변경하려면 RegWrite() 메소드를, 기존 항목을 삭제하려면 RegDelete() 메소드를 사용합니다.
  • 값(value)은 문자열의 마지막이 '\' 없이 끝나고, 키(key)는 마지막에 '\'를 포함합니다.
  • 레지스트리 하이브(Registry hive)의 루트에는 다음과 같은 약자를 사용할 수 있습니다.

    루트 키(Root key) 약자
    HKEY_CURRENT_USER HKCU
    HKEY_LOCAL_MACHINE HKLM
    HKEY_CLASSES_ROOT HKCR
    HKEY_USERS HKEY_USERS
    HKEY_CURRENT_CONFIG HKEY_CURRENT_CONFIG
  • RegWrite() 메소드의 3번째 인수에는 값의 형식을 지정합니다. 이 때 다음 표와 같이 인수를 지정합니다.
    형식 인수
    문자열 REG_SZ
    문자열(%comspec% 등과 같은 환경 변수를 포함하는 경우) REG_EXPAND_SZ
    정수 REG_DWORD
    이진 문자열 REG_BINARY
다음 예제는 HKEY_CURRENT_USER에 있는 "Software\MyCompany\MyApp\MyValue" 값을 삭제합니다.
Option Explicit
Const strValuePath = "HKCU\Software\MyCompany\MyApp\MyValue"

Dim wshShell
Set wshShell = WScript.CreateObject("WScript.Shell")

On Error Resume Next
wshShell.RegDelete strValuePath

다음 예제는 HKEY_CURRENT_USER에 "Software\MyCompany\MyApp\MyValue" 값을 문자열(string) 형태로 추가합니다. 이미 이 값이 존재할 경우, 새로운 값으로 변경됩니다.
Option Explicit
Const strValuePath = "HKCU\Software\MyCompany\MyApp\MyValue"

Dim wshShell
Set wshShell = WScript.CreateObject("WScript.Shell")

On Error Resume Next
wshShell.RegWrite strValuePath, "Hello", "REG_SZ"

참고자료 :

'프로그래밍' 카테고리의 다른 글

Using the SoftICE Debugger in a Virtual Machine  (0) 2009.04.14
FileSystemObject  (0) 2009.04.11
WSH(WIndows Script Hosting) 정리  (0) 2009.01.15
Open CV  (0) 2009.01.12
MFC 용 상용 GUI 라이브러리 무료화 (UltimateToolBox)  (0) 2008.11.12