Compatibility: Outlook for Microsoft 365, Outlook 2021, Outlook 2019, Outlook 2016, Outlook 2013
When managing a large number of Outlook items stored in .pst and .ost files, filtering and exporting based on unique identifiers is crucial. This topic describes using the EntryID (PR_ENTRYID) and ID (PR_RECORD_KEY) properties of an item to filter and export items to different file formats.
This property corresponds to the MAPI property PidTagEntryId. The EntryID is used by message store and address book providers as a unique identifier for their objects. Solutions should not depend on the EntryID property to be unique unless items will not be moved. The EntryID changes when:
This property can contain either a long-term or a short-term identifier.
This property corresponds to the MAPI property PidTagRecordKey. This property is a binary value that uniquely identifies a row in a table view. The ID property does not change when an Outlook data file is renamed or moved. Each new or modified Outlook item is assigned an ID number that is greater than the previous one.
To filter Outlook items by EntryIDs, you can enter the EntryID of the item in the search box and press Enter. The search string is in hexadecimal format. You can use Boolean search operators and wildcards (*, ?) to search for EntryIDs based on patterns.
To filter Outlook items by IDs, enter the ID of the item in the search box and press Enter. The search is performed using a hexadecimal number. To find recent items, you can use the less than (<) or greater than (>) operators.
To export the search results, you can select all items (Ctrl+A), go to File > Export, choose the desired file format, and select "Selected items only".
PstScan Pro can export items by EntryIDs and IDs from .pst and .ost files in batch scripts. This can be done using PowerShell, Task Scheduler, and other automation tools. To accomplish the export, you need to utilize the command line options provided by the software.
cd "C:\Program Files (x86)\PSTWalker Software\PstScanPro"
$PSTFiles = @("c:\outlook.pst", "c:\outlook.ost")
foreach ($PST in $PSTFiles){
.\pstscanpro.exe convert eml -f "$PST" -n entryId --% -q "entryid:BF4FEA0B6AD6C14ABBEE82F4858DE8B724A95200" -p "D:\PST-Exports" --headers --srcfolders
}
This example searches outlook.pst and outlook.ost mailboxes for items in which the EntryID equals BF4FEA0B6AD6C14ABBEE82F4858DE8B724A95200. The search results are exported as .eml files to the directory D:\PST-Exports\. The .eml files are named using the EntryIDs.
When running native commands from PowerShell, the arguments are first parsed by PowerShell. Beginning in PowerShell 3.0, you can use the stop-parsing (--%) token to stop PowerShell from interpreting input as PowerShell commands or expressions.
cd C:\Program Files (x86)\PSTWalker Software\PstScanPro
pstscanpro.exe convert pst -f c:\users\*.pst -p "D:\PST-Queries" -q "id:>=52A924" --srcfolders --fullscan --harddel
In this example, both messages and hard deleted messages with item IDs greater than or equal to 52A924 are exported from all .pst files located in the c:\users folder. The search results are then exported as .pst files to the D:\PST-Queries directory.
The following table shows you some examples of searches you might find useful. In addition to these examples, you can use AND, OR, NOT, ALL, ATLEASTONE, NEITHER, NOTALL, ?, *, <, >, =, and other operators to refine your search. Operators should be typed in uppercase letters.
Type this | To find this |
---|---|
subject:"Project meeting" | Items whose subject contains the phrase Project meeting. |
from:="bobby moore" | Items whose sender name equals bobby moore. Note the use of the "equals" comparison operator (=). |
from:(=bobbymoore@contoso.com OR "bobby moore") | Items in which the e-mail address equals bobbymoore@contoso.com OR sender name contains bobby moore. Note the use of parentheses to group the display name and email address. |
from:(=bobbymoore@contoso.com OR "CN=BOBBYMOORE") | Items in which the e-mail address equals bobbymoore@contoso.com OR Exchange x.500 address contains CN=BOBBYMOORE. The Active Directory/Exchange x.500 email address is an address used internally on Exchange servers: /O=ORGANIZATION.NAME/OU=EXCHANGE ADMINISTRATIVE GROUP/CN=BOBBYMOORE |
to:mike OR cc:mike OR bcc:mike | Items in which the display name mike is on the To or Cc or Bcc line . |
received:>=2021-03-23 AND received:<=2021-04-23 | Search for items that arrived between March 23, 2021 and April 23, 2021. |
sent:=4/1/21 | Search for items sent on April 1, 2021. |
body:agenda | Items that contains agenda within its contents. |
messageclass: IPM.Contact | Display only contact items. IPM.Note - Email messages IPM.Note.SMIME - both signed/encrypted messages IPM.Task - Tasks See more Item Types and Message Classes |
messagesize:<=500 KB | Items whose size is less or equal than 500 kilobytes. Note: B, KB, MB, GB, TB units are allowed. |
read:no | Items that have not been read. You can also use read:false to get the same results. |
hasattachment:yes | Items that have attachments. You can also use hasattachment:true to get the same results. |
entryid: 00BF4FEA0B6AD6C14A858DE8B724A95200 | Find an item by PR_ENTRYID (PidTagEntryId). A hexadecimal search string is used. |
id: >=52A924 | Find items by PR_INSTANCE_KEY (PidTagInstanceKey) or PR_RECORD_KEY (PidTagRecordKey). A search is performed using a hexadecimal number. |
attachments:ATLEASTONE("pdf", "txt", "zip") | Items that have attachments with extension pdf or txt or zip Note the use of ATLEASTONE function. |
ALL(messagesize:<=100kb, hasattachment:yes, ATLEASTONE(attachments: "txt", attachments: "pdf")) |
Items less than 100KB in size with attachments with the extension txt or pdf. |
Open and view multiple .pst and .ost files without Outlook. Recover deleted items and folders, search all Outlook items, and extract emails and attachments in bulk.
This guide explains boolean search operators, functions and wildcards (AND, OR, NOT, ALL, ATLEASTONE, NEITHER, NOTALL, ?, *)