ちょろっとレジストリの値を確認したいときにレジストリエディターから一つずつたどっていくのが面倒だったので、PowerShell で確認しようとしたところ、PowerShell が難しくてほしい情報が見れなかったのでメモ。
レジストリエントリを確認する[PowerShell]
PowerShell でレジストリ値を確認する方法はいくつかあるようですが、レジストリエディターを使わずにサクッとキーの情報を確認したいという事が目的なので「Get-Item」と「Get-ItemProperty」、「reg query」の3つのコマンドと実行結果を比較してみました。
レジストリエントリの確認方法
今回は以下のキーを対象に情報の取得を行ってみました。
エントリ:RegisteredOwner
レジストリエディター上で確認すると、以下のようになっています。
名前 | 種類 | データ |
RegisteredOwner | REG_SZ | Windows ユーザー |
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 が一番早そうです。(思いついたときにすぐ打てるということも重要)
以下参考にした情報です。