レジストリエディタを使わずバッチでレジストリ変更する方法

プログラミング

おはようございます、タナイです。
今日はこんな問題を解決します。

会社員
会社員

会社PCは集中管理されててOffice設定で変更できないところがある…
レジストリで変更できるけど、個人ファイル以外の要素は一定周期でレジストリごと元に戻っちゃうからいちいちレジストリエディタ開いて設定し直すのが面倒くさい!

そもそも会社PCだと管理者権限そのものがなかったりして困ることも多々あるんですが、それはまた別のエントリで…

バッチファイルとは

WinRを押して「cmd」と入力するとコマンドプロンプトというCUI画面があらわれます。

CUI: Character-based User Interface(普段Windowsで見る画面はほとんどがGUI: Graphical User Interfaceです)

CUIでは原則マウスを使わず、すべて打ち込んだ文字でPCを操作することが可能です。

そして、コマンドプロンプトでは基本1行ずつコマンドを打ち込んでPCに指示内容を実行させます。

でも、どうせ全部文字で指示するのなら、決まった作業は1行ずつと言わずまとめて書いておいて実行させたいですよね。

そんなとき、バッチファイルでは事前に複数行のコマンドを書いて保存しておくことで、1クリックですべての行の指示をまとめて実行させることが出来ます。

また、1行ずつ書くのとは違って条件分岐させたり、サブルーチンを呼び出したり、多少プラグラミングチック的な動作も可能です。

バッチでレジストリを変更する

では本題です。今回はレジストリ変更の部分に絞ってお伝えしておきます。

バッチの全機能を知ろうと思うと膨大な記事の量になるため、このエントリの伸びが良ければ追加でバッチ解説記事を書こうと思います。

まずは、とりあえずcmdでレジストリを読み込んでみましょう。

reg query {レジストリのパス} /v {レジストリのキー名}で検索できる

これの書き込みバージョンをバッチファイルに書き込んでやればOKですね。

reg add {レジストリのパス} /v {レジストリのキー名} /t {レジストリの種類} /d {レジストリの値} /f

コマンドの各パラメータの意味を知りたければMicrosoft公式サイトを参照してください。

複数のレジストリキーを一度に書き換えたい場合は、1コマンドごとに改行して必要な分だけ何行でも書いて保存すればOKです。

バッチファイルの作成方法

テキストファイルを新規作成して、拡張子を「.bat」にしてください

コンパイル等は不要でそのまま使うことができます。編集するときは、右クリック→「編集」で。

常に管理者権限でバッチを起動させたい場合

レジストリのキーによっては管理者権限が必要ですが、いちいち管理者権限にするのが面倒です。

作ったバッチを管理者権限で呼び出すバッチを作りましょう。

さきほど紹介したレジストリ書き込み用のコマンドを「writeReg.bat」という名前で保存したとします。

同じディレクトリに「runAsAdmin.bat」などと名前を付けて以下のコマンドを保存しましょう。

runas /savecred /user:{管理者権限のユーザ名} %~dp0writeReg.bat

初回のみパスワード入力を求められますが、それ以降runasコマンドではパスワード入力なしで通過できます。

まとめ

今日のまとめです。

  • レジストリエディタを使わなくてもコマンドラインで書き換えができる
  • 一度に複数のコマンドを処理するにはバッチファイルを使えばOK
  • 作ったバッチを管理者権限で呼び出せば2回目以降のパスワード入力が省略可能
Twitterで更新情報など発信していますのでぜひフォローお願いします!
いっそのことエンジニアに転職してプログラミングのプロになりませんか

コメント

タイトルとURLをコピーしました