Skip to content

Windows Search Index Properties Explained for DFIR

System.ItemPathDisplay, System.Search.GatherTime, System.Search.AutoSummary and the other Windows Search properties that matter in an investigation.

Published on 6 min read

TL;DR. Every item in the Windows Search index is a bag of Windows shell properties keyed by a WorkId. A dozen of them carry most of the forensic value: System.ItemPathDisplay (full path), System.Size, System.FileOwner, System.DateCreated / DateModified / DateAccessed (file system times as seen at indexing), System.Search.GatherTime (when the indexer processed the item), System.Search.AutoSummary (a content extract), System.ItemType and System.Kind (what it is), and URL properties for web history. Microsoft documents what each property means, not how the database stores it. All times are FILETIMEs in UTC.

Where the properties come from

The Windows property system defines canonical names such as System.ItemPathDisplay, each with a format ID and property ID (a PROPERTYKEY). The indexer runs property handlers over each file and stores the values. In Windows.edb each property is a column named like 4447-System_ItemPathDisplay. In Windows.db it is a row whose ColumnId maps to the name through SystemIndex_1_PropertyStore_Metadata. The format comparison shows both layouts.

The numeric prefix is local to the database. Go by the name. Microsoft's reference pages give the meaning and type of every name, for example System.ItemPathDisplay.

The properties that matter

Identity and location

PropertyMeaning (Microsoft)Forensic notes
System.ItemPathDisplayUser-friendly display path of the itemThe path you quote. Includes the extension. Localised if a localised name exists. UNC paths for shares.
System.ItemUrlURL form, with scheme (file:, iehistory:, mapi:…)Tells you what kind of item it is: file, web history, mail.
System.ItemFolderPathDisplayFolder part of the pathHandy for grouping staging folders.
System.FileName / System.ItemNameDisplayFile name / display nameDisplay name may hide the extension.
System.ComputerNameName of the computer where the item is locatedUseful when indexes from several hosts are mixed in one case.

Microsoft's own examples for System.ItemPathDisplay include a local path, a UNC path and a mailbox path, which tells you the index covers more than local files.

Type

PropertyMeaningForensic notes
System.ItemTypeCanonical type, usually the extension (.exe, .zip) or DirectorySpecial values exist, such as ActivityHistoryItem for activity records.
System.ItemTypeTextHuman-readable type ("Application", "Text Document")Localised. Do not filter on it.
System.KindCategory mapped from the extension: document, program, folder, link, webhistory…Microsoft maps extensions to kinds in the KindMap registry key. Multi-valued.
System.FileAttributesWin32 file attributesHidden / system attributes on user files deserve a look.

Ownership and size

PropertyMeaningForensic notes
System.FileOwnerThe owner of the file, as known by the file systemDOMAIN\user or HOST\user. The strongest attribution field in the index, but ownership is not authorship: an admin copying a file can become its owner.
System.SizeSize in bytesSize at indexing time.

Time

PropertyMeaningForensic notes
System.DateCreatedCreation time of the itemCopied from the file system at indexing time.
System.DateModifiedLast modificationSame.
System.DateAccessedLast accessSame, and last-access updates on NTFS are often disabled or coarse.
System.Search.GatherTimeWhen the gatherer last pushed the document's propertiesThe indexer's own clock. Not a file system timestamp, so timestomping the file does not change it.

All four are FILETIMEs: 100-nanosecond intervals since 1 January 1601, UTC. In Windows.db the parser reads them as 8-byte little-endian values, following public research, and keeps the raw bytes next to the decoded date.

Content

PropertyMeaningForensic notes
System.Search.AutoSummaryAn automated summary of the full text of the documentIn practice the beginning of the text. Stroz Friedberg report up to 1,024 bytes on Windows 11.
System.Title, System.Author, System.Subject…Document metadata from property handlersOffice documents, PDFs and emails carry extra metadata worth reading in the raw property list.

Web and activity

PropertyMeaningForensic notes
System.Link.TargetUrlTarget URL of a link / history itemOn Windows 11, Stroz Friedberg found visited URLs here.
System.ItemUrl with iehistory://{SID}/…Web history itemThe SID ties the entry to a user.
ActivityHistory properties (StartTime, EndTime, AppId)Activity history recordsPresent when System.ItemType is ActivityHistoryItem, per the same research.

Reading the timestamps together

The gather time is the one field an attacker rarely thinks about, and it makes the others more useful.

PatternLikely reading
Gather time a few seconds or minutes after DateModifiedThe indexer picked up a fresh change. Normal for active files.
Gather time long after DateModifiedThe file was indexed later: new indexed location, index rebuild, re-index, or a drive reconnected.
DateCreated later than DateModifiedTypical of a file copied or extracted with its original modification time preserved. Look for the source.
DateModified far in the past on an executable dropped in a user-writable folder, gather time recentPossible timestomping or an archive extraction. Check the USN journal and MFT.
Gather time after the last known logon of the ownerSomeone or something else wrote to the location, or the indexer caught up late.

The Windows Search Index Parser flags "recently indexed" items: indexed after their last change and within 24 hours of the newest gather time in the same database. On a machine seized shortly after an incident, that highlights what changed in the last day of activity.

Pitfalls

  • Values are snapshots. Everything except gather time describes the file at the moment it was indexed. A file modified after that and never re-indexed shows stale values.
  • Localisation. Display names and type texts change with the system language. Filter on System.ItemType, System.Kind or extensions instead.
  • Multi-valued properties. System.Kind and some others hold several values ("program; executable"). A parser that keeps only the first value may lose information.
  • Missing is not zero. A property absent from an item means no handler set it. It does not mean "empty" or "false".
  • Undocumented storage. Microsoft documents the properties, not the database. How a value is encoded in Windows.edb or Windows.db comes from public research. When in doubt, look at the raw bytes; the parser shows every raw property for that reason.

Related articles