È 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




Argomenti della Guida