PowerShell附带了一个Netsecurity网络安全模块,该模块可配置Windows防火墙,用户可以使用Netsecurity网络安全模块中的新网络防火墙规则功能(New NetFirewallRule)在Windows中使用PowerShell阻止IP或网站。此功能允许创建新的入站或出站防火墙规则,并将该规则添加到目标计算机。
虽然屏蔽IP地址范围非常有效,但屏蔽网站或域却很棘手,这是因为可能有多个IP连接到该域,虽然可以阻止它们,但DNS解析器每次查询时都可以找出不同的IP。此外,有时相同的IP可能被相关服务使用,阻止该IP也意味着阻止其他服务。
阻止本地或互联网IP地址
阻止网站或域
提示:需要管理员权限才能执行这些操作。
使用此命令,可以使用单个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
注意,可以使用任何你可以记住的内容来替换XYZ.com的IP地址,RemoteAddress选项末尾提到的IP地址将被阻止,任何解决此问题的网站或服务都将被阻止。如果IP是本地网络IP地址,则可以用LocalAddress选项替换RemoteAddress选项。
执行完成后,收到状态消息“已成功从存储库中解析了规则(65536)”。打开Windows防火墙,然后检查该条目是否可用。确认后,就可以使用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
需要提醒注意的是,如果可以使用多个IP地址解析网站,那么这种方法就行不通了。
使用PowerShell命令很简单。如果你曾经使用过命令提示符,那么它们的操作是完全一样的。希望大家能够成功地在Windows中使用PowerShell阻止IP或网站。无论何时你想删除它们,都可以从Windows防火墙或使用remove NetFirewallRule命令删除它们,简单快捷。