Executando .bat pela rede

2

Eu tenho um arquivo .bat no meu pc do servidor, que contém vários caminhos de arquivo, etc, que estão no PC do servidor. Eu tenho vpn configurado para que eu possa acessar este pc do meu pc principal, mas quando eu inicio o .bat ele procura o caminho do arquivo no meu computador e não no servidor. Eu quero ser capaz de lançar este. Bat no meu computador e lançar o programa eo caminho de arquivo no pc do servidor não meu pc. Alguém sabe como posso fazer isso?

p. o arquivo .bat inicia um servidor de jogo e por que ele precisa estar nesse computador e não meu

    
por Baibro 18.10.2015 / 07:40

3 respostas

1

UPDATE

Pode fazer mais sentido usar apenas PSExec para manter isso simples para sua necessidade específica. A sintaxe é bastante intuitiva e isso normalmente funciona, minha sintaxe de amostra deve ser tudo o que você precisa usar para que ela funcione uma vez conectada à VPN.

Não tenho certeza se você executar isso a partir do PC conectado à VPN, pois o nome de usuário precisará ser domain\username , mas lembre-se disso ao testar.

EXEMPLO DE SINTAXE

(Executar a partir do PC conectado à VPN, apontar o caminho do arquivo BAT como é do ponto de vista do Servidor de Jogos)

psexec -u user - p password \remotepc "c:\mybatchfile.bat"

Outras ideias

Exemplo: Se o seu aplicativo for executado na memória, seja ou não um serviço. A seguir, verificamos se ele está sendo executado na memória. Se não estiver, você poderá instruí-lo para executar o processo. Eu não tenho certeza se ele é desligado e quando isso ocorre você não pode encontrá-lo em execução com o TASKLIST, mas isso pode ser algo para checar. Você poderia então agendar algo como o abaixo para executar duas vezes por dia, etc. para automatizar o processo.

@ECHO OFF
:::: The remote machine the TASKLIST command is run against must accept incoming WMI traffic from the machine sending the request
::::  Enabling the firewall rule "Windows Management Instrumentation (WMI)" should do the trick
TASKLIST /S ServerName | FINDSTR /I applicationname.exe
IF ERRORLEVEL 1 (GOTO StartSomething) ELSE (GOTO EOF)

:StartSomethink
pushd %~dp0
cd /d %CD%
start /b "Dayz Epoch Server" /min "DayZ_Epoch_instance_11_Chernarus.bat"
timeout 15
cd "C:\Users\LostandCrazy\Desktop\DayZ Server\instance_11_Chernarus\BattlEye\Bec"
start  "UEP BattlEye Extended Control" /min "BEC.exe" -f "Config.cfg"
taskkill /f /im cmd.exe
GOTO EOF

Você está dizendo que o arquivo BAT (em lote) está no servidor e que esse servidor é o que você conecta quando se conecta à VPN.

Portanto, quando você se conectar à VPN, conecte-se remotamente a este servidor fazendo logon via RDP e, em seguida, inicie o arquivo BAT a partir daí dessa forma como se estivesse no servidor.

Se o BAT estiver no servidor, não tenho idéia de por que ele está no seu PC com conexão VPN, então essa parte é confusa para mim.

O arquivo em lote precisará ser executado a partir do servidor, para que você precise executá-lo no próprio servidor. Você pode configurar uma tarefa agendada e automatizar isso também, ou conectar-se ao servidor via RDP para iniciar manualmente, etc.

Desde que você diz que este é um arquivo em lote BAT, vou assumir que você está falando sobre um servidor Windows. Você não será capaz de lançar algum arquivo EXE a partir do seu PC "principal", etc., que está em \ nomedoservidor \ c $ \ arquivos de programas \ ~ e esperar que isso seja executado na memória do servidor, para que sua solicitação e a redação é muito confuso. Eu faço esse tipo de coisa todos os dias para centenas de empregos e muitos servidores diferentes, é fácil como torta.

EDITAR

Com o RDP, você só está arrastando a tela, os cliques do mouse e os toques do teclado pela rede (ou seja, o túnel da Internet VPN no seu caso). Isso significa que o RDP é tipicamente um protocolo eficiente em termos de tráfego de rede.

É possível iniciar remotamente a partir do dispositivo conectado à VPN, desde que esteja conectado ao domínio da VPN à qual você se conecta e o servidor do qual você deseja ativá-lo seja capaz de autenticar qualquer comando remoto que você enviar para o servidor. isso.

Se o dispositivo conectado à VPN não estiver associado ao domínio da VPN à qual você se conecta e o servidor não puder se autenticar, será possível iniciar algum comando remoto com RUNAS, etc.

Você poderia olhar para algumas coisas que eu posso pensar em cima da minha cabeça, mas eu pessoalmente apenas RDP no servidor e esperar por ele para carregar e, em seguida, lançá-lo dessa forma, ou então agendar um processo (com agendador de tarefas) no servidor com o arquivo em lote e automatizar para que não precise fazer isso manualmente de outra forma.

Não há tempo padrão, etc. Quando você inicia o Servidor de Jogo, o processo do Servidor de Jogo trava ou sobrecarrega a memória no servidor de tempos em tempos e você precisa se conectar para reiniciá-lo? Existem soluções em lote que você pode colocar em prática para fazer alguma coisa quando algo acontece e eu faço isso o tempo todo, e você pode mandar um e-mail, etc., se algo acontecer ou for acionado, etc.

Se você puder explicar qual é o problema e por que isso não pode ser automatizado, pode haver uma solução melhor e mais automatizada usando arquivos em lote do Windows.

Caso contrário. . .

  • O PowerShell pode executar processos, etc. remotamente, mas você precisa garantir pré-requisitos estão no local e teste para confirmar que funciona como esperado.
  • Você pode criar uma tarefa agendada no servidor apontando para o arquivo BAT e, em seguida, potencialmente, iniciá-lo remotamente (para que ele NÃO tenha PROGRAMAÇÃO para automação, para que você possa executar ad hoc conforme necessário). Mais uma vez, você teria que testar e confirmar se tudo isso funciona como esperado
por 18.10.2015 / 11:11
1

Sempre que você usar caminhos da LAN ou caminhos compartilhados, será necessário usar a sintaxe UNC em vez das letras da unidade. Não use letras de unidade. Usar caminhos UNC significa que atalhos e arquivos bat podem ser acessados de qualquer lugar sem problemas. Isso é \\ servername \ folder \ folder ou \\ machinename \ folder \ folder.

    
por 18.10.2015 / 10:20
0

Crie um atalho para o arquivo de lote, abra suas propriedades (clique nele para selecioná-lo e pressione Alt + Enter) e insira o endereço de rede do arquivo no campo "Iniciar em".

    
por 18.10.2015 / 09:56