É possível navegar no Registro do Windows usando as mesmas técnicas utilizadas para navegar na unidade do sistema de arquivos. No Windows PowerShell, o hive do HKEY_LOCAL_MACHINE mapeia para a unidade HKLM: do Windows PowerShell, enquanto o hive HKEY_CURRENT_USER mapeia para a unidade HKCU: do Windows PowerShell.
Por exemplo:
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
Ao navegar, você observa que a saída de dir (Get-Childitem) nas unidades do Registro é diferente da mesma saída no sistema de arquivos. Como o Registro tem unidades diferentes, o Windows PowerShell fornece uma exibição diferente dos dados. Nesse caso, é importante saber quantas subchaves e entradas estão presentes para que a saída inclua uma contagem de subchaves (SKC) e uma contagem de entradas de valores (VC), além dos nomes das subchaves e das entradas.
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...
Não serão observadas muitas diferenças na navegação até que você obtenha as entradas do Registro. As entradas em uma chave do Registro são consideradas como propriedades da chave na qual estão localizadas. Dessa forma, utilize o cmdlet Get-ItemProperty para recuperá-las.
Por exemplo, se desejar consultar o valor da diretiva de execução do Windows PowerShell, use o cmdlet Get-ExecutionPolicy ou navegue até a entrada do Registro ExecutionPolicy, que armazena o valor em HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell.
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