È possibile spostarsi nel Registro di sistema di Windows utilizzando le stesse tecniche che consentono di spostarsi nell'unità del file system. In Windows PowerShell, l'hive HKEY_LOCAL_MACHINE esegue il mapping all'unità HKLM: di Windows PowerShell e l'hive HKEY_CURRENT_USER esegue il mapping all'unità HKCU: di Windows PowerShell.
Ad esempio:
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
Spostandosi tra i vari elementi, sarà possibile notare che l'output di dir (Get-Childitem) è diverso nelle unità del Registro di sistema rispetto al file system. Poiché il Registro di sistema include diverse unità, Windows PowerShell offre una visualizzazione diversa dei dati. In questo caso, è importante conoscere il numero di sottochiavi e voci presenti, in modo che l'output includa un conteggio delle sottochiavi (SKC) e un conteggio delle voci dei valori (VC), oltre ai nomi delle sottochiavi e delle voci.
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...
Lo spostamento non risulterà molto diverso fino a quando non si passa alle voci del Registro di sistema. Le voci di una chiave del Registro di sistema sono considerate proprietà della chiave in cui si trovano. È pertanto possibile utilizzare il cmdlet Get-ItemProperty per recuperarle.
Se, ad esempio, si desidera visualizzare il valore dei criteri di esecuzione di Windows PowerShell, è possibile utilizzare il cmdlet Get-ExecutionPolicy oppure spostarsi alla voce del Registro di sistema ExecutionPolicy il cui valore è archiviato in 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