cmd を使用してアプリケーションがインターネットにアクセスするのをブロックすることは可能ですか?

cmd を使用してアプリケーションがインターネットにアクセスするのをブロックすることは可能ですか?

通常、私はFireWallを使ってアプリケーションによるインターネットへのアクセスをブロックするしかし、アプリケーション専用にファイアウォール システムをセットアップしたくはありません。

私がしたいのは、アプリケーションを起動するためのbatファイルを作成することです。これ

bat ファイルを実行すると、アプリケーションはインターネットへのアクセスをブロックされます。アプリケーションを直接実行すると、アプリケーションはインターネットにアクセスできます。

それは可能ですか?

答え1

アプリケーションを実行する前に、ファイアウォール ルールを追加してすべての着信トラフィックと発信トラフィックをブロックし、終了後にファイアウォール ルールを無効にする (または削除する) ことができます。

ブロックルールの設定

:: Variables
set RULE_NAME=TemporaryBlock
set PROGRAM=C:\Program Files (x86)\App\app.exe

netsh advfirewall firewall add rule name="%RULE_NAME%" dir=in action=block profile=any program="%PROGRAM%"
netsh advfirewall firewall add rule name="%RULE_NAME%" dir=out action=block profile=any program="%PROGRAM%"

インターネットをブロックした状態でアプリを実行する

@echo off

:: Variables
set RULE_NAME=TemporaryBlock
set PROGRAM=C:\Program Files (x86)\App\app.exe

:: Block the app
netsh advfirewall firewall set rule name="%RULE_NAME%" dir=in new enable=yes
netsh advfirewall firewall set rule name="%RULE_NAME%" dir=out new enable=yes

:: Running the app
start "" /wait "%PROGRAM%"

:: Disable the firewall rules
netsh advfirewall firewall set rule name="%RULE_NAME%" dir=in new enable=no
netsh advfirewall firewall set rule name="%RULE_NAME%" dir=out new enable=no

詳細

  • ドキュメンテーション:netsh advfirewall firewall add rule -?
  • アプリを実行するたびにルールを作成したり削除したりすることもできますが、私はルールを一度作成して、あとは有効にしたり無効にしたりするのが好きです。
  • 管理者権限が必要です

関連情報