'Loading .msg file contents Using Powershell - Null Value error

I am trying to access the metadata in a .msg file using Powershell (for example, get the sender address, subject line etc)

I have the following, simple code

Add-Type -assembly "Microsoft.Office.Interop.Outlook"

$outlook = New-Object -comObject Outlook.Application
$msg = $outlook.Session.OpenSharedItem("C:\Test\email.msg")

but I get the error

You cannot call a method on a null-valued expression. At line:4 char:1

If I run

$outlook

I get

Application        : 
Class              : 
Session            : 
Parent             : 
Assistant          : 
Name               : 
Version            : 
COMAddIns          : 
Explorers          : 
Inspectors         : 
LanguageSettings   : 
ProductCode        : 
AnswerWizard       : 
FeatureInstall     : 
Reminders          : 
DefaultProfileName : 
IsTrusted          : 
Assistance         : 
TimeZones          : 
PickerDialog       : 

all the properties appear to be null, including .Session, which explains why I get the null value error.

What have I done wrong in creating the $outlook object?

I have tried with both Outlook running and not running and the same happens.

I have Office 365 installed and I'm using Powershell 5.1.19041.1320



Solution 1:[1]

I managed to fix this issue by doing a "Quick Repair" of O365 in the programs and features dialog

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 SEarle1986