您可以使用在檔案系統磁碟機中瀏覽時所用的相同語法來瀏覽 Windows 登錄。在 Windows PowerShell 中,HKEY_LOCAL_MACHINE Hive 會對應到 Windows PowerShell HKLM: 磁碟機,而 HKEY_CURRENT_USER 磁碟機會對應到 Windows PowerShell HKCU: Hive。

例如:

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




目錄