PowerShell Disable-NetFirewallRule
最后修改:2025 年 2 月 15 日
本文介绍PowerShell中的Disable-NetFirewallRule cmdlet。它用于禁用现有的Windows防火墙规则。此cmdlet是NetSecurity模块的一部分。
防火墙规则基础知识
Windows防火墙规则控制进出您计算机的网络流量。每条规则都有名称、方向、操作和协议等属性。规则可以启用或禁用以控制其效果。Disable-NetFirewallRule cmdlet可修改规则状态。
基本的Disable-NetFirewallRule用法
禁用防火墙规则最简单的方法是使用其名称。使用-Name参数后跟规则名称。该规则将被禁用但不会被删除。您可以使用Get-NetFirewallRule进行验证更改。
Disable-NetFirewallRule -Name "Remote Desktop - User Mode (TCP-In)"
此命令禁用远程桌面入站规则。该规则仍然存在于防火墙配置中,但不会处于活动状态。修改防火墙规则需要管理员权限。
按名称禁用多个规则
您可以通过提供多个名称来一次禁用多个规则。用逗号分隔规则名称。可以使用通配符来匹配多个规则。这对于对相关规则进行批量操作很有用。
Disable-NetFirewallRule -Name "Remote*", "CoreNet*"
此命令禁用所有以“Remote”或“CoreNet”开头的规则。该操作同时影响多个规则。在禁用规则之前,请务必先进行验证。
PS C:\> .\disable2.ps1 Name : Remote Desktop - User Mode (TCP-In) Enabled : False Direction : Inbound Profile : Any Action : Allow Name : Core Networking - DNS (UDP-Out) Enabled : False Direction : Outbound Profile : Any Action : Allow
按显示名称禁用规则
也可以使用规则的显示名称来禁用规则。-DisplayName参数接受通配符的的部分匹配。当您知道规则的显示文本但不知道其确切名称时,这将很有帮助。
Disable-NetFirewallRule -DisplayName "File and Printer Sharing*"
此命令禁用所有显示名称以“文件和打印机共享”开头的规则。星号用作通配符进行部分匹配。显示名称通常比规则名称提供更易读的描述。
通过管道输入禁用规则
可以通过将规则从Get-NetFirewallRule管道化来禁用规则。这允许在禁用之前进行过滤。您可以将其与Where-Object结合使用进行复杂过滤。管道方法对于选择性操作非常强大。
Get-NetFirewallRule -Direction Inbound | Disable-NetFirewallRule
此命令禁用所有入站防火墙规则。Get-NetFirewallRule cmdlet检索规则,然后将它们管道传递给Disable-NetFirewallRule。对类似这样的广泛操作要谨慎。
禁用带确认的规则
为了安全起见,您可以在禁用规则之前添加确认提示。使用-Confirm参数请求用户批准。这可以防止意外修改。提示会显示哪些规则将受到影响。
Disable-NetFirewallRule -Name "Remote*" -Confirm
此命令在禁用任何匹配规则之前会提示确认。用户必须输入“Y”才能继续,或输入“N”取消。推荐在生产环境中使用此方法。
来源
在本文中,我们介绍了PowerShell中的Disable-NetFirewallRule cmdlet。
作者
列出 所有 PowerShell 教程。