ここでは、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コマンドの詳しい使い方は、以下の記事をご覧ください。
![](https://4thsight.xyz/wp-content/uploads/2022/05/1652922274-100x100.webp)
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公式ページが参考になるでしょう。
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
あとがき
レジスト操作は、レジストリエディターを使った方法が一般的ですが、複数のマシンに同じ操作を行うことがあるなら、コマンドでの対応方法を覚えておくと作業効率を格段にアップできます。ご活用あれ。