Note: This tip requires PowerShell 3.0 or above.
In an earlier tip, we looked at how we can add firewall rules in Windows 8 or Windows Server 2012. In today’s tip, we shall look at how we can get the firewall rules from local and remote systems in Windows 8 and Windows Server 2012 systems.
We can use the Get-NetFirewallRule cmdlet to achieve this. First, let us see how we can use this cmdlet on the local system.
The above command will list all available Firewall rules irrespective of their state (enabled or disabled) or action (allowed or denied). To filter this further to only enabled firewall rules, we can run:
Get-NetFirewallRule -Enabled True
We can filter this further and retrieve only the rules that are enabled and are set to allow.
Get-NetFirewallRule -Enabled True -Action Allow
So, how do we use this to retrieve the rules from a remote system? Simple, we need to use a computer name string or a CIM session object as an argument to the -CimSession parameter of Get-NetFirewallRule cmdlet.
$cimSession = New-CimSession -ComputerName Server-03 Get-NetFirewallRule -CimSession $cimSession -Enabled True -Action Allow
Get-NetFirewallRule -CimSession Server-03 -Enabled True -Action Allow