はじめに
コジマです。
Windowsの環境構築に携わることが多かったので、今まで手動でやってきた業務を自動化することを
よく行ってきました。
その中で注意すべき点について話していきたいと思います。
ハンドルについて
まず、ハンドルについて説明します。
Windowsのレジストリエディタのツリー構造の一番上にいるものをハンドルといいます。
これについては和訳記事がないので、英語ですが参考URL貼っておきます。
(参考URL)
https://docs.microsoft.com/en-us/windows/win32/sysinfo/predefined-keys
主要なハンドルの簡単な説明は以下の通りです。
ハンドル | 説明 |
HKEY_CLASSES_ROOT | クラスIDなどを保持 |
HKEY_CURRENT_USER | ログインしているユーザーの設定 |
HKEY_LOCAL_MACHINE | システム(全ユーザー共通)の設定 |
HKEY_USERS | 新規にユーザーを作成した時に反映される設定 |
HKEY_CURRENT_CONFIG | HKEY_LOCAL_MACHINEのエイリアス(※) |
(※)正確には「HKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware Profiles\Current」のエイリアス
覚えやすさのためにかなり簡略した書き方をしました。
このレベルで良いので、まずはこのレジストリのハンドルの意味を理解します。
そしたら、実際にレジストリを触る際の注意点を紹介します。
1:触るレジストリ、触らないレジストリ
触って良いレジストリと触ってはいけないレジストリの分別をまずつけましょう。
触るレジストリはHKEY_CURRENT_USER、HKEY_LOCAL_MACHINEの2つです。
調べて出てくるレジストリ操作のバッチなんかは大体この2つ。それ以外は見ない。
なぜか表で太字になってるのはこの理由です。
表も作ってみたので一度ご覧になっていただけるといいと思います。
ハンドル | 触る/触らない |
HKEY_CLASSES_ROOT | 触らない いろんな画面のクラスIDやシステムの設定もある。 下手に触るとマシンが壊れる。絶対ダメ× |
HKEY_CURRENT_USER | 触る |
HKEY_LOCAL_MACHINE | 触る |
HKEY_USERS | 触らない 触る場合もあるかもしれないが非常に稀。触らぬ神に祟りなし。 |
HKEY_CURRENT_CONFIG | 触らない HKEY_LOCAL_MACHINEの設定を反映するので触らない。 |
HKEY_CURRENT_USERはユーザーごとに反映される設定です。全ユーザーに反映したい場合はユーザーごとにログインして設定を行う必要があります。
デスクトップの設定やインターネットオプションなんかがHKEY_CURRENT_USERです。
HKEY_LOCAL_MACHINEは全ユーザー共通で反映される設定です。一度設定すれば全ユーザーに反映されます。
電源オプションやファイアウォールなんかがHKEY_LOCAL_MACHINEです。
2:バックアップを取る
バックアップを取るとは復元できるようにするということです。
失敗して取り返しつかなくなって初期化とか洒落にならないです。
レジストリ更新バッチを作る際には、修正前のレジストリをエクスポートするバッチなんかも一緒に
作っておくと良いかと思います。
エクスポートをするときはreg exportコマンドを使用します。
3:公式のサイトを確認する
実際個人ブログのものも大体記事の内容として合っているものの方が圧倒的に多いですが、
microsoftの公式サイトを参照することを強くお勧めします。
個人ブログの方が引っかかりやすいので、それはきっかけとしてよいですが、
実際裏を取るために公式サイトを参照します。
私は知識としてすでに持っている内容も公式のサイトを参照し、
確認取ってから記事を書くようにしています。
皆さんも是非そうしてください。
大体のことは以下のサイトにあります。
siteコマンドで書いておくので、google使いの人はコピーして活用してください。
- site:support.microsoft.com
- site:docs.microsoft.com
- site:msdn.microsoft.com
さいごに
レジストリを正しくハックできるようになると、特に環境構築において圧倒的なパフォーマンスの向上を見せます。
その反面リスクも大きいです。
「バッチ組んで効率化しました!」とだけ言っても、大体の上長は不安になります。
「これ、本当に正しいの?」と。
自分の作ったバッチが正しいもので、圧倒的な業務効率化を安全にできるよってところ見せつけてやりましょう。
この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!
以上、コジマでした。