Modifying a Service

The following example demonstrates enabling a service, disabling one of its ports, and changing the scope of another.

Option Explicit

'Set Constants
Const NET_FW_SERVICE_FILE_AND_PRINT = 0
Const NET_FW_SERVICE_UPNP = 1
Const NET_FW_SERVICE_REMOTE_DESKTOP = 2

' Scope
Const NET_FW_SCOPE_ALL = 0
Const NET_FW_SCOPE_LOCAL_SUBNET = 1

'Declare variables
Dim service
Dim port

' 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

Set service = profile.Services.Item(NET_FW_SERVICE_FILE_AND_PRINT)
service.Enabled = TRUE
' Use either Scope or RemoteAddresses, but not both
service.RemoteAddresses = "*"
'service.Scope = NET_FW_SCOPE_ALL

' The Service is Enabled and Scoped to All IP's. Now disable
' TCP 445 and scope TCP 139 to Local Subnet only.
For Each port In service.GloballyOpenPorts
    if port.Port = 445 Then port.Enabled = FALSE
    if port.Port = 139 Then port.Scope = NET_FW_SCOPE_LOCAL_SUBNET
Next