注:#command-lineタグはバッチファイルのみを意味するものではありません。PowerShellスクリプトまたは自由に利用できるユーティリティを受け入れます。これらのユーティリティは、コマンドラインから開始して無人で作業を終了できます。
tl; dr
Windows Vistaで任意のインターフェイス(表示)言語のファイアウォールルールを無人でGUIの状態に正確に変換する方法
精巧な
この質問は#786383に似ていますが、同じではありません。
基本的に、答えは私にとって良くないので:
set rule group="remote desktop" new enable=Yes
パブリックネットワーク用にポート3389を開きます。これは避けたいです。また、Windows言語が異なればグループ名も異なりますが、汎用的なソリューションが必要です。netsh firewall set service type = remotedesktop mode = enable
も私にとっては機能しません:win7以降は非推奨であり、現在のネットワークでのみrdpを許可します(パブリックネットワークにいる場合、3389はパブリックネットワーク用に開かれ、その後プライベートネットワークでは機能しません)。
GUIを介してRDPを有効にする前は、RDPのプロトコルごとに1つのルールしかないことに注意してください。ただし、RDPがGUIを介して有効になっている場合、ポートはプライベートネットワークとドメインネットワークに対してのみ開かれ、ルールが分割されます。有効にした後、Windows 8以降では4つのルール、Windows XP、Vistaおよび7では2つのルール(UDPなし)があります。
私が現在使用している回避策は、自分のルールを追加することです:
netsh.exe advfirewall firewall add rule name="Remote Desktop - User Mode (TCP-In)" dir=in action=allow program="%%SystemRoot%%\system32\svchost.exe" service="TermService" description="Inbound rule for the Remote Desktop service to allow RDP traffic. [TCP 3389] added by LogicDaemon's script" enable=yes profile=private,domain localport=3389 protocol=tcp
netsh.exe advfirewall firewall add rule name="Remote Desktop - User Mode (UDP-In)" dir=in action=allow program="%%SystemRoot%%\system32\svchost.exe" service="TermService" description="Inbound rule for the Remote Desktop service to allow RDP traffic. [UDP 3389] added by LogicDaemon's script" enable=yes profile=private,domain localport=3389 protocol=udp
しかし、それは悪いことです。なぜなら、(標準のものとは異なり)それらはユーザーが変更でき、(他のスクリプトで作業するための)グループがなく、GUIを介してRDPがオフにされたときに自動的に無効にされないためです。
スクリーンショット
GUIを介して初めてRDPを有効にする前のファイアウォールルール* **
GUIを介してRDPが有効になっている場合の同じルール(取得したい状態):
誰かが尋ねるまで、Windowsのコマンドラインユーティリティを使用して、この戦いの全体像を語ることはしません。これがロシア語の話です。