Windowsでコマンドを使ってレジストリを操作する方法

Windowsでコマンドを使ってレジストリを操作する方法

ここでは、Windows環境でレジストリエディターやコマンドを使ってレジストリを操作する方法を紹介します。

レジストリとは

Windowsでは、システムやアプリケーションの設定情報などがレジストリと呼ばれるデータベースに保存されており、Windowsやアプリの設定を変更するときにレジストリに保存されいるデータを編集して設定変更しなければならないケースがあります。

Windowsでレジストリを編集する際のもっとも一般的な方法は、GUIベースの「レジストリエディター(regedit.exe)」を使った方法で、エントリの追加や変更、インポート、エクスポートといったレジストリ操作全般をマウスとキーボードを使って行うことができます。

ですが、レジストリエディターでの操作は視覚的には分かりやすいものの、同じ操作を繰り返すような場合や、同じ操作を複数のパソコンで行うような場合は、少々面倒です。そのようなときは、WindowsコマンドやPowerShellといったコマンドを使ってレジストリを操作するのが便利です。

Windowsコマンドを使った方法

Windowsコマンドを使ってレジストリ操作を行う場合は「REG」コマンドを利用し、REGコマンドにはエントリの追加/削除/変更/エクスポート/インポートするといった操作ごとにサブコマンドが用意されています。

主なサブコマンドは、以下のとおりです。

  • REG QUERY - レジストリエントリの表示
  • REG ADD - レジストリエントリの追加や更新
  • REG DELETE - レジストリエントリの削除
  • REG EXPORT - レジストリエントリを.regファイルへ書き出し
  • REG IMPORT - REG EXPORTで書き出されたレジストリエントリの書き戻し

REG QUERY

レジストリエントリに保存されている値やサブキーの情報を確認したいときは、以下のようにコマンドを実行します。

> reg query HKCU\Environment /v my-var

REG ADD

レジストリエントリを追加/変更するときは、以下のようにコマンドを実行します。

> reg add HKCU\Environment /v my-var /t reg_sz /d "Hello"

コマンドを実行すると確認メッセージが表示され「y」と入力することで処理が実行されます。(「/f」オプションを付けると、確認なしで処理が実行されます。)

REG DELETE

レジストリエントリを削除するときは、以下のようにコマンドを実行します。

> reg delete HKCU\Environment /v my-var

コマンドを実行すると確認メッセージが表示され「y」と入力することで処理が実行されます。(「/f」オプションを付けると、確認なしで処理が実行されます。)

REG EXPORT、REG IMPORT

レジストリエントリをエクスポート(バックアップ)したり、インポート(復元)するときは、REG EXPORTやREG IMPORTコマンドを使用します。

REG EXPORTやREG IMPORTコマンドの詳しい使い方は、以下の記事をご覧ください。

Windowsでレジストリをバックアップ・復元する方法
ここでは、Windows 10や11でレジストリ情報をバックアップ・復元する方法として、レジストリエディターやREGコマンドを使った方法を紹介します。

PowerShellコマンドレットを使った方法

PowerShellコマンドレットを使ってレジストリ操作を行う場合は、専用コマンドではなくレジストリも操作できるコマンドレットを使用します。

レジストリ操作するときに使用する主なコマンドレットは、以下のとおりです。

  • Get-ItemProperty - レジストリエントリの取得
  • Set-ItemProperty - レジストリエントリの更新
  • New-ItemProperty - レジストリエントリの追加
  • Remove-ItemProperty - レジストリキーや値の削除

Get-ItemProperty

レジストリエントリを取得するときは、Get-ItemPropertyコマンドレットを使って、以下のようにコマンドを実行します。

PS> Get-ItemProperty -Path "HKCU:\Environment"

特定のでプロパティ情報だけを取得したいときは、以下のようにコマンドを実行します。

PS> Get-ItemProperty -Path "HKCU:\Environment" -Name "my-var"

Set-ItemProperty

レジストリエントリを更新するときは、Set-ItemPropertyコマンドレットを使って、以下のようにコマンドを実行します。

PS> Set-ItemProperty "HKCU:\Environment" -name "my-var" -value "See you" -whatIf

なお、コマンドの最後に「-whatIf」オプションを付加しているのは、レジストリの変更やファイルの削除など元に戻せない操作を行う場合に、いきなり実行するのではなく処理内容を事前に確認するためです。

New-ItemProperty

レジストリエントリを追加するときは、New-ItemPropertyコマンドレットを使って、以下のようにコマンドを実行します。

PS> New-ItemProperty -Path "HKCU:\Environment" -Name "new-var" -PropertyType String -Value "Hello"

Remove-ItemProperty

レジストリエントリを削除するときは、Remove-ItemPropertyコマンドレットを使って、以下のようにコマンドを実行します。

PS> Remove-ItemProperty -Path "HKCU:\Environment" -name "my-var"

参考URL

レジストリ操作で使用するコマンドの詳しい使い方は、Microsoft公式ページが参考になるでしょう。

reg コマンド | Microsoft Learn

Get-ItemProperty (Microsoft.PowerShell.Management) - PowerShell | Microsoft Learn

Set-ItemProperty (Microsoft.PowerShell.Management) - PowerShell | Microsoft Learn

New-ItemProperty (Microsoft.PowerShell.Management) - PowerShell | Microsoft Learn

Remove-ItemProperty (Microsoft.PowerShell.Management) - PowerShell | Microsoft Learn

あとがき

レジスト操作は、レジストリエディターを使った方法が一般的ですが、複数のマシンに同じ操作を行うことがあるなら、コマンドでの対応方法を覚えておくと作業効率を格段にアップできます。ご活用あれ。