はじめに
WindowsのPowerShellを使ってファイルのプロパティ情報を取得する際、Shell.ApplicationオブジェクトのGetDetailsOfメソッドを利用すると便利です。特に写真や動画のリネームを行う際、どの番号(インデックス)にどの日付やプロパティが格納されているかを確認するのに役立ちます。
この記事では、指定したフォルダ内にあるファイルのGetDetailsOfの番号と対応する値の一覧をコンソールに出力するスクリプトと使い方を解説します。
前提条件
- 実行環境:Windows PowerShell 5.1 または PowerShell 7以降
- 対象:COMオブジェクト(
Shell.Application)を利用するためWindows環境が必須です。
GetDetailsOfの番号を取得するスクリプト
以下のスクリプトは、指定したファイルのパスを元に、インデックス番号0から310までのプロパティ名と値のペアを一覧表示します。
$path = "Z:\photo\スマホ\sample.jpg"
$shell = New-Object -COMObject Shell.Application
$folder = Split-Path $path
$file = Split-Path $path -Leaf
$shellfolder = $shell.Namespace($folder)
$shellfile = $shellfolder.ParseName($file)
0..310 | ForEach-Object {
$propName = $shellfolder.GetDetailsOf($null, $_)
$propValue = $shellfolder.GetDetailsOf($shellfile, $_)
if ($propName) {
"{0}: {1} = {2}" -f $_, $propName, $propValue
}
}
実行手順と使い方
- 上記のスクリプト内の
$pathの値を、実際に確認したいファイル(画像や動画など)のフルパスに変更します。 - PowerShellを起動し、スクリプトを実行します。
- 出力結果から、例えば「撮影日時」や「更新日時」が何番に割り当てられているかを確認します(環境やOSの言語設定によってインデックス番号が異なる場合があります)。
実務上の注意点
約10年にわたる写真や動画の整理では、デバイスやメーカーによってExif情報の持ち方や保存場所が異なります。統一的な保存箇所に日付がない場合や、日付のメタデータが欠損している場合があるため、必要に応じて「更新日時」や「メディアの撮影日時」などを複合的に確認しながらリネーム処理を組み立てることをおすすめします。
この記事の更新履歴
この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。
2026年9月12日
- 変更引用タグ内に配置されていたPowerShellスクリプトを、適切なコードブロック形式に変更しました。
- 追加スクリプトの前提条件、実行手順、および出力結果の見方に関する解説を追加しました。

