'net use' após 'rasdial' no arquivo em lote

1

Estou escrevendo um script em lote que faz o seguinte:

  1. rasdial - conectar VPN
  2. net use - mapeia uma unidade para um compartilhamento de pasta remota (na VPN)
  3. xcopy - copia vários arquivos da unidade mapeada para a máquina local
  4. net use - unidade unmap
  5. rasdial - desconectar VPN

No entanto, nunca é possível mapear a unidade. Diz:

System error 67 has occurred.

The network name cannot be found.

Se eu executar a mesma sequência de comandos manualmente a partir da linha de comando, tudo corre bem. Alguma idéia do que faria com que não visse a rede recém-criada?

Meu primeiro é a segurança, mas tentei tudo o que consegui pensar sem sucesso.

    
por Greg Dean 15.10.2009 / 01:47

1 resposta

1

Por curiosidade, o que acontece se você jogar um atraso entre "rasdial" e "net use" - digamos, "ping -n30 127.0.0.1" para lançar uma pausa de 29 segundos. Eu notei que o cliente RAS, pelo menos no Windows XP, brinca com a tabela de roteamento por alguns segundos depois que a conexão é ativada.

Não tenho conhecimento de nenhuma documentação que descreva o que o cliente RAS faz na tabela de roteamento. Quando me conecto a um servidor RRAS de um cliente Windows XP com a opção "Usar gateway padrão na rede remota" desmarcada, vejo o seguinte comportamento:

  • Uma rota "classful" para a rede remota é adicionada à tabela de roteamento
  • Dentro de aproximadamente 3 a 5 segundos, essa rota é removida e uma rota com a mesma máscara de sub-rede que o servidor RRAS é adicionada à tabela de roteamento em seu lugar

Quando a opção "Usar gateway padrão na rede remota" está marcada, vejo o seguinte comportamento:

  • Uma rota de gateway padrão para a rede remota é adicionada à tabela de roteamento
  • Em aproximadamente 3 a 5 segundos, uma rota com a mesma máscara de sub-rede que o servidor RRAS é adicionada à tabela de roteamento (e a rota do gateway padrão permanece)

Supostamente, se você usar o Kit de Administração do Gerenciador de Conexões , poderá criar Entradas do cliente RRAS que executam um script e / ou possuem entradas customizadas da tabela de roteamento. Eu nunca tive essa funcionalidade para trabalhar, no entanto.

Eu tiraria um instantâneo da tabela de roteamento imediatamente após a conclusão de 'RASDIAL' (route print > before.txt) e depois novamente após uma pausa (route print > after.txt), descobrir quais linhas mudam (fc before.txt after.txt) e adicione um pequeno loop ao script para imprimir a tabela de roteamento, procure a linha que significa que a condição "after" ocorreu e, se não, pause por um segundo e dê um loop.

É sujo e hackish, mas deve funcionar.

BTW: O comportamento é diferente no Windows 7. Você tem uma opção para "desativar a adição de rota classful".

A natureza ARP proxy while do servidor RRAS sempre foi um pouco decepcionante para mim. Eu prefiro VPNs onde os clientes acabam em sua própria sub-rede e o servidor VPN direciona o tráfego para eles. Ainda assim, suponho que posso entender por que a Microsoft implementou da maneira que eles fizeram. Os clientes RRAS, em seu modelo, acabam aparecendo como cleints no mesmo fio da LAN, e a "mágica" de proxy ARP que o servidor RRAS fornece torna o sysadmin livremente livre para não ter que pensar em roteamento IP.

    
por 15.10.2009 / 17:40