【PowerShell】レジストリの値をコマンドで確認する[reg query/Get-Item/Get-ItemProperty]

Microsoft Windows

ちょろっとレジストリの値を確認したいときにレジストリエディターから一つずつたどっていくのが面倒だったので、PowerShell で確認しようとしたところ、PowerShell が難しくてほしい情報が見れなかったのでメモ。

スポンサーリンク

レジストリエントリを確認する[PowerShell]

PowerShell でレジストリ値を確認する方法はいくつかあるようですが、レジストリエディターを使わずにサクッとキーの情報を確認したいという事が目的なのでGet-Item」と「Get-ItemProperty」、「reg query」の3つのコマンドと実行結果を比較してみました。

レジストリエントリの確認方法

今回は以下のキーを対象に情報の取得を行ってみました。

レジストリキー:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
エントリ:RegisteredOwner

レジストリエディター上で確認すると、以下のようになっています。

名前種類データ
RegisteredOwnerREG_SZWindows ユーザー

PowerShell で対象のレジストリエントリを確認していきます。

Get-Item 

まずは、Get-Item コマンドでレジストリエントリを確認してみます。Get-Item コマンドに GetValue をつけて指定した名前(エントリ名)に関連付けられている値を取得しています。

コマンド例

(Get-Item -Path "Registry::<レジストリキー(パス)>").GetValue("<エントリ名>")

コマンド実行例

PS C:\Users\Administrator>Get-Item -Path "Registry::HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion").Getvalue("RegisteredOwner")
Windows ユーザー

PS C:\Users\Administrator>

データの情報しか取得できなかったので、別で GetValueKind を指定してみました。

コマンド実行例

PS C:\Users\Administrator>(Get-Item -Path "Registry::HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion").GetValueKind("RegisteredOwner")
String

PS C:\Users\Administrator>

「String」と、レジストリエントリの種類に該当する情報が取得できました。

Get−ItemProperty 

次は、Get-ItemProperty コマンドで実行してみます。Get-ItemProperty コマンドでは、-Name が使用できるので名前にレジストリエントリ名を指定しています。

コマンド例

Get-ItemProperty -Path "Registry::<レジストリキー(パス)>" -Name <エントリ名>

コマンド実行例

PS C:\Users\Administrator>Get-ItemProperty -Path "Registry::HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name RegisteredOwner

RegisteredOwner : Windows ユーザー
PSPath         : Microsoft.PowerShell.Core\Registry::HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
PSParentPath   : Microsoft.PowerShell.Core\Registry::HKLM\SOFTWARE\Microsoft\Windows NT
PSChildName    : CurrentVersion
PSProvider     : Microsoft.PowerShell.Core\Registry

PS C:\Users\Administrator> 

一応データの情報は取得できましたが、欲しい情報を取得するためにはもう少し変更する必要がありそうです。

reg query 

最後に reg query コマンドで実行してみます。reg query コマンドでは、/v でエントリ名を指定できます。

コマンド例

reg query "レジストリキー(パス)" /v "<エントリ名>"

コマンド実行例

PS C:\Users\Administrator>reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "RegisteredOwner"

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
   RegisteredOwner   REG_SZ   Windows ユーザー

PS C:\Users\Administrator>

reg query コマンドでは、レジストリエディターで確認した形で確認することができました。

まとめ

ということで、レジストリエントリを追加とか変更するということであれば話は別ですが、レジストリエントリの情報だけをサクッと確認したいということが目的であれば reg query が一番早そうです。(思いついたときにすぐ打てるということも重要)

以下参考にした情報です。

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