지금 Outlook 2010에 서버에 다시 연결하도록 지시

지금 Outlook 2010에 서버에 다시 연결하도록 지시

Windows 7을 실행하는 가상 머신에서 Outlook 2010을 실행합니다. 네트워킹은 호스트를 통해 제공됩니다. Outlook이 Exchange 서버에 연결됩니다.

호스트의 IP 주소가 변경되면(예: 다른 Wi-Fi 네트워크로 이동) Outlook의 연결이 끊어집니다. 자세히 조사하지는 않았지만 TCP 연결을 고집스럽게 유지하고 새 연결을 시작하지 않는 것 같습니다. 하단의 상태 표시줄에 "이 폴더는 <시간>에 마지막으로 업데이트되었습니다"라고 계속 표시되고 새 이메일이 다운로드되지 않습니다.

"폴더 업데이트" 또는 "모든 폴더 보내기/받기" 버튼을 눌러도 도움이 되지 않습니다. 오프라인 모드(“오프라인 작업” 버튼)로 전환했다가 다시 온라인으로 전환해도 도움이 되지 않습니다.

때로는 결국 Outlook이 다시 연결되기도 합니다. 하지만 몇 분 또는 몇 시간이 걸립니다.Outlook에 지금 다시 연결하도록 지시하려면 어떻게 해야 하나요?

Outlook을 종료하고 다시 시작하면 작동하지만 파괴적입니다. 이 문제는 VM에서 또는 IP 주소가 변경된 게이트웨이 뒤에서 Outlook을 실행하는 경우에만 발생합니다. Windows 시스템 자체의 IP 주소가 변경되면 Outlook이 올바르게 다시 연결됩니다.

답변1

Outlook을 다시 시작하거나 네트워크 인터페이스를 비활성화했다가 (고통스럽게) 다시 활성화하지 않고 Outlook이 서버에 다시 연결하도록 설득하는 방법을 찾을 수 없었습니다.

그래서 제가 하는 일은 다음 스크립트를 사용하여 VM과 호스트 사이의 가상 케이블을 뽑았다가 다시 연결하는 것입니다 VBoxCableReconnect. 물론 스크립트는 VirtualBox에만 적용되지만 다른 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');

호스트에서 네트워크 인터페이스를 시작할 때 VM을 실행하는 사용자로 이를 실행합니다.

답변2

시계 옆에 있는 Outlook 아이콘을 제어하고 마우스 오른쪽 버튼으로 클릭하면 '연결 상태'라는 새로운 메뉴 항목이 표시되어 다른 방법보다 훨씬 빠르게 다시 연결할 수 있습니다.

관련 정보