Skip to content

Managing Windows Firewall with PowerShell

The Windows Firewall is a crucial component of the Windows operating system, providing security by controlling inbound and outbound network traffic. Managing the Windows Firewall traditionally involves navigating through the graphical user interface (GUI), but with PowerShell, you can automate and streamline firewall management tasks. In this guide, we’ll delve into using PowerShell to manage the Windows Firewall, covering essential concepts & commands.

Understanding Windows Firewall Profiles

Before diving into PowerShell commands, it’s essential to understand Windows Firewall Profiles. There are three firewall profiles:

  1. Domain Profile: Applies when your computer is connected to a domain network.
  2. Private Profile: Applies when your computer is connected to a private network, such as a home or work network.
  3. Public Profile: Applies when your computer is connected to a public network, such as a coffee shop or airport Wi-Fi.

Basic PowerShell Commands for Firewall Management

Let’s start with some basic PowerShell commands to interact with the Windows Firewall:

Enable or Disable the Firewall

# Enable Windows Firewall
Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled True

# Disable Windows Firewall
Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled False

Check Firewall Status

# Get the status of all firewall profiles
Get-NetFirewallProfile | Select Name, Enabled

Add an Inbound Firewall Rule

# Example: Allow inbound traffic on port 80 (HTTP)
New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow

Add an Outbound Firewall Rule

# Example: Allow outbound traffic on port 443 (HTTPS)
New-NetFirewallRule -DisplayName "Allow HTTPS" -Direction Outbound -Protocol TCP -LocalPort 443 -Action Allow

Managing Firewall Rules

Now, let’s explore how to manage firewall rules using PowerShell:

View Firewall Rules

# Get all firewall rules

# Filter rules by name or other properties
Get-NetFirewallRule -DisplayName "Allow HTTP"

Disable a Firewall Rule

# Disable a specific firewall rule by display name
Disable-NetFirewallRule -DisplayName "Block FTP"

Remove a Firewall Rule

# Remove a specific firewall rule by display name
Remove-NetFirewallRule -DisplayName "Block FTP"

Export and Import Firewall Rules

# Export firewall rules to a file
Export-NetFirewallRule -Path "C:\FirewallRules.xml"

# Import firewall rules from a file
Import-NetFirewallRule -Path "C:\FirewallRules.xml"

Blocking a Specific Application

Suppose you want to block a specific application, such as a game, from accessing the internet. You can achieve this using PowerShell:

# Block outbound traffic for a specific application
New-NetFirewallRule -DisplayName "Block Game" -Direction Outbound -Program "C:\Path\To\Game.exe" -Action Block


PowerShell provides a powerful interface for managing the Windows Firewall, offering automation and flexibility in configuring firewall settings. By mastering PowerShell commands for firewall management, you can efficiently control network traffic and enhance the security of your Windows environment. With the examples provided in this guide, you can start harnessing the power of PowerShell to effectively manage the Windows Firewall.

Published inPowerShell
© 2024 - Powered by Coffee & Magic