# Set Firewall Rule

> Creates a Windows Firewall rule if it does not exist, or updates the existing rule when found by Name.

Source: https://docs.capaone.com/capaone/application-manager/powerbricks/set-firewall-rule/  
Product: CapaOne — a separate CapaSystems product; do not apply this page to any other.

Creates a Windows Firewall rule if it does not exist, or updates the existing rule when found by Name. You can use Get-NetFirewallRule -All to see all rules.

## Parameters

#### Name
*Required*

Internal firewall rule name (rule ID). Used to detect whether the rule already exists.

#### Display Name
*Optional*

Friendly display name for the firewall rule. If empty, Name is used.

#### Description
*Optional*

Optional description for the firewall rule.

#### Direction
*Optional* — Default: `Inbound`

Traffic direction for the firewall rule. Allowed values: `Inbound`, `Outbound`.

#### Action
*Optional* — Default: `Allow`

Firewall action for matching traffic. Allowed values: `Allow`, `Block`.

#### Enabled
*Optional* — Default: `True`

Set rule state to enabled (True) or disabled (False). Allowed values: `True`, `False`.

#### Profile
*Optional* — Default: `Any`

Firewall profile scope where the rule applies. Allowed values: `Domain`, `Private`, `Public`, `Any`.

#### Interface Type
*Optional* — Default: `Any`

Interface type where the firewall rule applies. Allowed values: `Any`, `Wired`, `Wireless`, `RemoteAccess`.

#### Program
*Optional*

Optional executable path used for the firewall rule.

#### Local Address
*Optional*

Optional local address filter for the firewall rule. The value can be an IPv4 or IPv6 address, hostname, subnet, range, or the keyword Any. Examples: Any, 127.0.0.1, 192.168.1.10, 192.168.1.0/24, LocalSubnet, or fe80::1.

#### Remote Address
*Optional*

Optional remote address filter for the firewall rule. The value can be an IPv4 or IPv6 address, hostname, subnet, range, or supported keywords such as Any, LocalSubnet, DNS, DHCP, Internet, or Intranet. Examples: Any, 10.0.0.15, 10.0.0.0/24, LocalSubnet, or fe80::1.

#### Local Port
*Optional*

Optional local port filter for the firewall rule. Examples: 80, 443, 5000-5010, or Any. Use this when Protocol is TCP or UDP. Leave empty when Protocol is Any, ICMPv4, or ICMPv6.

#### Protocol
*Optional* — Default: `Any`

Optional protocol for the firewall rule. Allowed values: `Any`, `TCP`, `UDP`, `ICMPv4`, `ICMPv6`.

## Details

- **Category:** System
- **Brick ID:** `FirewallRule-Set`

## Raw JSON definition

**JSON**

