当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何使用 PowerShell 管理 Windows 防火墙规则

作者:精品下载站 日期:2024-12-14 06:33:51 浏览:11 分类:玩电脑

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


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

[玩转系统] 如何使用 PowerShell 管理 Windows 防火墙规则

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

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

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

Get-Command -Module NetSecurity

[玩转系统] 如何使用 PowerShell 管理 Windows 防火墙规则

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

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

[玩转系统] 如何使用 PowerShell 管理 Windows 防火墙规则

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

wf.msc

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

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

Get-NetFirewallProfile -Name <name of the profile>

[玩转系统] 如何使用 PowerShell 管理 Windows 防火墙规则

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

Get-NetFirewallProfile -Name Domain

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

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

Set-NetFirewallProfile -All -Enabled False

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

[玩转系统] 如何使用 PowerShell 管理 Windows 防火墙规则

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

Set-NetFirewallProfile -Profile Public -Enabled False

[玩转系统] 如何使用 PowerShell 管理 Windows 防火墙规则

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

Get-NetFirewallProfile | Format-Table Name, Enabled

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

[玩转系统] 如何使用 PowerShell 管理 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

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

[玩转系统] 如何使用 PowerShell 管理 Windows 防火墙规则

  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 中允许 VPN 通过防火墙。

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

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

Enable-NetFirewallRule
Disable-NetFirewallRule
Remove-NetFirewallRule

[玩转系统] 如何使用 PowerShell 管理 Windows 防火墙规则

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

Remove-NetFirewallRule -DisplayName 'Block Chrome'

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

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

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

[玩转系统] 如何使用 PowerShell 管理 Windows 防火墙规则

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

就是这样。我希望这有帮助。如何删除重复的 Windows 防火墙规则

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

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

继续阅读:如何将 Windows 防火墙设置恢复或重置为默认值。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