В моем Windows Брандмауэре я создал определенные правила, которые дают мне больше контроля над моим P C. Но мои правила стали несколько бесполезными, поскольку Windows и другие приложения продолжают добавлять правила, которые мне не нужны.
Я пытался предотвратить это, но единственный способ, который я нашел, - это использовать сторонний инструмент, такой как Tinywall, который не совсем то, что я ищу.
Итак, чтобы исправить это, я хочу создать сценарий PowerShell, который будет отключать и переименовывать все правила, которые не добавляются меня. Таким образом, я могу легко ими управлять.
Правила, которые я добавил, могут быть легко распознаны, потому что все они начинаются с определенных слов.
В этом случае, давайте предположим, что это начинается с 'Образец XYZ 'или' Образец AB C '.
- Образец XYZ - Windows Обновление
- Образец AB C - MP C -H C
- Образец AB C - 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, поэтому любая помощь будет оценена. Спасибо.