如何使用Wix阻止端口?

时间:2014-08-27 21:23:14

标签: wix port firewall wix-extension

我有一个安装oracle XE数据库的安装程序。最近,我被要求在安装过程中以编程方式关闭/阻止端口1521。我的应用程序是使用Wix 3.8安装的。我见过Wix防火墙扩展,但我没有看到指定动作的方法(即“阻止”)。我想阻止该端口上的所有传入流量,有效地关闭了侦听器。

还有另一种方法可以做到这一点,还是我错过了Wix的东西?

2 个答案:

答案 0 :(得分:1)

如果 Wix扩展程序不支持此功能(这会让我感到惊讶),也许您可​​以尝试使用此VBScript。

请注意,我没有编写此脚本,也没有使用它。 谨慎使用,风险自负。在虚拟机上测试。

Set objFirewall = CreateObject("HNetCfg.FwMgr")
Set objPolicy = objFirewall.LocalPolicy.CurrentProfile
Set colPorts = objPolicy.GloballyOpenPorts

Set objPort = colPorts.Item(9999,6)
objPort.Enabled = FALSE

类似的代码,但使用C#:Automating Windows Firewall with

答案 1 :(得分:1)

更新:我们无法让WiX安装程序执行我们想要的操作,因此我们编写了自己的自定义进程(不是CustomAction),它在安装后运行。

3个主要步骤是:

  1. 将sqlnet.ora(\ database \ app \ oracle \ product \\ server \ NETWORK \ ADMIN \ sqlnet.ora)文件配置为仅允许来自localhost的连接,方法是添加以下行:
  2. > TCP.VALIDNODE_CHECKING=YES
    > TCP.INVITED_NODES = 127.0.0.1
    
    1. 仅通过运行以下sqlplus命令设置TNSListener以进行本地访问:
    2. > exec DBMS_XDB.SETLISTENERLOCALACCESS(true);
      >     SHUTDOWN IMMEDIATE
      >     STARTUP
      
      1. 停止OracleXETNSListener服务并禁用它(自定义VB.net代码)
      2. 希望这有帮助!