파일 시스템 드라이브를 탐색할 때와 동일한 기술을 사용하여 Windows 레지스트리를 탐색할 수 있습니다. Windows PowerShell에서 HKEY_LOCAL_MACHINE 하이브는 Windows PowerShell HKLM: 드라이브에 매핑되고, HKEY_CURRENT_USER 드라이브는 Windows PowerShell HKCU: 드라이브에 매핑됩니다.

예를 들면 다음과 같습니다.

PS C:\> cd hklm:
PS HKLM:\> dir
PS HKLM:\> dir
   Hive: Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE
SKC  VC Name                           Property
---  -- ----                           --------
  4   0 HARDWARE                       {}
  1   0 SAM                            {}
Get-ChildItem : Requested registry access is not allowed.
At line:1 char:3
+ dir <<<<
 39   2 SOFTWARE                       {flash, (default)}
  8   0 SYSTEM                         {}
PS HKLM:\> cd system\currentcontrolset\control
PS HKLM:\system\currentcontrolset\control> dir

탐색해 보면 레지스트리 드라이브의 dir(Get-Childitem) 출력이 파일 시스템과 다른 것을 알 수 있을 것입니다. 레지스트리에는 여러 개의 드라이브가 있기 때문에 Windows PowerShell은 여러 가지 데이터 보기를 제공합니다. 이 경우 출력에 하위 키 및 항목 이름 외에 하위 키 개수(SKC)와 값 항목 개수(VC)를 포함할 수 있도록 하위 키 및 항목 수를 아는 것이 중요합니다.

PS> cd "CurrentControlSet\Control\Session Manager"
PS> dir
    Hive: Registry::HKEY_LOCAL_MACHINE\system\CurrentControlSet\Control\Session
Manager

SKC  VC ChildName                      Property
---  -- ---------                      --------
  0   1 AppCompatibility               {AppCompatCache}
 15   0 AppPatches                     {}
  0   7 DOS Devices                    {AUX, MAILSLOT, NUL, PIPE, PRN, UNC, f...

탐색할 때 레지스트리 항목이 나타나기 전에는 큰 차이를 발견하지 못할 것입니다. 레지스트리 키의 항목은 해당 항목이 있는 키의 속성으로 간주됩니다. 이러한 항목도 마찬가지로 Get-ItemProperty cmdlet을 사용하여 검색합니다.

예를 들어 Windows PowerShell 실행 정책 값을 보려는 경우 Get-ExecutionPolicy cmdlet을 사용하거나 HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell에 값을 저장하는 ExecutionPolicy 레지스트리 항목을 탐색할 수 있습니다.

PS C:\> cd hklm:
PS HKLM:\> cd software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell
PS HKLM:\software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell> dir
PS HKLM:\software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell> get-itemproperty -path . -name executionpolicy

PSPath          : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\microsoft\powershell\1\ShellIds\Micro
                  soft.PowerShell
PSParentPath    : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\microsoft\powershell\1\ShellIds
PSChildName     : Microsoft.PowerShell
PSDrive         : HKLM
PSProvider      : Microsoft.PowerShell.Core\Registry
ExecutionPolicy : RemoteSigned




목차