【PowerShell入門】Get-ItemPropertyでレジストリの値を取得する方法を徹底解説!

Windowsの設定や構成情報を確認・変更する際に欠かせないのが「レジストリ」です。PowerShellでは、Get-ItemPropertyコマンドレットを使うことで、特定のレジストリキーの値を簡単に取得できます。本記事では、初心者にもわかりやすく、Get-ItemPropertyコマンドの基本的な使い方から実践的な応用例までを紹介します。レジストリの確認作業をスムーズに行いたい方や、スクリプト作成で効率化したい方はぜひ参考にしてください。


Get-ItemPropertyとは?

Get-ItemPropertyは、PowerShellにおいてファイルやレジストリなどの「項目(Item)」に付随するプロパティ情報を取得するためのコマンドレットです。

このコマンドは、以下のような用途でよく使われます。

  • フォルダやファイルの属性を確認する
  • レジストリキーの値(データ)を取得する
  • システム設定の状態を把握する

特にレジストリにおいては、キーの中に格納されている設定情報(値)を一覧で取得できる便利な機能を持っています。


基本的な使い方(レジストリ値の取得)

PowerShellでは、レジストリは「ドライブ」のように扱われます。例えば、HKEY_LOCAL_MACHINEは「HKLM:」としてアクセス可能です。

Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion"

このコマンドを実行すると、指定したレジストリキー内にあるすべてのプロパティ(値)が表示されます。

たとえば、この例では以下のような情報が表示されます。

ProgramFilesDir     : C:\Program Files
CommonFilesDir : C:\Program Files\Common Files
ProgramFilesPath : C:\Program Files
...

このように、Get-ItemPropertyを使うと特定のレジストリキーに含まれる情報を一括で取得することができます。


特定の値だけを取り出す方法

多くの場合、必要なのは1つの値だけ、ということもあるでしょう。その場合は、以下のように変数に格納し、ドット記法でアクセスします。

$reg = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion"
$reg.ProgramFilesDir

この例では、ProgramFilesDirの値(通常は「C:\Program Files」)のみを取得できます。


特定のサブキーを含むパスにアクセスする

レジストリの中にはさらにサブキーが存在します。たとえば、あるソフトウェアの設定値を取得したい場合、次のようにパスを指定できます。

Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer"

このコマンドでは、現在ログインしているユーザーのExplorer関連の設定値を取得できます。


レジストリが存在するかどうかを確認する

取得しようとしたキーが存在しないと、エラーが発生します。事前にキーの存在を確認したい場合は、Test-Pathを使いましょう。

if (Test-Path "HKLM:\SOFTWARE\MyApp") {
$val = Get-ItemProperty -Path "HKLM:\SOFTWARE\MyApp"
$val.Version
} else {
Write-Host "キーが存在しません。"
}

このようにして、エラーハンドリングも可能です。


レジストリの値の一覧を整形して表示する

取得した値を見やすく整形したい場合は、Select-ObjectFormat-Listを活用すると便利です。

Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion" |
Select-Object ProgramFilesDir, CommonFilesDir |
Format-List

これにより、必要な項目のみをピックアップして見やすく出力できます。


スクリプトとしての応用例

管理者が複数のPCにインストールされたソフトウェアのバージョン情報をチェックしたいときなど、Get-ItemPropertyは非常に役立ちます。

以下は「Google Chrome」のバージョンを取得するスクリプトの例です(インストール先によってキーは変わる場合があります)。

$chromeRegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome"
if (Test-Path $chromeRegPath) {
$chromeInfo = Get-ItemProperty -Path $chromeRegPath
Write-Host "Google Chrome バージョン: $($chromeInfo.DisplayVersion)"
} else {
Write-Host "Google Chrome は見つかりませんでした。"
}

このように、レジストリからソフトウェア情報を取得し、レポートやログ出力に利用することが可能です。


まとめ

Get-ItemPropertyは、PowerShellでレジストリ値を取得する際に非常に強力なコマンドレットです。システム情報の確認、インベントリ収集、設定チェックなど、さまざまな場面で活用できます。

本記事で紹介した基本構文や応用例をもとに、自身の環境に合わせてスクリプトをカスタマイズすることで、日々の作業がより効率的になるでしょう。

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