Adding a Port to Current Profile Using Remote Addresses
This example shows adding a port to the current profile using RemoteAddresses to specify scope.
Option Explicit
On Error GoTo 0
'Set Constants
Const NET_FW_IP_PROTOCOL_UDP = 17
Const NET_FW_IP_PROTOCOL_TCP = 6
'Declare variables
Dim errornum
' Create the firewall manager object.
Dim fwMgr
Set fwMgr = CreateObject("HNetCfg.FwMgr")
' Get the current profile for the local firewall policy.
Dim profile
Set profile = fwMgr.LocalPolicy.CurrentProfile
Dim port
Set port = CreateObject("HNetCfg.FWOpenPort")
port.Name = "HTTP"
port.Protocol = NET_FW_IP_PROTOCOL_TCP
port.Port = 80
'If using RemoteAddresses, don't use Scope
' "*" means Scope of Any. Other entries are ignored if this is specified.
' "LocalSubnet" means Scope of Local Subnet. Can be used with other addresses as well.
port.RemoteAddresses = "*"
'Use this line to scope the port to Local Subnet only
'port.RemoteAddresses = "LocalSubnet"
'Use this line to scope the port to the specific IP 10.1.1.1, the specific subnet 12.5.0.0, and Local Subnet. Don't put spaces.
'port.RemoteAddresses = "LocalSubnet,10.1.1.1/255.255.255.255,12.5.0.0/255.255.0.0"
port.Enabled = TRUE
'Use this line instead if you want to add the port, but disabled
'port.Enabled = FALSE
On Error Resume Next
profile.GloballyOpenPorts.Add port
errornum = Err.Number
If errornum <> 0 Then
WScript.Echo("Adding the port failed. Error Number: " & errornum)
End If