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

Changing Password - in AD, when you're changing one of your other accounts, not the logged in account

  Use Powershell  Step 1 - Put your existing password in a Secure String  $oldPassword = Read-Host "Your old Password" -AsSecureString  Step 2 - Start the password change set-AdAccountPassword -Identity paul-admin -OldPassword  $oldPassword Step 3 - Enter your new password You'll be prompted for your new password... Please enter the desired password for 'CN=xxxx,OU=Admin Users,OU=Users,OU=Privileged,DC=CAIS,DC=com,DC=edu,DC=au' Password: ************************** Repeat Password: **************************

Tip to create an underline on a heading shorter than the heading itself

You can use a pseudo element with :before (or :after ): h1 { font - weight : 300 ; display : inline - block ; padding - bottom : 5px ; position : relative ; } h1 : before { content : "" ; position : absolute ; width : 50 %; height : 1px ; bottom : 0 ; left : 25 %; border - bottom : 1px solid red ; } http://jsfiddle.net/9e27b/ This is another solution that centers the heading, the problem here is that the underline gets shorter as the column gets shorter. h2 {   display: inline-block;   padding-bottom: 15px;   position: relative;   width: 100% ;   text-align: center; } h2:before{     content: "";     position: absolute;     width: 8%;     height: 1px;     bottom: 0;     left: 46%;     border-bottom: 1px solid red; }

The web.config no extension mime problem Lets Encrypt on IIS/Windows

  Tip when using LetsEncrypt in Windows - Feature Requests - Let's Encrypt Community Support In a paragraph, just use the web.config file to set the mime type, eg...  After trying to figure out why my Lets Encrypt failed to generate in Windows, and discovering that it's the no extension mime type problem, I wondered whether certbot could fill in the missing gap. All that is needed is the following web.config file to be placed in the same directory as the challenge <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <staticContent> <mimeMap fileExtension="." mimeType="text/xml" /> </staticContent> </system.webServer> </configuration> Because there's no mime type for files without an extension on IIS, IIS sends back a 404 when verification happens. The web.config file above sets the mime type. After I created the .well-known