如何使用Windows PowerShell管理防火墙规则

如何使用Windows PowerShell管理防火墙规则

Windows Defender 防火墙预装在所有 Windows 计算机上。 您可以在 Windows 防火墙中创建用于不同目的的规则,例如 阻止特定应用程序访问互联网。 本文展示了如何使用Windows PowerShell管理防火墙规则。

使用 PowerShell 管理 Windows 防火墙规则

推荐:如何修复Windows Connection to the Remote Computer Could Not Be Established错误

如何使用 PowerShell 管理 Windows 防火墙规则

您可以轻松地 配置Windows防火墙 规则通过 Windows Defender 防火墙和高级安全 用户界面。 您可以通过控制面板启动它。 现在,您还可以 使用 PowerShell 管理 Windows 防火墙规则。 在本文中,我们将向您展示如何做到这一点。

要通过 PowerShell 管理 Windows 防火墙中的规则,您必须使用 网络防火墙规则 cmdlet,它是 NetSecurity 模块的一部分。 您可以通过在 Windows PowerShell 中执行以下命令来查看所有 NetSecurity cmdlet:

Get-Command -Module NetSecurity

所有 NetSecurity cmdlet

Windows PowerShell 具有以下三种类型的配置文件:

  • 域名简介
  • 私人档案
  • 公开资料

Windows 防火墙配置文件

默认情况下,Windows 防火墙对于所有这三个配置文件均保持打开状态。 您可以通过打开 具有高级安全性的 Windows Defender 防火墙 通过控制面板或在运行命令框中使用以下命令的 UI:

wf.msc

请注意,您必须 以管理员身份启动 Windows PowerShell,否则命令将不会执行,并且您将在 PowerShell 中收到错误消息。

如果要查看特定 Windows 防火墙配置文件的设置,请使用以下命令:

Get-NetFirewallProfile -Name <name of the profile>

查看 Windows 防火墙配置文件设置

在上面的命令中,正确输入配置文件的名称。 例如,如果要查看 Windows Defender 防火墙中域配置文件的设置,命令将为:

Get-NetFirewallProfile -Name Domain

使用 PowerShell 启用或禁用 Windows 防火墙

让我们看看如何使用 PowerShell 启用或禁用 Windows 防火墙。 如果要禁用所有配置文件的 Windows 防火墙,请使用以下命令:

Set-NetFirewallProfile -All -Enabled False

如果要为特定配置文件启用或禁用 Windows 防火墙,则必须将上述命令中的 All 替换为该配置文件名称。

禁用 Windows 防火墙公共配置文件 PowerShell

例如,如果您想禁用公共配置文件的 Window 防火墙,命令将为:

Set-NetFirewallProfile -Profile Public -Enabled False

检查 Windows 防火墙配置文件状态

您可以使用以下命令检查 Windows 防火墙配置文件的状态:

Get-NetFirewallProfile | Format-Table Name, Enabled

正如您在上面的屏幕截图中看到的,PowerShell 将 Windows 防火墙公共配置文件的状态显示为 False,这意味着该配置文件的 Windows 防火墙已禁用。

禁用 Windows 防火墙公共配置文件

您还可以在具有高级安全 UI 的 Windows Defender 防火墙中检查相同内容。 如果要启用禁用的配置文件,则必须使用 True 代替 False。 例如,这里我们禁用了 Windows 防火墙中的公共配置文件。 现在,要重新启用它,命令是:

Set-NetFirewallProfile -Profile Public -Enabled True

如果您已禁用所有 Windows Defender 配置文件并且想要再次启用所有这些配置文件,请使用以下命令:

Set-NetFirewallProfile -All -Enabled True

使用 PowerShell 创建和管理 Windows 防火墙规则

现在,让我们看看如何使用 PowerShell 创建和管理 Windows 防火墙规则。 如果您使用第三方防病毒软件并且您的 防火墙 由该防病毒软件管理,PowerShell 命令将不起作用。 您将能够成功创建规则,但如果您的防火墙由第三方防病毒软件管理,这些规则将不起作用。

如果要创建新的 Windows 防火墙规则,则必须使用以下 cmdlet:

New-NetFirewallRule

假设您想阻止某个程序通过您的 WiFi 配置文件访问互联网; 使用以下命令:

New-NetFirewallRule -Program “program path” -Action Block -Profile <profile name> -DisplayName “write display name here” -Description “write description here” -Direction Outbound

上述命令将为 Windows Defender 防火墙中所需的程序创建出站规则。 在上面的命令中,替换 程序路径 与程序的正确路径和 个人资料名称 使用正确的 Windows 防火墙配置文件。 显示名称是防火墙规则的名称,描述是可选的。

使用 PowerShell 阻止程序 Windows 防火墙

例如,如果您想阻止 Chrome 浏览器访问私人配置文件,则命令将为:

New-NetFirewallRule -Program “C:\Program Files\Google\Chrome\Application\chrome.exe” -Action Block -Profile Public -DisplayName “Block Chrome browser” -Description “Chrome browser blocked” -Direction Outbound

如果您不想向防火墙规则添加说明,可以删除 -描述“Chrome浏览器被阻止” 上述命令的一部分。 上述命令仅适用于公共配置文件。 因此,如果您的网络连接配置文件不是公共的,则此命令将不起作用。 您可以在 Windows 设置中查看 WiFi 连接的配置文件。 以下步骤将帮助您:

查看网络配置文件类型

  1. 打开 Windows 11/10 设置。
  2. 网络和互联网 > Wi-Fi
  3. 选择您的互联网连接。
  4. 扩展您的网络连接 特性 标签。

您将在那里看到网络配置文件类型。

如果您想要阻止某个程序,例如针对所有网络配置文件使用 Google Chrome,请键入以逗号分隔的所有配置文件名称。 因此,命令将是:

New-NetFirewallRule -Program “C:\Program Files\Google\Chrome\Application\chrome.exe” -Action Block -Profile Domain, Private, Public -DisplayName “Block Chrome browser” -Description “Chrome browser blocked” -Direction Outbound

请注意,您必须按照上述命令中写入的确切顺序键入配置文件名称,即“域”、“私有”、“公共”。 否则,您将收到错误。

同样,您可以使用 PowerShell 在 Windows Defender 防火墙中创建规则来阻止特定网站。 但为此,您应该知道该特定网站的 IP 地址。 您可以使用以下命令获取网站的IP地址:

nslookup <website name>

如果您要阻止的网站显示多个 IP 地址,则必须写下所有这些 IP 地址。 用逗号分隔所有 IP 地址。

用于在 Windows Defender 防火墙中创建阻止网站的规则的命令是:

New-NetFirewallRule -DisplayName "Block Website" -Description "Website Blocked" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress IP1, IP2

上面的示例显示了如何用逗号分隔特定网站的 IP 地址。

使用 Windows PowerShell 启用、禁用和删除防火墙规则

如果要启用、禁用或删除防火墙规则,必须在 PowerShell 中使用以下 cmdlet:

Enable-NetFirewallRule
Disable-NetFirewallRule
Remove-NetFirewallRule

删除防火墙规则 PowerShell

在上述每个 cmdlet 中,您必须输入防火墙规则的正确名称。 假设您创建了一条名为“防火墙规则”的防火墙规则 阻止铬 现在你想删除它,那么命令将是:

Remove-NetFirewallRule -DisplayName 'Block Chrome'

如何在 PowerShell 中查看 Windows 防火墙规则?

如果您想查看您在 Windows 防火墙中创建的出站阻止规则,您必须使用以下命令:

Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound

查看 Windows 防火墙规则 PowerShell

上述命令将仅列出活动的防火墙规则。 如果要查看禁用的防火墙规则,请将上述命令中的 True 替换为 False。

就是这样。 我希望这有帮助。

如何在 PowerSell设置防火墙规则?

您可以使用不同的 NetFirewallRule cmdlet 在 PowerShell 中设置防火墙规则。 例如,如果您想创建新的防火墙规则,则必须使用 新的NetFirewall规则 cmdlet。


发表评论