Ich denke das folgende sollte dir weiterhelfen. Es wird einfach überprüft ob der Outlook Prozess läuft und falls ja, wird die letzte ungelesene Mail ausgegeben.
$ol=New-Object -ComObject Outlook.Application
$ns=$ol.GetNameSpace('MAPI')
$inbox=$ns.GetDefaultFolder(6)
while ((Get-Process).Name -contains "outlook") {
Write-Host "Outlook is running."
$InBox.items |
Where-Object{
$_.Unread
} |
Sort-Object ReceivedTime -Descending |
Select-Object Subject,ReceivedTime,SenderName -First 1
Start-Sleep -Seconds 5
}