ZetCode

PowerShell Get-NetFirewallProfile

最后修改:2025 年 2 月 15 日

本教程介绍了PowerShell中的Get-NetFirewallProfile cmdlet。它用于检索Windows防火墙配置文件。该cmdlet有助于管理Windows系统上的网络安全设置。

防火墙配置文件基础知识

Windows防火墙有三个网络配置文件:域、专用和公用。每个配置文件都有单独的防火墙规则和设置。域配置文件在连接到公司域时应用。专用用于受信任的网络。公用用于咖啡店等不受信任的网络。

Get-NetFirewallProfile 基本用法

使用Get-NetFirewallProfile最简单的方法是不带参数。这将检索所有防火墙配置文件及其当前设置。输出显示配置文件名称、启用状态和默认操作。每个配置文件都表示为一个NetFirewallProfile对象。

firewall1.ps1
Get-NetFirewallProfile

此命令返回所有防火墙配置文件。输出包括配置文件名称、启用状态、默认入站/出站操作以及其他设置。

获取特定的防火墙配置文件

您可以使用-Name参数检索特定的配置文件。有效值为Domain、Private或Public。当您需要检查特定网络类型的设置时,这很有用。该cmdlet返回指定配置文件的详细配置。

firewall2.ps1
Get-NetFirewallProfile -Name "Public"

此命令仅返回公用防火墙配置文件设置。您可以查看此网络类型的防火墙是否已启用及其默认操作。

PS C:\> .\firewall2.ps1

Name                  : Public
Enabled               : True
DefaultInboundAction  : Block
DefaultOutboundAction : Allow
AllowLocalFirewallRules : False
AllowLocalIPsecRules  : False
LogFileName           : %systemroot%\system32\LogFiles\Firewall\pfirewall.log
LogMaxSizeKilobytes   : 4096
LogAllowed           : False
LogBlocked           : True

检查防火墙配置文件状态

要快速检查防火墙配置文件是否已启用,请将-Name参数与Select-Object一起使用。这会过滤输出,仅显示配置文件名称和启用状态。这对于需要验证防火墙状态的脚本很有用。

firewall3.ps1
Get-NetFirewallProfile -Name "Private" | Select-Object Name, Enabled

此命令显示专用配置文件防火墙是否已启用。输出已简化为仅配置文件名称及其启用状态(True/False)。

格式化防火墙配置文件输出

要获取详细信息,请使用Format-List显示所有属性。这将显示配置文件的所有可用配置选项。您可以看到日志设置、默认操作和其他高级配置。

firewall4.ps1
Get-NetFirewallProfile -Name "Domain" | Format-List *

此命令显示域防火墙配置文件的所有属性。输出包括日志路径、最大日志大小和其他详细设置。

过滤已启用的防火墙配置文件

您可以使用Where-Object根据配置文件是否已启用进行过滤。这有助于确定哪些配置文件当前处于活动状态。$_变量表示管道中的当前配置文件。

firewall5.ps1
Get-NetFirewallProfile | Where-Object { $_.Enabled -eq $true }

此命令仅列出已启用的防火墙配置文件。这对于审计哪些网络类型当前具有活动的防火墙保护很有用。

来源

PowerShell 文档

本教程介绍了PowerShell中的Get-NetFirewallProfile cmdlet。

作者

我的名字是Jan Bodnar,我是一名充满激情的程序员,拥有丰富的编程经验。自2007年以来,我一直在撰写编程文章。至今,我已撰写了1400多篇文章和8本电子书。我在教授编程方面拥有十多年的经验。

列出 所有 PowerShell 教程