标题: [问题求助] win7下使用powershell添加防火墙规则 [打印本页]
作者: 5i365 时间: 2022-2-27 10:10 标题: win7下使用powershell添加防火墙规则
在win10下有powershell添加防火墙规则的命令 New-NetFirewallRule
在win7没有, 但我想在win7下用powershll来添加一个简单的防火墙阻止规则, 即, 禁止 火狐浏览器访问互联网 ,就是把这个文件加到防火墙里就了 "C:\Program Files\Mozilla Firefox\firefox.exe" 请求高手支招, 提前感谢!!!
搜索到了下面的代码供参考,它可避免增加重复的防火墙规则
平时, 我是使用下面的一款小工具实现上面的功能的, 但是要下载它, 感觉不方便
https://www.sordum.org/9470/windows-update-blocker-v1-7/- $RULENAME1 = 'Domain Controllers'
- $Rule = netsh advfirewall firewall show rule name="$RULENAME1" $nul
-
- if ("$Rule" -notmatch "No rules match") {
-
- echo "Rule "$RULENAME1" already exist."
- echo "Hey, you already got a out rule by that name, you cannot put another one in!"
-
- } else {
- echo Rule "$RULENAME1" not exist. Creating...
- netsh advfirewall firewall add rule name="$RULENAME1" dir=in action=allow remoteip=10.10.10.10
- }
复制代码
作者: idwma 时间: 2022-2-27 16:17
netsh advfirewall firewall add rule ?- $RULENAME1 = 'Domain Controllers'
- $Rule = netsh advfirewall firewall show rule name="$RULENAME1" $nul
-
- if ($?) {
-
- echo "Rule "$RULENAME1" already exist."
- echo "Hey, you already got a out rule by that name, you cannot put another one in!"
-
- } else {
- echo Rule "$RULENAME1" not exist. Creating...
- netsh advfirewall firewall add rule name="$RULENAME1" dir=out action=block program="C:\Program Files\Mozilla Firefox\firefox.exe"
- }
复制代码
作者: 5i365 时间: 2022-2-27 19:11
回复 2# idwma
感谢大侠帮忙, 刚刚执行试了一下, 显示如下提示, 最后有 确定 2字, 我去防火墙规则看了一下,
出站里面有那个规则名称了, 但是没有出现在 Firewall App Blocker 这个小软件的列表里, 对比了一下, 发现使用这个小工具阻止exe程序后, 实际是在出站和入站里面全部都设置了禁止规则, 则规则名称就是软件的名字, 我估计出站和入站规则都添加后, 应该就出现在 Firewall App Blocker 这个小软件的列表里了
问题来了:
怎样在现在的基础上添加 禁止入站 规则,
把 dir=out 改为 dir=in ? 能不能在一句里同时设置?
怎样从路径中取程序名? 我用下面的方法, 会有扩展名
$path = "C:\Program Files (x86)\EdrawSoft\MindMaster\MindMaster.exe"
Split-Path $path -Leaf
作者: idwma 时间: 2022-2-27 20:02
回复 3# 5i365 - 'in','out'|%{netsh advfirewall firewall add rule name="$RULENAME1" dir=$_ action=block program="C:\Program Files\Mozilla Firefox\firefox.exe"}
- (gi "C:\Program Files (x86)\EdrawSoft\MindMaster\MindMaster.exe").basename
复制代码
作者: 5i365 时间: 2022-2-27 21:12
回复 4# idwma
感谢大侠帮忙完善, 贴出完善后的代码, 供坛友参考:- $pp = "C:\Program Files\Mozilla Firefox\firefox.exe"
-
- $Rule_name = $((gi $pp).basename)
- $Rule = netsh advfirewall firewall show rule name="$Rule_name" $nul
-
- if ($?)
- {
- echo "$Rule_name 规则已存在"
- }
- else
- {
- echo "$Rule_name 规则不存在, 创建中..."
- 'in', 'out' | foreach{ netsh advfirewall firewall add rule name="$Rule_name" dir=$_ action=block program=$pp }
- }
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |