Get-ItemPropertyの使い方:ファイルやディレクトリのプロパティを取得する
Get-ItemProperty コマンドレットを使用すると、ファイルやディレクトリ、レジストリキーなどのプロパティを取得することができます。主に、作成日時や更新日時、属性などの情報を確認する際に使用されます。ここでは PowerShell における Get-ItemProperty コマンドレットの使い方について解説します。
Get-ItemPropertyコマンドレットの書式
Get-ItemProperty コマンドレットは、ファイルやディレクトリ、レジストリキーなどのプロパティを取得するためのコマンドレットです。 Get-ItemProperty コマンドレットの書式は次の通りです。
Get-ItemProperty [-Path] <String[]> [[-Name] <String[]>] [-Filter <String>] [-Include <String[]>] [-Exclude <String[]>] [-Credential <PSCredential>] [<CommonParameters>]
Get-ItemProperty はエイリアスとして gpが定義されています。
gp -> Get-ItemProperty
Get-ItemProperty を使ってプロパティを取得するには次の書式を使用します。
Get-ItemProperty -Path 対象のパス
対象のパスには、ファイルやディレクトリのパス、またはレジストリキーを指定します。
-Path は省略可能なので、通常は次のように実行します。
Get-ItemProperty 対象のパス
それでは、実際に試してみます。例としてファイルのプロパティを取得します。次のように実行してください。
Get-ItemProperty c:\tmp\file\memo.txt
対象のファイルのオブジェクトを取得しました。画面には、ファイルの名前や更新日時、サイズなどのプロパティが表示されています。
実行結果だけを見ると、同じ対象のパスを指定した場合の Get-Item の実行結果と違いがありません。
PS C:\code\powershell> Get-Item c:\tmp\file\memo.txt Directory: C:\tmp\file Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2026/04/20 7:53 32 memo.txt PS C:\code\powershell> Get-ItemProperty c:\tmp\file\memo.txt Directory: C:\tmp\file Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2026/04/20 7:53 32 memo.txt
どちらも見た目は同じように表示されますが、役割が異なります。どちらのコマンドレットもオブジェクトを取得しますが、Get-Item はファイルやディレクトリそのものを表すオブジェクトを取得し、Get-ItemProperty はそれらのプロパティを扱いやすい形で取得します。
ただどちらの実行結果からも、プロパティ名を指定して値を参照できるので、ファイルの場合は結果が似ているため違いが分かりにくいです。ただこのあとご説明するレジストリキーでは取得できる内容が大きく異なります。
PS C:\code\powershell> (Get-Item c:\tmp\file\memo.txt).Length 32 PS C:\code\powershell> (Get-ItemProperty c:\tmp\file\memo.txt).Length 32
レジストリキーの場合
レジストリキーについても同じように Get-Item と Get-ItemProperty でそれぞれ取得してみます。
PS C:\code\powershell> Get-Item HKLM:\Software\Microsoft\PowerShell\1\Shellids\Microsoft.PowerShell\ Hive: HKEY_LOCAL_MACHINE\Software\Microsoft\PowerShell\1\Shellids Name Property ---- -------- Microsoft.PowerShell Path : C:\Windows\System32\Windows PowerShell\v1.0\powershell.exe ExecutionPolicy : RemoteSigned PS C:\code\powershell> Get-ItemProperty HKLM:\Software\Microsoft\PowerShell\1\Shellids\Microsoft.PowerShell\ Path : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe ExecutionPolicy : RemoteSigned PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Sof tware\Microsoft\PowerShell\1\Shellids\Microsoft.PowerShell \ PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Sof tware\Microsoft\PowerShell\1\Shellids PSChildName : Microsoft.PowerShell PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry
レジストリキーについても、どちらのコマンドレットもオブジェクトを取得しますが、 Get-Item はレジストリキーそのものを表すオブジェクトを取得するのに対し、 Get-ItemProperty はレジストリ値(名前と値のセット)をプロパティとして持つオブジェクトを取得します。
Get-Item の実行結果からはレジストリ値の名前を指定しても値を取得できませんが、 Get-ItemProperty の実行結果からは取得が可能です。
PS C:\code\powershell> (Get-Item HKLM:\Software\Microsoft\PowerShell\1\Shellids\Microsoft.PowerShell\).Path
PS C:\code\powershell> (Get-ItemProperty HKLM:\Software\Microsoft\PowerShell\1\Shellids\Microsoft.PowerShell\).Path
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
その為、レジストリ値を取得したい場合には Get-ItemProperty を使用する必要があります。
※ Get-Item コマンドレットについては「Get-Itemの使い方:ファイルやディレクトリのオブジェクトを取得する」を参照されてください。
プロパティ名を指定してプロパティを取得する
-Name オプションを使用することで、プロパティ名を指定してプロパティを取得することができます。
Get-ItemProperty 対象のパス -Name プロパティ名
-Name オプションは省略可能ですが、通常は省略せずに記述します。
それでは実際に試してみます。 c:\tmp\file\memo.txt ファイルの LastWriteTime プロパティを取得します。次のように実行してください。
Get-ItemProperty c:\tmp\file\memo.txt -Name LastWriteTime
次のように表示されました。
指定した名前のプロパティ(プロパティ名と値のセット)を取得しました。なお、指定したプロパティ名以外の PS で始まるプロパティも自動で取得します。
PS C:\code\powershell> Get-ItemProperty c:\tmp\file\memo.txt -Name LastWriteTime LastWriteTime : 2026/04/20 7:53:08 PSPath : Microsoft.PowerShell.Core\FileSystem::C:\tmp\file\memo.txt PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\tmp\file PSChildName : memo.txt PSDrive : C PSProvider : Microsoft.PowerShell.Core\FileSystem
この PS で始まるプロパティは、オブジェクトに関する補足情報であり、パイプで他のコマンドに渡す際にも利用されます。
レジストリ値についても取得してみます。次のように実行してください。
Get-ItemProperty HKLM:\Software\Microsoft\PowerShell\1\Shellids\Microsoft.PowerShell\ -Name ExecutionPolicy
次のように表示されました。
指定した名前のレジストリ値を取得しました。レジストリ値を取得する場合も、先ほどと同じように PS で始まるプロパティも自動で取得します。
-- --
PowerShell における Get-ItemProperty コマンドレットの使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。