通过 Powershell 导出/导入特定防火墙规则

通过 Powershell 导出/导入特定防火墙规则

如何导出和导入特定的 Windows 防火墙规则(入站和出站)?

我可以进出口政策但它将使用所有规则,而不是特定规则。与导出列表,它可以以纯 CSV 文件的形式导出所有入站或出站规则列表,但这没有帮助,因为没有办法将其导入回来。

netsh firewall我也看了,netsh advfirewall firewall但他们似乎也没有导出/导入单独规则的选项。

我只是想知道是否有可能将其存档。我使用的是 Windows 7 Professional

答案1

从 Windows 注册表中转到以下项并将其导出到 *.reg 文件:

HKLM\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules

在任何文本编辑器中编辑该文件并删除您不想要的条目。或者您可以转到 WFwAS,删除任何其他规则并仅保留您想要的规则。然后执行上述步骤。您不需要编辑 reg 文件,因为它已经只包含您想要的内容。

将 reg 文件导入到您需要的计算机上,然后您将只添加您选择的规则。就这样。

或者您可以尝试 Windows 防火墙控制,它具有执行此操作的功能。它可以仅以 XML 格式导出和导入选定的规则:

https://www.binisoft.org/wfc

答案2

另一种方法是将规则导出为 Tab 或 CSV - 也可以在“高级 Windows 防火墙”中导出。选择“导出列表...”选项。您可以选择 TAB 或 CSV。您确实会获得整个列表,但可以删除所有其他列表,然后使用 Notepad++ 并将分隔符替换为 \r\n 选项,这将产生列表或者在 excel 中运行数据透视表以为您提供列表。

有点晚了,但希望它能对其他人有所帮助。

答案3

您可以仅选择要导出的规则,然后单击“导出列表”按钮,当资源管理器窗口打开时,您可以勾选“仅导出突出显示的规则”选项(就在文件名输入字段下方)

答案4

通过 Powershell 导出/导入特定防火墙规则

来源:https://gallery.technet.microsoft.com/scriptcenter/Powershell-to-export-and-23287694/view/Reviews

在那里找到 ExportImportFirewallRules.zip(包括删除防火墙规则的脚本)。

与注册表操作一样,首先进行备份(在源计算机和目标计算机上!)。您可以按如下方式备份/导出完整的防火墙集:右键单击防火墙目录中最顶部的项目(=本地计算机上具有高级安全性的 Windows Defender 防火墙)选择导出策略...保存 .wfw 文件(例如 AllFirewallRulesMachineName.wfw)

如果有必要,在 Powershell 中激活执行策略(以管理员身份运行):

set-executionpolicy unrestricted

导出所需的规则。导出脚本可以采用三个参数:

  • -名称:要处理的规则的显示名称 - 可以使用通配符 * - 默认为 *
  • -CSVFile:输出文件-默认为FirewallRules.csv
  • -JSON:使用 JSON 而不是 CSV(默认为 $FALSE)

例子:

.\Export-FirewallRules.ps1 '*Remote*' RemoteRules.json -json

请注意,同一个名字可以出现多次!例如:UDP 协议的出站“Spotify 音乐”规则,TCP 协议的出站“Spotify 音乐”规则。当然,如果需要,您可以预先重命名规则以使其唯一。

导入脚本采用两个参数:

  • -CSVFile:输入文件-默认为FirewallRules.csv
  • -JSON:使用 JSON 而不是 CSV(默认为 $FALSE)

导入规则如下:示例

.\Import-FirewallRules.ps1 RemoteRules.json -json

相关内容