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-Object
やFormat-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でレジストリ値を取得する際に非常に強力なコマンドレットです。システム情報の確認、インベントリ収集、設定チェックなど、さまざまな場面で活用できます。
本記事で紹介した基本構文や応用例をもとに、自身の環境に合わせてスクリプトをカスタマイズすることで、日々の作業がより効率的になるでしょう。