Instrua o Outlook 2010 a reconectar-se ao servidor agora

0

Eu executo o Outlook 2010 em uma máquina virtual que executa o Windows 7. A rede é fornecida por meio do host. O Outlook se conecta a um servidor Exchange.

Quando o endereço IP do host muda (por exemplo, mudar para uma rede wifi diferente), isso rompe a conectividade do Outlook. Eu não investiguei em profundidade, mas parece teimosamente manter uma conexão TCP e não iniciar uma nova. A barra de status na parte inferior continua exibindo "Esta pasta foi atualizada pela última vez em < time >" e os novos e-mails não são baixados.

Pressionar os botões “Atualizar pasta” ou “Enviar / receber todas as pastas” não ajuda. Mudar para o modo offline (botão "Trabalhar off-line") e voltar online não ajuda.

Às vezes, eventualmente, os Outlooks se reconectam. Mas isso leva minutos ou horas. Como posso instruir o Outlook a se reconectar agora?

Matar o Outlook e reiniciá-lo funciona, mas é perturbador. Esse problema é específico para executar o Outlook em uma VM ou presumivelmente por trás de um gateway cujo endereço IP é alterado: se o endereço IP da própria máquina Windows for alterado, o Outlook será reconectado corretamente.

    
por Gilles 03.09.2014 / 10:53

2 respostas

1

Não consegui encontrar uma maneira de convencer o Outlook a se reconectar ao servidor, a menos que ele seja reiniciado ou desabilitado e reative (dolorosamente) a interface de rede.

Então, o que eu faço é desconectar e reconectar o cabo virtual entre a VM e o host com o seguinte script VBoxCableReconnect . É claro que o script é específico do VirtualBox, mas espero que coisas semelhantes sejam possíveis com outras tecnologias 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');

Execute isso como o usuário que está executando a VM ao exibir uma interface de rede no host.

    
por 27.04.2015 / 00:29
0

Controle e clique com o botão direito do mouse no ícone do outlook pelo relógio e você terá um novo item de menu chamado 'Status da conexão', onde poderá se reconectar muito mais rápido do que qualquer outro método.

    
por 03.09.2014 / 11:18