バッチファイルでファイアウォールの設定をやる、ということになっていたけどお蔵入りしてしまったのでここに未完成状態のまま調べたことを記録しておく、という内容。今回は主に前提知識の記述となります。
きっかけ
あるアプリケーションを削除した際にWindowsファイアウォール設定が変わってしまう、という動作があって、それに対処するために作成してテストを実行したバッチファイル。
まだテスト段階の状況で、別の方法で処理することになったのでお蔵入りしてしまったのですが、自分でやったことの記録として残しておこうという趣旨。
条件
OSはWindows10のみを対象、Windows8.1は対象外にしたい。
対象のアプリケーションが存在しているうちは、設定変更バッチの動作対象外としたい。(変更する必要がない、触りたくない、何もしないで欲しい)
Windowsファイアウォール許可設定はサービス(アプリにWindowsファイアウォール経由の通信を許可する画面で操作する)が対象=ポート番号ではない
⇒本記事では仮にリモートデスクトップを対象
コマンドで実行するように考える
実際にコマンドで実行する場合には、「アプリにWindowsファイアウォール経由の通信を許可する画面で操作する」画面で設定している内容でも、「セキュリティが強化されたWindowsファイアウォール」画面で一覧表示されている行単位でコマンドの実行許可を実施する必要が出てきます。
※今回の例で言えば、「リモートデスクトップ」を許可するには、関係する規則として以下の三つを有効化する必要があります。
リモート デスクトップ - シャドウ (TCP 受信)
リモート デスクトップ - ユーザー モード (TCP 受信)
リモート デスクトップ - ユーザー モード (UDP 受信)
この三点が有効化されていれば、「アプリにWindowsファイアウォール経由の通信を許可する画面で操作する」画面でもリモートデスクトップが有効化されることになります。
注意点
コマンドを実行していて気づいたのが、Windowsファイアウォールのルールの設定状態によって、コマンドが上手く動作しないことがある、と言う点。
例えば、
許可を設定するコマンドを実行すると、上は成功していますが、下は失敗してしまっています。
詳細の「セキュリティが強化されたWindowsファイアウォール」画面を見てみると、
失敗した方はプロファイルが「プライベート,パブリック」と二つのプロファイルが割り当てられています。
プライベートだけのプロファイルに対しての許可コマンド実行は、
このように成功して、
このように、ファイアウォールの許可設定が反映されますが、プライベート以外に複数のプロファイルが含まれているルールにはコマンドオプションを変えないとうまく反映できなさそう。
完全自動化する場合には要注意なのかも。
バッチファイル部分は次回に。