0

私は自分のコンピューターでの追跡とスパイを可能な限り制限し続けるのに役立つ小さなバッチ スクリプトを作成したいと考えています。TinyWall は非常に軽量でシンプルなので、プライマリ ファイアウォールとして使用しています。「接続を表示」機能により、特定のポート/プログラムを永続的に許可するのをやめ、本当に必要なときにのみ開くことができるという考えに至りました。

そこで、(多くの調査を行って) ファイアウォールの例外 (複数のポートを開く) を追加し、特定のプログラムを開くバッチ スクリプトを作成しました。その後、ifステートメントを使用して、プログラムのプロセスが実行されている場合、タスクリストを常に(バッチスクリプトの実行中に)検索しました。そうでない場合は、ファイアウォールの例外を削除し、プログラムを閉じます。

スクリプトを ("cmd.exe /k" を使用して) 実行すると、プログラムは開きますが、プログラムがインターネット接続を報告しないため、例外は適用されなかったようです。また、プログラムを開いた後、cmd ウィンドウはすぐに (「cmd.exe /k」なしで) 閉じます。私はこれが起こることを望んでいません。

また、奇妙に思えるのは、(cmd の /k パラメータを使用して)「構文エラー」という応答しか得られないことです。(私の言語から翻訳されたもので、最初に報告されたものはわかりません)それ以上の情報はありません。

管理コマンド ウィンドウ内でスクリプトを実行する必要があります。それを悪用する方法はありますか?「advfirewall」(高度なファイアウォールだと思います)コマンドを使用する前は機能していましたが、コマンドマニュアルの助けを借りて、単純な「ファイアウォール」コマンドは時代遅れであり、代わりに「advfirewallファイアウォール」を使用する必要があると教えてくれました。

誰かが私の目標を達成する方法を知っていますか? 本当に感謝しています。

PS: 長文すみません。

TLDR: スクリプトが機能しません。私を助けたい場合は、コードを調べてください。

@echo OFF
SETLOCAL
echo Adding Firewall Exceptions for Origin ...
netsh advfirewall firewall add rule name="OriginIn port 3216" dir=in protocol=TCP localport=3216 action=allow
netsh advfirewall firewall add rule name="OriginOut port 3216" dir=out protocol=TCP localport=3216 action=allow
netsh advfirewall firewall add rule name="OriginIn port 49218" dir=in protocol=TCP localport=49218 action=allow
netsh advfirewall firewall add rule name="OriginOut port 49218" dir=out protocol=TCP localport=49218 action=allow
netsh advfirewall firewall add rule name="OriginIn port 49819" dir=in protocol=TCP localport=49819 action=allow
netsh advfirewall firewall add rule name="OriginOut port 49819" dir=out protocol=TCP localport=49819 action=allow
timeout 2
echo Done. Starting Origin. Have fun gaming!
start "Origin" /DE:\Origin\ Origin.exe
tasklist /FI "IMAGENAME eq Origin.exe" 2>NUL | find /I /N "Origin.exe">NUL
if %ERRORLEVEL% GTR 0
(
    netsh advfirewall firewall delete rule name "OriginIn port 3216"
    netsh advfirewall firewall delete rule name "OriginOut port 3216"
    netsh advfirewall firewall delete rule name "OriginIn port 49218"
    netsh advfirewall firewall delete rule name "OriginOut port 49218"
    netsh advfirewall firewall delete rule name "OriginIn port 49819"
    netsh advfirewall firewall delete rule name "OriginOut port 49819"
)
echo Deleting Firewall Exceptions (Reason: Origin isn't running anymore) ...
timeout 5
exit
4

1 に答える 1