Indique a Outlook 2010 que se vuelva a conectar al servidor ahora

Indique a Outlook 2010 que se vuelva a conectar al servidor ahora

Ejecuto Outlook 2010 en una máquina virtual que ejecuta Windows 7. La conexión en red se proporciona a través del host. Outlook se conecta a un servidor Exchange.

Cuando la dirección IP del host cambia (por ejemplo, al mudarse a una red wifi diferente), se interrumpe la conectividad de Outlook. No he investigado en profundidad, pero parece retener obstinadamente una conexión TCP y no iniciar una nueva. La barra de estado en la parte inferior sigue mostrando "Esta carpeta se actualizó por última vez a las <hora>" y no se descargan nuevos correos electrónicos.

Presionar los botones “Actualizar carpeta” o “Enviar/recibir todas las carpetas” no ayuda. Cambiar al modo sin conexión (botón "Trabajar sin conexión") y volver a estar en línea no ayuda.

A veces, finalmente, Outlook se vuelve a conectar. Pero eso lleva minutos u horas.¿Cómo puedo indicarle a Outlook que se vuelva a conectar ahora?

Cerrar Outlook y reiniciarlo funciona, pero es perjudicial. Este problema es específico de la ejecución de Outlook en una máquina virtual, o presumiblemente detrás de una puerta de enlace cuya dirección IP cambia: si la dirección IP de la máquina con Windows cambia, Outlook se vuelve a conectar correctamente.

Respuesta1

No pude encontrar una manera de convencer a Outlook para que se volviera a conectar al servidor, salvo reiniciarlo o deshabilitar y (dolorosamente) volver a habilitar la interfaz de red.

Entonces, lo que hago es desconectar y volver a conectar el cable virtual entre la VM y el host con el siguiente VBoxCableReconnectscript. Por supuesto, el script es específico de VirtualBox, pero espero que sean posibles cosas similares con otras tecnologías de VM.

#! /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');

Ejecute esto como el usuario que ejecuta la VM cuando abra una interfaz de red en el host.

Respuesta2

Controle y haga clic derecho en el ícono de Outlook junto al reloj y tendrá un nuevo elemento de menú llamado "Estado de la conexión" donde podrá volver a conectarse mucho más rápido que cualquier otro método.

información relacionada