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コマンドを使えばいいだろう。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ













