PowerShell поставляется с модулем Netsecurity, который позволяет настраивать брандмауэр Windows . Вы можете использовать функцию — New-NetFirewallRule — в Netsecurity, чтобы заблокировать IP-адрес или веб-сайт с помощью PowerShell в Windows. Эта функция позволяет создать новое правило для входящего или исходящего брандмауэра и добавить правило на целевой компьютер.
Хотя блокировка диапазонов IP-адресов работает идеально, блокировать веб-сайт или домен сложно. Это связано с тем, что к домену может быть подключено несколько IP-адресов, и, хотя вы можете предотвратить их, распознаватель DNS может каждый раз запрашивать другой IP-адрес. Кроме того, иногда один и тот же IP-адрес может использоваться соответствующими службами, и блокирование этого IP-адреса также будет означать блокирование других служб.
- Блокировать локальные или интернет-IP-адреса
- Блокировка сайта или доменных имен
Вам понадобятся права администратора для их выполнения.
1] Блокировка IP или диапазона с помощью PowerShell
Используя эту команду, вы можете использовать один IP-адрес или диапазон IP-адресов. Выполните следующую команду в PowerShell.
New-NetFirewallRule -DisplayName "Block XYZ.com IP address"
-Direction Outbound –LocalPort Any -Protocol TCP -Action Block
-RemoteAddress 146.185.220.0/23
Вы можете заменить IP-адрес Block XYZ.com на все, что вы можете вспомнить, или чтобы его было легко понять, когда вы оглядываетесь на него. IP-адрес, указанный в конце параметра RemoteAddress, будет заблокирован. Любой веб-сайт или служба, которая разрешает это, будет заблокирована. Вы можете заменить опцию RemoteAddress опцией LocalAddress, если IP является IP-адресом локальной сети.
По завершении выполнения вы должны получить сообщение о состоянии: «Правило было успешно проанализировано из хранилища. (65536)». Откройте брандмауэр Windows и проверьте, доступна ли запись. После подтверждения вы сможете добавить больше с помощью PowerShell.
2] Блокировка веб-сайта или домена с помощью PowerShell
Поскольку функция не поддерживает блокировку URL, у нас есть два варианта. Сначала необходимо запросить все возможные IP-адреса этого домена и заблокировать их. Второе — найти известные официальные диапазоны IP-адресов и заблокировать их. Последний имеет меньшие шансы случайно заблокировать другие службы по сравнению с первым. Тем не менее, если блокировка домена необходима, вы всегда можете использовать другое программное обеспечение для их блокировки.
Resolve-DnsName "facebook.com"
Обратите внимание на IP-адрес, который мы будем использовать во втором методе
New-NetFirewallRule -DisplayName "Block XYZ.com IP address" -Direction Outbound –LocalPort Any -Protocol TCP -Action Block -RemoteAddress 146.185.220.0/23
Когда я использовал это с YouTube, он не работал, хотя прямой IP был заблокирован. Когда я использовал это с Facebook, это работало. Таким образом, если веб-сайт может быть разрешен с использованием нескольких IP-адресов, этот метод не будет работать.
Использование команд PowerShell не вызывает затруднений. Если вы когда-либо использовали командную строку, это так же хорошо; Я надеюсь, что вы смогли успешно заблокировать IP или веб-сайт с помощью PowerShell в Windows. В любое время, когда вы хотите удалить их, вы можете сделать это из брандмауэра Windows или использовать команду Remove-NetFirewallRule.