Outlook Postfächer Automatisiert mit PS Skript öffnen
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..."