PowerShellからのレジストリアクセス
PowerShellではレジストリ専用のコマンドが存在しない。PSドライブという機能を使い、レジストリをファイルのように扱う。このとき、ファイルと同じ「Item」系コマンドを使う。
キーがパス、値がファイルである。PSドライブとは、さまざまなデータをファイルシステムのように扱うための仕組み。ファイルシステムでは、「C」や「D」などのドライブ文字がPSドライブになっているが、レジストリではルートキーがPSドライブである。PSドライブは、パスの頭に付け、コロンを介して以下にパスを記述する。
たとえば「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft」は、「HKLM:\SOFTWARE\Microsoft」と表記できる。
Get-Item HKLM:\SOFTWARE\Microsoft
のように使う。
PSドライブが定義されていないルートキーは、レジストリプロバイダー(Microsoft.PowerShell.Core\Registry::だが、Registry::と表記できる)を使って「Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft」と記述する。
標準では「HKCU」と「HKLM」の2つが定義されている。また、New-PSDriveコマンドを使えば、他のルートキーをPSドライブとして定義することもできる。たとえば、
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
で、「HKEY_CLASSES_ROOT」を「HKCR」というPSドライブに定義できる。
こうした仕組みになっているため、PowerShellでレジストリを扱うときには、ちょっと頭を切り替える必要がある。
たとえば、キーにある値を列挙するには、Get-Itemを使う。 レジストリの場合、「Get-ItemProperty」でも値を列挙できる。ただし、この場合、PowerShellのプロパティ(PSで始まる)が付加される。サブキーを含めて表示させたい場合には、Get-ChildItemを使う。
少し面倒な感じもあるが、PowerShellでは、タブによる補完が可能で、レジストリキーにも有効なため、reg.exeコマンドよりも、入力効率がいいというメリットがある。また、結果を変数に保存してコマンドの繰り返しを避けたり、さまざまなコマンドで対象を絞る、データを抽出するといったことが可能である。
ただ、意外と検索が面倒だ。PowerShellでは、一般にコマンドを使って対象を含むデータを列挙して、その中から目的のものを選択するという考えになる。レジストリキーや名前での検索は難しくないが、データでの検索はかなり面倒なコマンドになり、reg.exeを使ったほうが手っ取り早い。
その代わりといってはなんだが、キーや名前の変更、データの追記といった処理は比較的簡単だ。reg.exeでは、データは書き換えしかできないため、元のデータを表示させて、これをADDサブコマンドの引数に含めて上書き用のデータを指定する必要がある。
レジストリエディタは、基本的な機能を網羅しているため、たいていはこれで十分なのだが、ウィンドウを開いたり、キーを探すのが面倒に感じることがある。コマンドラインを使っているなら、レジストリを確認したい場合には、reg.exeコマンドを使えばいいだろう。
この連載の記事
-
第428回
PC
Google/Bingで使える検索オプション -
第427回
PC
WindowsのPowerShellのプロファイルを設定する -
第426回
PC
WindowsでAndroidスマホをWebカメラにする機能を試した -
第425回
PC
無料で使えるExcelにWord、Microsoft 365のウェブ版を調べた -
第424回
PC
Windowsの基本機能であるクリップボードについてあらためて整理 -
第423回
PC
PowerShellの今を見る 2つあるPowerShellはどっち使えばいい? -
第422回
PC
Windows 11の目玉機能が早くも終了、Windows Subsystem for Android(WSA)を振り返る -
第421回
PC
進化しているPowerToys LANで接続したマシンでキーボード/マウス共有機能などが追加 -
第420回
PC
Windowsプレビュー版に搭載されたsudoを試す -
第419回
PC
Windows Insider Previewが変わって、今秋登場のWindows 11 Ver.24H2の新機能が見えてきた? -
第418回
PC
Windows 11のスマートフォン連携は新機能が追加されるなど、いまだ進化している - この連載の一覧へ