使用PowerShell禁用所有不需要的Windows防火墙规则

问题描述 投票:0回答:1

在Windows防火墙中,我创建了某些规则,这些规则使我可以更好地控制PC。但是,由于Windows和其他应用程序不断添加我不需要的规则,因此我的规则变得有些用处。我试图防止这种情况的发生,但是我发现的唯一方法是使用第三方工具(如Tinywall),这并不是我想要的。]

因此,要解决此问题,我想创建一个PowerShell脚本,该脚本将禁用并重命名我未添加的所有规则。这样,我可以轻松管理它们。

我添加的规则很容易识别,因为它们都是以某些词开头的。在这种情况下,我们假设它以“样本XYZ”或“样本ABC”开头。

  • 样本XYZ-Windows更新
  • 样本ABC-MPC-HC
  • 示例ABC-Firefox
  • 样本XYZ-Windows新闻

  • 到目前为止,这是我所做的。

在此部分中,脚本将过滤我创建的所有规则,然后将禁用并阻止所有其他规则。令我惊讶的是,这正在按预期进行。

# This will get all firewall rules
$NR = Get-NetFirewallRule  

# This will exclude all the rules added by the user
$NR = $NR | Where-Object DisplayName -NotMatch "Sample ABC"  
$NR = $NR | Where-Object DisplayName -NotMatch "Sample XYZ"  

# Disable all other rules that are not added by the user
$NR | Set-NetFirewallRule -Enabled False

# Set rules' action to block
$NR | Set-NetFirewallRule -Action Block

这些是不起作用的部分。

任务:在规则显示名称的开头添加自定义单词示例:如果规则名称为“ Microsoft Photos”,则它将重命名为“ IDWTFR-Microsoft Photos”。

# Add a custom word to the beginning of the rules' display name
# Custom word = 'IDWTFR - '
# Attempt 01: Fail
$NR | Set-NetFirewallRule -DisplayName "IDWTFR - " + $NR.DisplayName

# Attempt 02: Fail
$NR = $NR | ForEach-Object -MemberName DisplayName "IDWTFR - " + $NR.DisplayName | Set-NetFirewallRule

[任务:将不需要的规则添加到名为“垃圾规则”的组。

# Add to a group
# Attempt 01: Fail
$NR | Set-NetFirewallRule -DisplayGroup "Junk Rules"


为了更清楚一点,这是我正在尝试做的摘要。
+-----------------------------+---------------------------+----------------+----------------+----------------+-------------+
|          Rule Name          |       New Rule Name       |     Group      |     Action     |     Status     | Created by  |
+-----------------------------+---------------------------+----------------+----------------+----------------+-------------+
| Sample XYZ - Windows Update | Same as before            | Same as before | Same as before | Same as before | User        |
| Sample ABC - MPC-HC         | Same as before            | Same as before | Same as before | Same as before | User        |
| Sample ABC - Firefox        | Same as before            | Same as before | Same as before | Same as before | User        |
| Sample XYZ - Windows News   | Same as before            | Same as before | Same as before | Same as before | User        |
| Microsoft Photos            | IDWTFR - Microsoft Photos | Junk Rules     | Block          | Disable        | Not by user |
| App Installer               | IDWTFR - App Installer    | Junk Rules     | Block          | Disable        | Not by user |
| Feedback Hub                | IDWTFR - Feedback Hub     | Junk Rules     | Block          | Disable        | Not by user |
| Microsoft Edge              | IDWTFR - Microsoft Edge   | Junk Rules     | Block          | Disable        | Not by user |
+-----------------------------+---------------------------+----------------+----------------+----------------+-------------+


我是PowerShell的新手,所以我们将不胜感激。谢谢。

在Windows防火墙中,我创建了某些规则,这些规则使我可以更好地控制PC。但是,由于Windows和其他应用程序不断添加我不需要的规则,因此我的规则变得有些用处。 ...

powershell windows-10 windows-firewall
1个回答
1
投票

由于这是您的特殊用例,因此在不建立尽可能与此处显示的环境相近的环境的情况下进行验证将是一个挑战。我无能为力。

© www.soinside.com 2019 - 2024. All rights reserved.