```json
{
  "category": "system",
  "description": "Creates a Windows Firewall rule if it does not exist, or updates the existing rule when found by Name. You can use Get-NetFirewallRule -All to see all rules.",
  "developerVendor": "CapaSystems A/S",
  "displayName": null,
  "id": "FirewallRule-Set",
  "name": "Set Firewall Rule",
  "parameters": [
    {
      "allowManualInput": false,
      "defaultValue": "",
      "defaultValueObject": null,
      "description": "Internal firewall rule name (rule ID). Used to detect whether the rule already exists.",
      "id": "Name",
      "name": "Name",
      "regExValidation": "",
      "required": true,
      "type": "TextBox",
      "value": null,
      "values": [],
      "valuesObject": null
    },
    {
      "allowManualInput": false,
      "defaultValue": "",
      "defaultValueObject": null,
      "description": "Friendly display name for the firewall rule. If empty, Name is used.",
      "id": "DisplayName",
      "name": "Display Name",
      "regExValidation": "",
      "required": false,
      "type": "TextBox",
      "value": null,
      "values": [],
      "valuesObject": null
    },
    {
      "allowManualInput": false,
      "defaultValue": "",
      "defaultValueObject": null,
      "description": "Optional description for the firewall rule.",
      "id": "Description",
      "name": "Description",
      "regExValidation": "",
      "required": false,
      "type": "TextBox",
      "value": null,
      "values": [],
      "valuesObject": null
    },
    {
      "allowManualInput": false,
      "defaultValue": null,
      "defaultValueObject": {
        "id": "Inbound",
        "name": "Inbound"
      },
      "description": "Traffic direction for the firewall rule.",
      "id": "Direction",
      "name": "Direction",
      "regExValidation": "",
      "required": false,
      "type": "ComboBox",
      "value": null,
      "values": [],
      "valuesObject": [
        {
          "id": "Inbound",
          "name": "Inbound"
        },
        {
          "id": "Outbound",
          "name": "Outbound"
        }
      ]
    },
    {
      "allowManualInput": false,
      "defaultValue": null,
      "defaultValueObject": {
        "id": "Allow",
        "name": "Allow"
      },
      "description": "Firewall action for matching traffic.",
      "id": "Action",
      "name": "Action",
      "regExValidation": "",
      "required": false,
      "type": "ComboBox",
      "value": null,
      "values": [],
      "valuesObject": [
        {
          "id": "Allow",
          "name": "Allow"
        },
        {
          "id": "Block",
          "name": "Block"
        }
      ]
    },
    {
      "allowManualInput": false,
      "defaultValue": null,
      "defaultValueObject": {
        "id": "True",
        "name": "True"
      },
      "description": "Set rule state to enabled (True) or disabled (False).",
      "id": "Enabled",
      "name": "Enabled",
      "regExValidation": "",
      "required": false,
      "type": "ComboBox",
      "value": null,
      "values": [],
      "valuesObject": [
        {
          "id": "True",
          "name": "True"
        },
        {
          "id": "False",
          "name": "False"
        }
      ]
    },
    {
      "allowManualInput": false,
      "defaultValue": null,
      "defaultValueObject": {
        "id": "Any",
        "name": "Any"
      },
      "description": "Firewall profile scope where the rule applies.",
      "id": "Profile",
      "name": "Profile",
      "regExValidation": "",
      "required": false,
      "type": "ComboBox",
      "value": null,
      "values": [],
      "valuesObject": [
        {
          "id": "Domain",
          "name": "Domain"
        },
        {
          "id": "Private",
          "name": "Private"
        },
        {
          "id": "Public",
          "name": "Public"
        },
        {
          "id": "Any",
          "name": "Any"
        }
      ]
    },
    {
      "allowManualInput": false,
      "defaultValue": null,
      "defaultValueObject": {
        "id": "Any",
        "name": "Any"
      },
      "description": "Interface type where the firewall rule applies.",
      "id": "InterfaceType",
      "name": "Interface Type",
      "regExValidation": "",
      "required": false,
      "type": "ComboBox",
      "value": null,
      "values": [],
      "valuesObject": [
        {
          "id": "Any",
          "name": "Any"
        },
        {
          "id": "Wired",
          "name": "Wired"
        },
        {
          "id": "Wireless",
          "name": "Wireless"
        },
        {
          "id": "RemoteAccess",
          "name": "RemoteAccess"
        }
      ]
    },
    {
      "allowManualInput": false,
      "defaultValue": "",
      "defaultValueObject": null,
      "description": "Optional executable path used for the firewall rule.",
      "id": "Program",
      "name": "Program",
      "regExValidation": "",
      "required": false,
      "type": "TextBox",
      "value": null,
      "values": [],
      "valuesObject": null
    },
    {
      "allowManualInput": false,
      "defaultValue": "",
      "defaultValueObject": null,
      "description": "Optional local address filter for the firewall rule. The value can be an IPv4 or IPv6 address, hostname, subnet, range, or the keyword Any. Examples: Any, 127.0.0.1, 192.168.1.10, 192.168.1.0/24, LocalSubnet, or fe80::1.",
      "id": "LocalAddress",
      "name": "Local Address",
      "regExValidation": "",
      "required": false,
      "type": "TextBox",
      "value": null,
      "values": [],
      "valuesObject": null
    },
    {
      "allowManualInput": false,
      "defaultValue": "",
      "defaultValueObject": null,
      "description": "Optional remote address filter for the firewall rule. The value can be an IPv4 or IPv6 address, hostname, subnet, range, or supported keywords such as Any, LocalSubnet, DNS, DHCP, Internet, or Intranet. Examples: Any, 10.0.0.15, 10.0.0.0/24, LocalSubnet, or fe80::1.",
      "id": "RemoteAddress",
      "name": "Remote Address",
      "regExValidation": "",
      "required": false,
      "type": "TextBox",
      "value": null,
      "values": [],
      "valuesObject": null
    },
    {
      "allowManualInput": false,
      "defaultValue": "",
      "defaultValueObject": null,
      "description": "Optional local port filter for the firewall rule. Examples: 80, 443, 5000-5010, or Any. Use this when Protocol is TCP or UDP. Leave empty when Protocol is Any, ICMPv4, or ICMPv6.",
      "id": "LocalPort",
      "name": "Local Port",
      "regExValidation": "",
      "required": false,
      "type": "TextBox",
      "value": null,
      "values": [],
      "valuesObject": null
    },
    {
      "allowManualInput": false,
      "defaultValue": null,
      "defaultValueObject": {
        "id": "Any",
        "name": "Any"
      },
      "description": "Optional protocol for the firewall rule.",
      "id": "Protocol",
      "name": "Protocol",
      "regExValidation": "",
      "required": false,
      "type": "ComboBox",
      "value": null,
      "values": [],
      "valuesObject": [
        {
          "id": "Any",
          "name": "Any"
        },
        {
          "id": "TCP",
          "name": "TCP"
        },
        {
          "id": "UDP",
          "name": "UDP"
        },
        {
          "id": "ICMPv4",
          "name": "ICMPv4"
        },
        {
          "id": "ICMPv6",
          "name": "ICMPv6"
        }
      ]
    }
  ],
  "powershell": {
    "base64Encoded": true,
    "function": "ZnVuY3Rpb2..."
  },
  "type": "powerbrick",
  "version": "2026.9.1.1"
}
```
