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-ItemPropertyコマンドレットの使い方(1)

実行結果だけを見ると、同じ対象のパスを指定した場合の 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-ItemGet-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

次のように表示されました。

Get-ItemPropertyコマンドレットの使い方(2)

指定した名前のプロパティ(プロパティ名と値のセット)を取得しました。なお、指定したプロパティ名以外の 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

次のように表示されました。

Get-ItemPropertyコマンドレットの使い方(3)

指定した名前のレジストリ値を取得しました。レジストリ値を取得する場合も、先ほどと同じように PS で始まるプロパティも自動で取得します。

-- --

PowerShell における Get-ItemProperty コマンドレットの使い方について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。