ファイル システム ドライブ内を移動するのと同じ方法で 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 コマンドレットを使用します。
たとえば、Windows PowerShell の実行ポリシーの値を表示するには、Get-ExecutionPolicy コマンドレットを使用するか、または 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