PowerShell | 레지스트리 다루기. 만들기, 읽기, 수정, 삭제. (CRUD) 하기

1. 개요 – PowerShell | 레지스트리 다루기. 만들기, 읽기, 수정, 삭제. (CRUD) 하기

Windows 운영체제에서 레지스트리(Registry)는 Windows 시스템에서 매우 중요한 역할을 합니다. 프로그램 설정, 시스템 환경, 사용자 환경 등을 저장하는 데 사용되며, 이러한 레지스트리를 효과적으로 관리하는 것은 시스템 관리자와 개발자에게 필수입니다.

본 포스팅에서는 PowerShell을 사용하여 Windows 레지스트리를 다루는 방법을 알아봅니다. CRUD (Create, Read, Update, Delete) 방식을 따라, 레지스트리를 만들고, 읽고, 수정하고, 삭제하는 다양한 방법들을 실제 예제와 함께 알아보겠습니다.

2. PowerShell 로 레지스트리 만들기(Create)

레지스트리는 키, Key(폴더) 내부에 만듭니다. 따라서 레지스트리 키를 먼저 만들어보겠습니다. 그리고 레지스트리를 만들어보겠습니다. 레지스트리의 타입 역시 간단히 알아보겠습니다.

레지스트리 키(폴더) 생성하기(New-Item)

레지스트리 키를 생성하기 위해서는 ‘New-Item‘ 이라는 cmdlet 을 사용합니다. “HKCU:\Wednesday1304\KeyName01” 이라는 레지스트리 키를 생성해보겠습니다.

New-Item -Path "HKCU:\Wednesday1304\KeyName01"

레지스트리 생성하기(New-ItemProperty)

레지스트리 키를 만든 후에, ‘New-ItemProperty‘ cmdlet 을 사용하여, 레지스트리를 만듭니다.

# String 만들기
New-ItemProperty -Path "HKCU:\Wednesday1304\KeyName01" -Name "Reg_String" -Value "wednesday1304.com" -PropertyType String

# MultiString 만들기
New-ItemProperty -Path "HKCU:\Wednesday1304\KeyName01" -Name "Reg_MultiString" -Value "1,2,3" -PropertyType MultiString

# ExpandString
New-ItemProperty -Path "HKCU:\Wednesday1304\KeyName01" -Name "Reg_ExpandSZ" -Value "EXPAND_STRING" -PropertyType ExpandString

# Binary 만들기
New-ItemProperty -Path "HKCU:\Wednesday1304\KeyName01" -Name "Reg_Binary" -Value "1" -PropertyType Binary 

# DWORD 만들기
New-ItemProperty -Path "HKCU:\Wednesday1304\KeyName01" -Name "Reg_DWORD" -Value 1 -PropertyType DWORD

# QWORD 만들기
New-ItemProperty -Path "HKCU:\Wednesday1304\KeyName01" -Name "Reg_QWORD" -Value 5 -PropertyType QWORD
cmdlet 을 사용하여 레지스트리 생성 한 모습
cmdlet 을 사용하여 레지스트리 생성 한 모습

레지스트리 타입은 아래 표와 같이 있습니다.

타입명령어 입력(PropertyType)설명
REG_SZStringnull 로 끝나는 문자열
REG_EXPAND_SZExpandString환경변수에 대한 확장되지 않은 참조
REG_MULTI_SZMultiStringnull 로 끝나는 문자열 시퀀스
REG_BINARYBinaryBinary 데이터
REG_DWORDDWORD32비트 숫자
REG_QWORDQWORD64비트 숫자
레지스트리 타입 별 설명(출처 : Microsoft | Registry value types🔗)

3. PowerShell 로 레지스트리 읽기(Read)

레지스트리 키 읽기와 레지스트리 값 읽기를 해보겠습니다. 각각 ‘Get-Item‘과 ‘Get-ItemProperty‘ cmdlet 을 사용합니다.

'Get-Item', 'Get-ItemProperty' cmdlet 의 결과 화면
‘Get-Item’, ‘Get-ItemProperty’ cmdlet 의 결과 화면

레지스트리 키, 키 내부 읽기(Get-Item)

Get-Item -Path "HKCU:\Wednesday1304\KeyName01"

해당 경로에 있는 레지스트리 키와 레지스트리를 불러오는 cmdlet 입니다.

레지스트리 값 읽기(Get-ItemProperty)

Get-ItemProperty -Path "HKCU:\Wednesday1304\KeyName01" -Name "reg_string"

해당 경로에 있는 ‘reg_string‘의 값을 불러오는 cmdlet 입니다.

4. PowerShell 로 레지스트리 수정하기(Update)

레지스트리 이름을 변경하는 방법, 레지스트리 값을 변경하는 방법과, 레지스트리 타입을 변경하는 방법을 알아보겠습니다. 각각 ‘Rename-ItemProperty‘, ‘Set-ItemProperty‘, 그리고 ‘Set-ItemProperty‘를 사용합니다.

레지스트리 이름 변경하기(Rename-ItemProperty)

Rename-ItemProperty -path "HKCU:\Wednesday1304\KeyName01\" -Name "Reg_MultiString" -NewName "Reg_ms001"

Reg_MultiString‘ 이란 이름의 레지스트리를 ‘Reg_ms001‘로 변경하는 cmdlet 입니다.

레지스트리 값 변경하기(Set-ItemProperty)

Set-ItemProperty -Path "HKCU:\Wednesday1304\KeyName01" -Name "Reg_String" -Value "새로운 데이터01"

Reg_String‘ 의 값을 ‘새로운 데이터01‘로 변경하는 cmdlet 입니다.

레지스트리 타입 변경하기(Set-ItemProperty)

Set-ItemProperty -Path "HKCU:\Wednesday1304\KeyName01" -Name "Reg_DWORD" -Value 100 -PropertyType String

Reg_DWORD‘의 타입을 String (REG_SZ)로 변경하는 cmdlet 입니다.

5. PowerShell 로 레지스트리 삭제하기(Delete)

레지스트리 키를 삭제하는 방법(Remove-Item)과 레지스트리를 삭제하는 방법(Remove-ItemProperty)을 알아보겠습니다.

  • 레지스트리를 삭제하는 경우, 복구가 거의 불가능하므로 주의가 필요합니다!

레지스트리 키 삭제하기(Remove-Item)

Remove-Item -Path "HKCU:\Wednesday1304\KeyName01"

해당 경로(“HKCU:\Wednesday1304\KeyName01“) 인 레지스트리 키를 삭제하는 cmdlet 입니다.

레지스트리 삭제하기(Remove-ItemProperty)

Remove-ItemProperty -Path "HKCU:\Wednesday1304\KeyName01\" -Name "Reg_string"

Reg_string‘ 이란 이름의 레지스트리를 삭제하는 cmdlet 입니다.

6. 결론

여기까지 PowerShell 로 레지스트리를 다루기(생성, 읽기, 수정, 삭제) CRUD(Create, Read, Update, Delete) 작업을 알아보았습니다. 필요한 곳에 적절히 사용하시길 바랍니다.

!@#끝!@#

(출처 및 참고자료)

One thought on “PowerShell | 레지스트리 다루기. 만들기, 읽기, 수정, 삭제. (CRUD) 하기

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다