파일 시스템 드라이브를 탐색할 때와 동일한 기술을 사용하여 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