Outlook Postfächer Automatisiert mit PS Skript öffnen

Stiefel1234 0 Zuverlässigkeitspunkte
2024-08-24T09:36:44.2233333+00:00

Hallo Zusammen

Ich habe bereits ein Powershell Skript, dass mir gewisse Postfachinformationen (Name, Pfad, ExchangeServer, EmailAdress, Type) in eine CSV Datei speichert.

Das funktioniert auch soweit. Nun ist meine Frage, wie kann ich aufgrund der gespeicherten Informationen per Powershell skript diese Outlook Exchange Postfächer öffnen? Ich habe bereits ein Skript erstellt, dies funktioniert aber nicht:

#requires -Version 4.0

$heute = Get-Date -Format "dd.MM.yy"

$backupFolderName = "Backup Profil vom $heute"

$backupPath = "C:\Users$env:USERNAME\Onedrive$backupFolderName"

$outlookBackupPath = "$backupPath\OutlookMailboxes"

$outlookCSVPath = "$outlookBackupPath\OutlookMailboxes.csv"

# Restore der Outlook-Postfächer

function Restore-OutlookMailboxes {

    # Überprüfen, ob die CSV-Datei existiert

    if (-not (Test-Path -Path $outlookCSVPath)) {

        Write-Host "Fehler: Die CSV-Datei existiert nicht: $outlookCSVPath"

        return

    }

    # CSV-Datei einlesen

    $mailboxes = Import-Csv -Path $outlookCSVPath

    # Initialisieren von Outlook

    try {

        $Outlook = New-Object -ComObject Outlook.Application -ErrorAction Stop

        $Namespace = $Outlook.GetNamespace("MAPI")

        Write-Host "Outlook erfolgreich initialisiert."

    }

    catch {

        Write-Host "Fehler: Outlook konnte nicht initialisiert werden. Stellen Sie sicher, dass Outlook installiert und konfiguriert ist."

        return

    }

    foreach ($mailbox in $mailboxes) {

        try {

            # Versuchen, das Postfach basierend auf dem Namen zu öffnen

            $recipient = $Namespace.CreateRecipient($mailbox.Name)

            $recipient.Resolve()

            if ($recipient.Resolved) {

                Write-Host "Empfänger '$($mailbox.Name)' erfolgreich aufgelöst."

                $folder = $Namespace.GetSharedDefaultFolder($recipient, [Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderInbox)

                if ($folder -ne $null) {

                    Write-Host "Postfach '$($mailbox.Name)' erfolgreich geöffnet."

                    # Optional: Hier könnte man bestimmte Aktionen mit dem geöffneten Postfach ausführen

                } else {

                    Write-Host "Fehler: Postfach '$($mailbox.Name)' konnte nicht gefunden werden."

                }

            } else {

                Write-Host "Fehler: Empfänger '$($mailbox.Name)' konnte nicht aufgelöst werden."

            }

        }

        catch {

            Write-Host "Fehler beim Öffnen des Postfachs '$($mailbox.Name)': $_"

            Write-Host "Fehlerdetails: $($.Exception.GetType().FullName) - $($.Exception.Message)"

        }

    }

}

# Aufruf der Restore-OutlookMailboxes Funktion

Restore-OutlookMailboxes

Read-Host -Prompt "Drücken Sie eine beliebige Taste, um das Skript zu beenden..."

Windows
Windows
Eine Familie von Microsoft-Betriebssystemen, die auf PCs, Tablets, Laptops, Smartphones, Internet-of-Things-Geräten, eigenständigen Mixed Reality-Headsets, großen Bildschirmen für die Zusammenarbeit und anderen Geräten ausgeführt werden
69 Fragen
Office
Office
Eine Sammlung von Microsoft-Produktivitätssoftware, die gängige Geschäftsaufgaben unterstützt, darunter Textverarbeitung, E-Mail, Präsentationen sowie Datenverwaltung und -analyse.
73 Fragen
PowerShell
PowerShell
Eine Microsoft-Frameworkfamilie für die Aufgabenautomatisierung und Konfigurationsverwaltung, die aus einer Befehlszeilenshell und der zugehörigen Skriptsprache besteht
8 Fragen
0 Kommentare Keine Kommentare
{count} Stimmen

Ihre Antwort

Fragesteller*innen können Antworten als akzeptierte Antworten markiert werden, wodurch Benutzer*innen wissen, dass diese Antwort das Problem gelöst hat.