it-swarm-ja.com

ネットワーク上で.batを実行する

サーバーPCに.batファイルがあり、そのサーバーPCにあるさまざまなファイルパスなどが含まれています。メインPCからこのPCにアクセスできるようにVPNを設定しましたが、.batを起動すると、サーバーではなくコンピューターでファイルパスが検索されます。この.batを自分のコンピューターで起動できるようにしたいのですが、プログラムとファイルパスを自分のPCではなくサーバーPCで起動します。誰かが私がこれを行う方法を知っていますか?

P.s. .batファイルはゲームサーバーを起動し、なぜそれが私のものではなくそのコンピューター上にある必要があるのか

2
Baibro

要点

PSExecを使用して、特定のニーズに合わせてこれを単純に保つ方が理にかなっています。構文はかなり直感的で、通常は正常に機能しますが、以下に示すサンプル構文は、接続後に機能させるために使用する必要があるすべてです。 VPN。

ユーザー名を<domain>\<username>にする必要があるかどうか、VPN接続されたPCからこれを実行するかどうかはわかりませんが、問題があるかどうかをテストするときは、このことに注意してください。

サンプル構文

重要な注意:VPN接続されたPCから実行し、ゲームサーバーの観点からBATファイルパスをそのままポイントします

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

さらなるアイデア

別の例:アプリケーションがサービスであるかどうかに関係なくメモリ内で実行されている場合、以下はそれがメモリ内で実行されていることを確認するために調べます。そうでない場合は、プロセスを実行するように指示できます。ハングアップするかどうかはわかりませんが、ハングアップするとTASKLISTで実行されていることがわかりませんが、確認する必要があるかもしれません。次に、以下のようなスケジュールを1日2回実行するなどして、プロセスを自動化できます。

@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接続されたPC上にある理由がわかりません。私には混乱しています。

  • バッチファイルはサーバーから実行する必要があるため、サーバー自体で実行する必要があります。スケジュールされたタスクを設定してこれを自動化することも、RDP経由でサーバーに接続して手動で開始することもできます。
  • \\servername\c$\program files\~にある「メイン」PCなどからEXEファイルを起動して、サーバーのメモリで実行されることを期待することはできません。

更新

  • RDPを使用すると、ネットワーク全体で画面をドラッグし、マウスをクリックし、キーボードストロークを行うだけです(つまり、この場合はVPNインターネットトンネル)。これは、RDPが通常、ネットワークトラフィックの観点からかなり効率的なプロトコルであることを意味します。

  • VPNに接続されたデバイスからリモートで起動できる場合は、接続先のVPNのドメインに接続されていて、起動元のサーバーがサーバーに送信したリモートコマンドを認証して起動できることを前提としています。

  • VPNに接続されたデバイスが接続先のVPNのドメインに参加しておらず、サーバーが認証できない場合は、RUNASなどを使用してリモートコマンドを起動できる可能性があります。

  • サーバーにRDPを挿入し、ロードされるのを待ってからその方法で起動するか、バッチファイルを使用してサーバー上でタスクスケジューラを使用してプロセスをスケジュールし、自動化して手動で実行する必要がないようにすることができます。 。

  • 「何か」が発生したときに「何かをする」ために配置できるバッチスクリプトソリューションがあります。 「何か」が発生したり、トリガーされたりした場合は、メールなどを送信してもらうことができます。

さらに。 。 。

  • PowerShellはプロセスなどをリモートで実行できますが、前提条件が整っていることを確認し、テストして期待どおりに機能することを確認する必要があります。
  • サーバー上でBATファイルを指すスケジュールされたタスクを作成し、それをリモートで起動する可能性があります(したがって、自動化のスケジュールがないため、必要に応じてアドホックで実行できます)。繰り返しますが、これがすべて期待どおりに機能することをテストして確認する必要があります
3
Pimp Juice IT

LANパスまたは共有パスを使用する場合は常に、ドライブ文字ではなくUNC構文を使用する必要があります。ドライブ文字は使用しないでください。 UNCパスを使用すると、ショートカットとbatファイルにどこからでも問題なくアクセスできます。これは\\ servername\folder\folderまたは\\ machinename\folder\folderです。

1
subjectivist

バッチファイルへのショートカットを作成し、そのプロパティを開いて(クリックして選択し、Alt + Enterキーを押します)、[開始]フィールドにファイルのネットワークアドレスを入力します。

0
Mark Wallace