可以使用与在文件系统驱动器中用来导航的相同方法在 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




目录