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..."

Microsoft 365 und Office | Installieren, Einlösen, Aktivieren | Geschäftlich | Windows
Windows für Unternehmen | Windows Server | Benutzerfreundlichkeit | PowerShell
Windows für Unternehmen | Windows-Client für IT-Profis | Benutzerfreundlichkeit | Andere
0 Kommentare Keine Kommentare

Ihre Antwort

Antworten können von Fragestellenden als „Angenommen“ und von Moderierenden als „Empfohlen“ gekennzeichnet werden, wodurch Benutzende wissen, dass diese Antwort das Problem des Fragestellenden gelöst hat.