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

MS기술문서임을 먼저 밝힙니다. 나중에 찾기 힘들것이므로 이곳에 올려둡니다
ADspider와 TurboAgent의 횡포를 무력화시키기위해 필요한 스크립트랍니다.
regedit해서 일일히 삭제하기 힘드니 스크립트로 삭제…오케이..


기술 자료 ID : 602094
마지막으로 검토한 날짜 : 2004년 9월 21일 화요일
수정 : 1.0
이 문서는 이전에 다음 ID로 출판되었음: KR602094

요약
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

[#M_ [예제] more.. | [예제] less.. | 다음 예제는 HKEY_CURRENT_USER에 있는 “SoftwareMyCompanyMyAppMyValue” 값을 삭제합니다.


Option Explicit
Const strValuePath = “HKCUSoftwareMyCompanyMyAppMyValue”

Dim wshShell
Set wshShell = WScript.CreateObject(“WScript.Shell”)

On Error Resume Next
wshShell.RegDelete strValuePath

다음 예제는 HKEY_CURRENT_USER에 “SoftwareMyCompanyMyAppMyValue” 값을 문자열(string) 형태로 추가합니다. 이미 이 값이 존재할 경우, 새로운 값으로 변경됩니다.


Option Explicit
Const strValuePath = “HKCUSoftwareMyCompanyMyAppMyValue”

Dim wshShell
Set wshShell = WScript.CreateObject(“WScript.Shell”)

On Error Resume Next
wshShell.RegWrite strValuePath, “Hello”, “REG_SZ”_M#]

[#M_ 위를 적용시킨 vbs파일 more.. |위를 적용시킨 vbs파일 less.. |


filename: regdel_script.vbs

Option Explicit

On Error Resume Next

Const strValuePath = “HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunADSpider”

Dim wshShell
Set wshShell = WScript.CreateObject(“WScript.Shell”)

On Error Resume Next
wshShell.RegDelete strValuePath_M#]

원인
이벤트 8001이 오류로 기록되는 경우는 다음과 같습니다. • 백업하려는 파일에 대한 액세스 실패 (access denied)
• 파일 손상 (file corruption)
• 디스크 블럭 손상 (bad disk block)
이와 같은 원인 중 한 가지라도 발생하면 이벤트 8001이 오류 형식으로 기록됩니다.

추가 정보
RegWrite 메소드와 RegDelete 메소드에 대한 자세한 내용은 다음 문서를 참고하십시오.
http://msdn.microsoft.com/library/en-us/wsh/htm/wsMthRegWrite.asp
http://msdn.microsoft.com/library/en-us/wsh/htm/wsMthRegDelete.asp
WSH에 대한 내용은 다음 문서를 참고하십시오.
Q177699 Overview of Windows Script Host in Windows 2000
Windows Script Host에 대한 설명은 다음 웹 사이트를 참고하십시오.
Microsoft Scripting Technologies
http://msdn.microsoft.com/scripting/

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.