Read Explorer's Extended File Properties via the Shell COM Object

The forgotten Shell.Application GetDetailsOf trick lists every property Explorer shows in file Properties > Details, from the command line.

WindowsmetadatacompowershellLow risk
Create Shell.Application, get the folder Namespace, ParseName the file, then loop GetDetailsOf over column indexes 0-320.

01Command

Command
$ $sh=New-Object -ComObject Shell.Application; $folder=$sh.Namespace('C:\Users\me\Pictures'); $file=$folder.ParseName('photo.jpg'); 0..320 | ForEach-Object { $n=$folder.GetDetailsOf($null,$_); $v=$folder.GetDetailsOf($file,$_); if($v){ '{0}: {1}' -f $_,$n+' = '+$v } }

02What it does

PowerShell's Get-Item only shows filesystem metadata, but Explorer reads hundreds of extra properties (camera model, video duration, bit rate, dimensions) from the Windows Property System. The legacy Shell.Application COM object exposes them by numeric column index, so the loop prints index, column name, and value pairs. Index numbers vary slightly between Windows versions, which is why printing the names alongside values is the reliable way to discover them.

03Risk

RiskLow risk

04Undo

✓No undo needed — this command does not change persistent state.

05Sources

  • Windows Property System
    Microsoft Learn · vendor-doc · 2026-09-17
    Evidence: Describes the extended property system Explorer displays (camera model, dimensions, duration, authors), which GetDetailsOf surfaces by column index.
  • FolderItem object (Shell)
    Microsoft Learn · vendor-doc · 2026-09-17
    Evidence: Documents the FolderItem returned by Folder.ParseName and its interaction with the Shell folder metadata surface.

Last verified: 2026-09-17 · Category: Media

06Related solutions