PowerShellのGet-ItemコマンドとGet-ItemPropertyコマンドの違い

目次

スポンサードリンク

Get-Itemコマンド

Get-Itemコマンドは、指定したパスにあるファイルやフォルダのオブジェクトを返すコマンドです。このコマンドを実行すると、「data.txt」ファイルのオブジェクトが返されます。ファイルオブジェクトからプロパティ情報を取得したり、ファイル自体のコピーなどオブジェクトを操作することができます。

PS C:\work> $File = Get-Item .\data.txt
PS C:\work> $File


    ディレクトリ: C:\work


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2024/05/22     12:45             25 data.txt


PS C:\work>
PS C:\work> $File.CreationTime

2024年5月22日 12:45:14


PS C:\work> $File.CopyTo("C:\work\data2.txt")
PS C:\work> dir


    ディレクトリ: C:\work


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2024/05/22     12:45             25 data.txt
-a----        2024/05/22     12:45             25 data2.txt

Get-ItemPropertyコマンド

Get-ItemPropertyコマンドはファイルの属性、バージョン情報、セキュリティ情報など、ファイルのプロパティ情報を取得できます。Get-ItemPropertyコマンドですが、変数に代入してファイルオブジェクトとして操作することもできるので、実質Get-Itemコマンドと同じように使うこともできます。

Get-ItemPropertyコマンドの特徴は、オブジェクトのプロパティを詳細に表示することに特化していることです。ファイルのメタデータだけでなく、レジストリの値やWMIオブジェクトのプロパティなども取得できます。

下記コマンドでは、CurrentVersionレジストリ キー内のレジストリ エントリの値の名前とデータを取得します。

PS C:\work> Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion


ProgramFilesDir          : C:\Program Files
CommonFilesDir           : C:\Program Files\Common Files
ProgramFilesDir (x86)    : C:\Program Files (x86)
CommonFilesDir (x86)     : C:\Program Files (x86)\Common Files
CommonW6432Dir           : C:\Program Files\Common Files
DevicePath               : C:\Windows\inf
MediaPathUnexpanded      : C:\Windows\Media
ProgramFilesPath         : C:\Program Files
ProgramW6432Dir          : C:\Program Files
SM_ConfigureProgramsName : Set Program Access and Defaults
SM_GamesName             : Games
PSPath                   : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
PSParentPath             : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
PSChildName              : CurrentVersion
PSDrive                  : HKLM
PSProvider               : Microsoft.PowerShell.Core\Registry

下記コマンドでは、CurrentVersion レジストリ サブキーのProgramFilesDir レジストリ エントリの値の名前とデータを取得しています。

PS C:\work> Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name "ProgramFilesDir"


ProgramFilesDir : C:\Program Files
PSPath          : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
PSParentPath    : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
PSChildName     : CurrentVersion
PSDrive         : HKLM
PSProvider      : Microsoft.PowerShell.Core\Registry



コマンドプロンプトのポケットリファレンス:Windows11対応版

PowerShellの基礎を一通り学べるおすすめ書籍