Windows PowerShellには“PSドライブ”という特殊な仮想ドライブ機能がある。PSドライブを使うと、ファイルシステムと同等の手法でWindowsパソコンのあらゆる情報にアクセスできる。

レジストリの中が確認できる

 例えばPowerShellのコンソールを管理者として起動し、次のコマンドを実行してみよう。次の行からプロンプトが「HKLM:」に変わるはずだ(図1)。

cd HKLM:
図1●「cd HKLM:」コマンドを入力する
図1●「cd HKLM:」コマンドを入力する
レジストリの「HKEY_LOCAL_MACHINE」ハイブに移動したことになる。
[画像のクリックで拡大表示]

 「cd」はファイルシステムで階層を移動する際に使う一般的なコマンドだ。PowerShellのcdはSet-Locationの別名として登録されており、ドライブの移動と階層の移動のいずれにも使用できる。つまり、次のコマンドを実行したのと同じだ。

Set-Location HKLM:

 このHKLM:ドライブはレジストリの「HKEY_LOCAL_MACHINE」ハイブを意味する。つまり、レジストリの内部に入り込んだことになるのだ。

 ここで次のコマンドを実行して階層を移動してみよう。

cd .\SOFTWARE\Microsoft

 自分のいる現在の階層はpwdコマンドを使えば確認できる(図2)。pwdはLinuxユーザーにおなじみのコマンドで、PowerShellでは「Get-Location」の別名として登録されている。

図2●「pwd」コマンドを入力する
図2●「pwd」コマンドを入力する
現在の階層を確認するために利用する。
[画像のクリックで拡大表示]

 階層内のアイテムを一覧する場合、ファイルシステムでよく使う「dir」コマンドを使用する(図3左)。これは「Get-ChildItem」の別名だ。同様の画面をレジストリエディターで参照すると図3右のようになる。

図3●現在の階層にあるアイテムを一覧表示する
図3●現在の階層にあるアイテムを一覧表示する
「dir」コマンドを実行すると(左)、レジストリエディター(右)と同じ内容が一覧表示される。
[画像のクリックで拡大表示]

 レジストリは「キー」とその配下の「値」で構成している。図3でActiveSyncキーの配下を見比べると、Name列が「キー」、プロパティが「値」に対応していることがわかる。言い換えれば、「値」を取得する際には「キー」のプロパティとして取得する必要がある。

▼レジストリ
Windowsが設定情報を保存しておくためのデータベース。OSの基本情報だけでなく、アプリケーションの設定など各種の情報を幅広く格納する。レジストリ内では、いくつかのキーごとに分割したツリー構造で情報を管理しており、それぞれのツリーをハイブと呼ぶ。レジストリの情報を編集する場合は、基本的にレジストリエディターという専用のアプリケーションを使う。