2

У меня есть файл .bat на моем серверном компьютере, который содержит различные пути к файлам и т.д., которые находятся на этом серверном компьютере. Я настроил vpn так, чтобы я мог получить доступ к этому компьютеру с моего основного компьютера, но когда я запускаю .bat, он ищет путь к файлу на моем компьютере, а не на сервере. Я хочу иметь возможность запускать этот .bat на моем компьютере, и он запускает программу и путь к файлу на компьютере сервера, а не на моем компьютере. Кто-нибудь знает, как я могу это сделать?

PS. Файл .bat запускает игровой сервер и почему он должен быть на этом компьютере, а не на моем

3 ответа3

1

Каждый раз, когда вы используете пути локальной сети или общие пути, вам нужно использовать синтаксис UNC, а не буквы дисков. Не используйте буквы дисков. Использование путей UNC означает, что ярлыки и файлы bat могут быть доступны из любого места без проблем. Это \\ имя_сервера \ папка \ папка или \\ имя_машины \ папка \ папка.

1

ОБНОВИТЬ

Возможно, имеет смысл просто использовать PSExec чтобы сохранить эту простоту для ваших конкретных потребностей. Синтаксис довольно интуитивно понятен, и, как правило, это просто работает, мой примерный синтаксис должен быть всем, что вам нужно, чтобы заставить его работать после подключения к VPN.

Я не уверен, что если вы запускаете это с компьютера, подключенного к VPN, имя пользователя должно быть domain\username но помните об этом при тестировании.

ПРИМЕР СИНТАКСА

(Запустите с ПК, подключенного к VPN, укажите путь к файлу BAT, как он есть с точки зрения игрового сервера)

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

Дальнейшие идеи

Пример: если ваше приложение работает в памяти независимо от того, является ли это службой. Ниже приведено подтверждение того, что он работает в памяти, если это не так, вы можете указать ему запустить ваш процесс. Я не уверен, что это зависает, и когда это происходит, вы не можете найти его с помощью TASKLIST, но это может быть чем-то, что нужно проверить. Затем вы можете запланировать что-то вроде ниже, чтобы запускаться два раза в день и т.д., чтобы автоматизировать процесс.

@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

Вы говорите, что (пакетный) BAT-файл находится на Сервере, и этот сервер - то, к чему вы подключаетесь при подключении к VPN.

Поэтому при подключении к VPN удаленно подключайтесь к этому серверу, выполнив вход на него через RDP, а затем запустите оттуда файл BAT, как если бы вы находились на сервере.

Если BAT находится на сервере в первую очередь, я понятия не имею, почему он даже находится на вашем компьютере, подключенном к VPN, так что эта часть сбивает меня с толку.

Пакетный файл нужно будет запускать с сервера, поэтому его нужно запускать на самом сервере. Вы можете настроить запланированное задание и автоматизировать его тоже, или подключиться к серверу через RDP, чтобы запустить его вручную и т.д.

Поскольку вы говорите, что это BAT-файл, я предполагаю, что вы говорите о Windows Server. Вы не сможете запустить какой-нибудь EXE-файл со своего "основного" ПК и т.д., Который находится на \servername \c $ \program files \~, и ожидать, что он будет запущен в памяти на сервере, поэтому ваш запрос и формулировка очень сбивает с толку. Я делаю такие вещи КАЖДЫЙ ДЕНЬ для сотен рабочих мест и МНОГИХ разных серверов, это просто как пирог.

РЕДАКТИРОВАТЬ

С помощью RDP вы только перетаскиваете экран, щелчки мыши и нажатия клавиш в сети (например, VPN-туннель в вашем случае). Это означает, что RDP обычно является довольно эффективным протоколом с точки зрения сетевого трафика.

Удаленный запуск может быть возможен с устройства, подключенного к VPN, при условии, что оно подключено к домену VPN, к которой вы подключаетесь, и сервер, с которого вы хотите подключиться, может проверять подлинность любых удаленных команд, отправляемых на сервер для его запуска.

Если устройство, подключенное к VPN, не подключено к домену VPN, к которой вы подключаетесь, и сервер не может пройти аутентификацию, вы можете запустить удаленную команду с помощью RUNAS и т.д.

Вы можете взглянуть на пару вещей, которые я могу придумать, но я лично просто RDP на сервер и подожду, пока он загрузится, а затем запустит его таким образом, или запланировал процесс (с планировщиком задач). на сервере с командным файлом и автоматизировать, так что нет необходимости делать это вручную.

Нет ли стандартного времени и т.д. При запуске игрового сервера, происходит ли сбой в процессе работы игрового сервера или время от времени на сервере, и вам нужно подключиться, чтобы перезапустить его? Существуют пакетные решения, которые вы можете использовать, чтобы ДЕЛАТЬ ЧТО-ТО, когда ЧТО-ТО происходит, и я делаю это все время, и вы можете отправить его по электронной почте и т.д., Если ЧТО-ТО происходит или запускается, и т.д.

Если вы можете объяснить, в чем заключается проблема и почему ее нельзя автоматизировать, может быть, лучше использовать более автоматизированное решение, использующее пакетные файлы Windows.

Иначе. , ,

  • PowerShell может выполнять процессы и т.д. Удаленно, но вам необходимо убедиться, что предварительные условия имеются, и протестировать, чтобы убедиться, что они работают должным образом.
  • Вы можете создать запланированное задание на сервере, указывающее на BAT-файл, а затем потенциально запустить его удаленно (поэтому у него не будет НИКАКОГО РАСПИСАНИЯ для автоматизации, чтобы вы могли запускать его по мере необходимости). Опять же, вам придется проверить и подтвердить все это работает, как ожидалось
0

Создайте ярлык для командного файла, откройте его свойства (щелкните его, чтобы выбрать его и нажмите Alt + Enter) и введите сетевой адрес файла в поле "Начать с".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .