É 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




Sumário