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.
01Command
$ $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
04Undo
✓No undo needed — this command does not change persistent state.
05Sources
- Windows Property SystemEvidence: Describes the extended property system Explorer displays (camera model, dimensions, duration, authors), which GetDetailsOf surfaces by column index.
- FolderItem object (Shell)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
Search inside text files and logs with regex, returning file, line number and match.
Create or update a .zip from any files or folder contents straight from PowerShell.
A built-in PowerShell one-liner that answers 'is port 5432/3389/443 actually open through this network?' — no telnet client needed.