Weisen Sie Outlook 2010 an, sich jetzt erneut mit dem Server zu verbinden

Weisen Sie Outlook 2010 an, sich jetzt erneut mit dem Server zu verbinden

Ich verwende Outlook 2010 in einer virtuellen Maschine mit Windows 7. Die Netzwerkverbindung erfolgt über den Host. Outlook stellt eine Verbindung zu einem Exchange-Server her.

Wenn sich die IP-Adresse des Hosts ändert (z. B. beim Wechsel in ein anderes WLAN-Netzwerk), wird die Konnektivität von Outlook unterbrochen. Ich habe das nicht näher untersucht, aber es scheint, als würde es hartnäckig eine TCP-Verbindung aufrechterhalten und keine neue starten. In der Statusleiste unten wird ständig „Dieser Ordner wurde zuletzt um <Uhrzeit> aktualisiert“ angezeigt und neue E-Mails werden nicht heruntergeladen.

Das Drücken der Schaltflächen „Ordner aktualisieren“ oder „Alle Ordner senden/empfangen“ hilft nicht. Auch das Wechseln in den Offline-Modus (Schaltfläche „Offline arbeiten“) und wieder online hilft nicht.

Manchmal stellt Outlook die Verbindung schließlich wieder her. Das dauert jedoch Minuten oder Stunden.Wie kann ich Outlook anweisen, jetzt erneut eine Verbindung herzustellen?

Outlook zu beenden und neu zu starten funktioniert, ist aber störend. Dieses Problem tritt nur auf, wenn Outlook in einer VM oder vermutlich hinter einem Gateway ausgeführt wird, dessen IP-Adresse sich ändert: Wenn sich die IP-Adresse des Windows-Computers selbst ändert, stellt Outlook die Verbindung korrekt wieder her.

Antwort1

Ich konnte keine Möglichkeit finden, Outlook dazu zu bewegen, die Verbindung zum Server wiederherzustellen, ohne es neu zu starten oder die Netzwerkschnittstelle zu deaktivieren und (mühselig) wieder zu aktivieren.

Ich ziehe also das virtuelle Kabel zwischen der VM und dem Host mit dem folgenden VBoxCableReconnectSkript heraus und stecke es wieder ein. Natürlich ist das Skript spezifisch für VirtualBox, aber ich gehe davon aus, dass ähnliche Dinge mit anderen VM-Technologien möglich sind.

#! /usr/bin/env perl
use strict;
use warnings;

sub vbox_list {
    my %vms;
    my ($running) = @_;
    my $what = $running ? 'runningvms' : 'vms';
    local $ENV{LC_ALL} = 'C';
    open VBOX, "VBoxManage list -l $what |" or die 'VBoxManage: $!';
    local $/ = "\n\n\n";
    while (my $section = <VBOX>) {
        my %vm = ();
        $section =~ s/\n\n.*//s; # strip shared folders, etc.
        foreach my $line (split /\n/, $section) {
            $line =~ s/\A([^:]+):\s+// or next;
            $vm{$1} = $line;
        }
        $vms{$vm{UUID}} = {%vm};
    }
    close VBOX;
    return %vms;
}

sub vbox_list_cables {
    my ($vms) = @_;
    my @cables;
    foreach my $vm (values %$vms) {
        my %vm = %$vm;
        foreach my $key (keys %vm) {
            next unless $key =~ /\ANIC *([0-9]+)\z/;
            my $num = $1;
            if ($vm{$key} =~ /(^|, )Cable connected: on($|, )/) {
                push @cables, [$vm{UUID}, $vm{Name}, $num];
            }
        }
    }
    return @cables;
}

sub vbox_iterate_cableconnected {
    my ($cables, $onoff) = @_;
    foreach my $cable (@$cables) {
        my ($uuid, $name, $num) = @$cable;
        system 'VBoxManage', 'controlvm', $uuid, "setlinkstate$num", $onoff;
        # TODO: report errors
    }
}

my %vms = vbox_list(1);
my @cables = vbox_list_cables(\%vms);
vbox_iterate_cableconnected(\@cables, 'off');
sleep(1);
vbox_iterate_cableconnected(\@cables, 'on');

Führen Sie dies als der Benutzer aus, der die VM ausführt, wenn Sie eine Netzwerkschnittstelle auf dem Host aufrufen.

Antwort2

Klicken Sie bei gedrückter Strg-Taste mit der rechten Maustaste auf das Outlook-Symbol neben der Uhr. Dann wird ein neues Menüelement namens „Verbindungsstatus“ angezeigt, über das Sie die Verbindung viel schneller wiederherstellen können als mit jeder anderen Methode.

verwandte Informationen