Windows 64bit 版の reg コマンドでレジストリアクセスするときは気をつけろ

レジストリの特定のパラメータを変更したいのだけど一般利用者の皆さんにレジストリエディタで操作してもらうというのは非常に危険です。なので、 reg コマンドで指定のキーの値を変更する処理を書いたバッチファイルを準備して、コレを実行してください等とするわけです。

Windows 64bit 版には、Windows フォルダ配下に 64bit 環境用の system32 フォルダと、32bit 環境用の syswow64 フォルダがあり、呼び出し元アプリケーションによって使うフォルダを変えます。

64bit アプリから reg コマンドを呼び出すと %SystemRoot%\system32\reg.exe が使われますし、 32bit アプリから reg コマンドを呼び出すと %SystemRoot%\syswow64\reg.exe が使われます。

で。

Windows 64bit 版にて 32bit 用の %SystemRoot%\syswow64\reg.exe は、レジストリの一部領域にアクセスできません。OSの設定値などが記述された辺りを操作することができません。

Windows 64bit 版にて 32bit なシステム管理ツールから reg コマンド呼び出したりするとそいつは 32bit 版の reg コマンドなので OS の設定値が書かれた辺りのレジストリパラメータを変更することができません。

という困った状態を回避するため reg コマンドにオプションが用意されていました。

/reg:64 ←コレです。

32bit 版 reg コマンドから 64bit 版のみがアクセスできる領域に手を出せるオプションです。これは知らんかったわー。ハマったわー。