4

install4jを使用したインストール中にWindowsファイアウォールポートを開くにはどうすればよいですか?
このソリューションをc#で見つけましたが、install4jカスタムコードに移植できません:http:
//www.codeproject.com/Articles/14906/Open-Windows-Firewall-During-Installation

おそらく誰かがアイデアや代替案を持っています解決?

4

2 に答える 2

4

質問が出されてからしばらく経ちましたが、install4j 5.1/6.1で行った方法は次のとおりです

すべてのファイアウォール ルールに対して、次のパラメーターを使用して「実行可能ファイルまたはバッチ ファイルを実行する」アクションを使用しました。

実行可能:${installer:sys.system32Dir}\netsh.exe

作業ディレクトリ:${installer:sys.system32Dir}

引数: netsh構文を使用して作成したいルールによって異なります。

例えば:advfirewall; firewall; add; rule; name=${compiler:sys.shortName} UDP IN; dir=in; action=allow; service=${compiler:sys.shortName}; localip=any; remoteip=any; localport=any; remoteport=any; protocol=udp; interfacetype=any; security=notrequired; edge=no; profile=any; enable=yes

または、編集ダイアログから:

advfirewall
firewall
add
rule
name=${compiler:sys.shortName} UDP IN
dir=in
action=allow
service=${compiler:sys.shortName}
localip=any
remoteip=any
localport=any
remoteport=any
protocol=udp
interfacetype=any
security=notrequired
edge=no
profile=any
enable=yes

一言アドバイス:

netsh は、受信するパラメーターに関して注意が必要です。さらに悪いことに、入力の解析に失敗すると、非常に役に立たず、誤解を招くメッセージを出力する傾向があります。したがって、次の点に注意してください。

  1. 各 netsh コマンドを個別の引数として渡します。プロパティ シートでは、セミコロンを使用してそれらを区切ります。改行で区切られた編集ダイアログ。
  2. 引数に引用符を使用しないでください。Microsoft のドキュメントで、次のようなルール名を指定するように指示されている場合name="rule name"は、コマンド ラインでのみ指定してください。install4j 以降、引数はname=rule name 引用符なしである必要があります。
  3. 引数が属していない場所の空白など、引数に含まれてはならないものが含まれていないことを確認してください。netshはそれが好きではありません。
于 2014-08-28T14:10:01.177 に答える