Skip to main content

Great Article on using powershell to extract information about Outlook Items

https://gallery.technet.microsoft.com/scriptcenter/af63364d-8b04-473f-9a98-b5ab37e6b024

To get a list of all the recipients of a message, you could type something like

$folder.items | Select Recipients -First 1 | foreach {$_.Recipients} | Select Address, Name





# ----------------------------------------------------------------------------- 
# Script: Get-OutlookInbox.ps1 
# Author: ed wilson, msft 
# Date: 05/10/2011 08:34:36 
# Keywords: Microsoft Outlook, Office 
# comments: 
# reference to HSG-1-29-09, HSG-5-24-11 
# HSG-5-25-11 
# ----------------------------------------------------------------------------- 
Function Get-OutlookInBox 
{ 
  <# 
   .Synopsis 
    This function returns InBox items from default Outlook profile 
   .Description 
    This function returns InBox items from default Outlook profile. It 
    uses the Outlook interop assembly to use the olFolderInBox enumeration. 
    It creates a custom object consisting of Subject, ReceivedTime, Importance, 
    SenderName for each InBox item.  
    *** Important *** depending on the size of your InBox items this function 
    may take several minutes to gather your InBox items. If you anticipate  
    doing multiple analysis of the data, you should consider storing the  
    results into a variable, and using that.  
   .Example 
    Get-OutlookInbox |  
    where { $_.ReceivedTime -gt [datetime]"5/5/11" -AND $_.ReceivedTime -lt ` 
    [datetime]"5/10/11" } | sort importance  
    Displays Subject, ReceivedTime, Importance, SenderName for all InBox items that 
    are in InBox between 5/5/11 and 5/10/11 and sorts by importance of the email. 
   .Example 
    Get-OutlookInbox | Group-Object -Property SenderName | sort-Object Count  
    Displays Count, SenderName and grouping information for all InBox items. The most 
    frequently used contacts appear at bottom of list.  
   .Example 
    $InBox = Get-OutlookInbox 
    Stores Outlook InBox items into the $InBox variable for further 
    "offline" processing. 
   .Example 
    ($InBox | Measure-Object).count 
    Displays the number of messages in InBox Items 
   .Example 
    $InBox | where { $_.subject -match '2011 Scripting Games' } |  
     sort ReceivedTime -Descending | select subject, ReceivedTime -last 5  
    Uses $InBox variable (previously created) and searches subject field 
    for the string '2011 Scripting Games' it then sorts by the date InBox. 
    This sort is descending which puts the oldest messages at bottom of list. 
    The Select-Object cmdlet is then used to choose only the subject and ReceivedTime 
    properties and then only the last five messages are displayed. These last 
    five messages are the five oldest messages that meet the string.  
   .Notes 
    NAME:  Get-OutlookInbox 
    AUTHOR: ed wilson, msft 
    LASTEDIT: 05/13/2011 08:36:42 
    KEYWORDS: Microsoft Outlook, Office 
    HSG: HSG-05-26-2011 
   .Link 
     Http://www.ScriptingGuys.com/blog 
 #Requires -Version 2.0 
 #> 
 Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null 
 $olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type]  
 $outlook = new-object -comobject outlook.application 
 $namespace = $outlook.GetNameSpace("MAPI") 
 $folder = $namespace.getDefaultFolder($olFolders::olFolderInBox) 
 $folder.items |  
 Select-Object -Property Subject, ReceivedTime, Importance, SenderName 
} #end function Get-OutlookInbox

Comments

Popular posts from this blog

Fixing a https Cert in Windows

 I renewed a https cert today in Windows and had problems with the new Cert sticking in Windows It would add fine, without error, but would disappear when the IIS Server Certificates screen would refresh.  Open the Certificates in MMC (Local Machine) and inspecting the Web Hosting gave a clue, the new certificate was there, but with a key - the private key was missing.  Could be because the original certificate was created on a completely different machine and imported to this new server.  At any rate, a simple certutil command fixed it .  A tip I received from  SSL disappears from the certificate list on Windows server - SSL Certificates - Namecheap.com Key steps are:  Double-click the certificate and go to  Details  tab. In certificate details locate the  Serial Number  field, click on it and copy its value. Open Command Prompt, pressing  Win+R  and typing  cmd , then click  OK In the command prompt type: ...

Ever need to reset a password in Bonobo Git Server ?

So, you've forgotten your password to bonobo git. Step 1: Get access to the sqlite file, probably called something like  Bonobo.Git.Server.db, sitting in the "wwwroot\Bonobo.Git.Server\App_Data" directory. Step 2: Using another tool, generate an md5 hash of your new desired password (as far as I know, sqlite does not have md5 capability) Step 3: Back in sqlite, using SQL, update the relevant user record, something like update User set Password = UPPER( 'thenewMD5hash') where Username = 'admin' ; Step 4: That's it, you are done, log in with your newly found password.

Save Attachments in Outlook automatically

For years I have wanted something to do this, and finally found it. Worked perfectly for me in Outlook 2013  In the end it is so simple. Guide from http://www.pixelchef.net/content/rule-autosave-attachment-outlook and https://msdn.microsoft.com/en-us/library/ee814736.aspx Open the VBA IDE in Outlook. Alt-F11 will do this. Insert the following code to the Modules section. On the left side there is a tree, expand until you find Modules. Then, if there is not a Module item under Modules, create one by right clicking on Modules. Or right click and choose Insert -> Module. Now, paste the text below in the main VBA window. Close the VBA IDE. Create a Rule that calls the script. Tools -> Rules and Alerts -> New Rule... In the first screen of the new rule wizard, choose "Check messages when they arrive". In the second, you could specify certain criteria that the message must match. Tip: Try "with specific words in the message header" and ...