gpt4 book ai didi

java - 如何在安装过程中打开防火墙端口?

转载 作者:可可西里 更新时间:2023-11-01 09:25:36 28 4
gpt4 key购买 nike

如何在使用 install4j 安装期间打开 Windows 防火墙端口?
我找到了这个适用于 c# 的解决方案,但我无法将它移植到 install4j 自定义代码:
http://www.codeproject.com/Articles/14906/Open-Windows-Firewall-During-Installation

也许有人有想法或替代解决方案?

最佳答案

这个问题已经有一段时间了,但这是我用 install4j 5.1/6.1 做的

对于每条防火墙规则,我都使用了带有以下参数的“运行可执行文件或批处理文件”操作:

可执行文件:${installer:sys.system32Dir}\netsh.exe

工作目录:${installer:sys.system32Dir}

参数:取决于我想使用 netsh 创建的规则语法。

例如:advfirewall;防火墙;添加;规则;名称=${编译器:sys.shortName} UDP IN;目录=在;行动=允许;服务=${编译器:sys.shortName}; localip=任何;远程ip=任何;本地端口=任何;远程端口=任何;协议(protocol)=udp;接口(interface)类型=任何;安全=不需要;边缘=否;配置文件=任何;启用=是

或者,从编辑对话框:

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 without quotes
  3. 确保您的论点不包含任何不应包含的内容,例如不属于它们的地方的空格。 netsh 不喜欢那样。

关于java - 如何在安装过程中打开防火墙端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12051371/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com