Windowsをちょっと使い始めると、避けられないのが、レジストリの操作だ。レジストリとは、Windowsのシステム設定を記録しているオブジェクトである。Microsoftがユーザーが設定してもいいだろうという設定項目はGUIで行える。そうでなく、初心者には触らせたくない、互換性のために残してあるだけ、などの理由で、あまり触っては欲しくない設定項目には、GUIを作らない。しかし、レジストリを直接書き換えることで設定を変更することができる。
レジストリには、「HKEY_」で始まる名前を持つルートキーが5つある。それぞれに役割がある(表01)。なお、HKEYは、「Handle to registry KEY」の略であるとされる。レジストリは、ルートキーの下がツリー構造になっており、ファイルシステムで言うところのディレクトリ(フォルダ)をキーと呼ぶ。各キーの下にはレジストリエントリ(プロパティ)と呼ばれる情報があり、名前、タイプ、値を記録している。キーには、必ず、「(既定)」、「(default)」という名前のプロパティが存在する。値が設定されていないものもあるが、有効な値が書き込まれている場合もある。
レジストリの設定といえば、レジストリエディタ(regedit.exe)が定番である。しかし、Windowsの高解像度対応がなされておらず、4Kモニターともなれば、Windows側で倍率設定しないと、文字が小さすぎる。かといって、レジストリエディタのためだけに表示倍率の設定するのも気が進まない。
こういう場合、コマンドラインを使ってコンソールからレジストリの操作をするのがいい。コンソールなら文字サイズを自由に変えることができるし、コマンドで好きな行数だけ表示させる、あるいはOut-GridViewでウィンドウで表示することもできる。
ただし、レジストリエディタはGUIでレジストリ操作が行いやすいというメリットがあり、コマンドラインの場合には、コマンドになれる必要がある点が異なる。とりあえず、字が小さいという問題を除けば、レジストリエディタで最低限の操作は可能なので、レジストリエディタを使い続けるという方法もある。
PowerShellからレジストリを扱う場合、キーの操作には、Get-Itemのような「名詞」が「Item」のコマンドを使う(表02)。また、キーの下にあるサブキーを扱う場合には、「Get-ChildItem」コマンドを使う。
プロパティを扱う場合、Get-ItemPropertyのように名詞が、「ItemProperty」になったコマンドを使う(表03)。
PowerShellからレジストリを扱う場合、複数の指定方法(表04)があるが、最も簡単なのは、PSドライブを使う方法だ。ただし、標準状態では、5つのルートキーのうち「HKLM」(HKEY_LOCAL_MACHINE)と、「HKCU」(HKEY_CURRENT_USERS)の2つだけしか定義されていないので、起動プロファイルで、「HKEY_CLASSES_ROOT」(HKCR)ぐらいは定義しておいた方がいいかもしれない。
[void](remove-PSDrive -Name HKCR -ErrorAction SilentlyContinue)
[void](New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT -scope global -ErrorAction SilentlyContinue)
その場合、ドットソースで再定義することを考慮して、PSドライブのHKCRを削除して再定義し、エラー処理(-ErrorAction SilentlyContinue)を入れておく。また、コマンドの出力があるのでプロファイル内に置くなら「[void]」で消しておく。
今回のタイトルネタは、レイ・ブラッドベリ(Ray Douglas Bradbury)の「刺青の男」(ハヤカワ・SF・シリーズ。邦訳1960年。原題The Illustrated Man,1951)である。全身に彫られた18の刺青が、SFながら物悲しい誰かの人生を映し出す。何度も読み返したくなる一冊。