windows bat脚本,使用命令行增加/删除防火墙:入站-出站,规则

常常手动设置防火墙的入站或出站规则,比较麻烦,其实可以用命令行搞定。
下面是禁用BCompare.exe连接网络的例子:

@ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(powershell -Command "Start-Process '%~dpnx0' -Verb RunAs"&&EXIT)rem %~sdpnx0 use short names
rem @ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(powershell -Command "Start-Process '%~sdpnx0' -Verb RunAs"&&EXIT)
rem %~dpnx0 use long names
rem @ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(powershell -Command "Start-Process '%~dpnx0' -Verb RunAs"&&EXIT)rem 获取当前脚本文件的完整路径,并切换到BCompare.exe程序所在的目录
set current_path=%~dp0
rem echo current_path=%current_path%rem 设置变量“xpath”的值为BCompare.exe程序的绝对路径
set xpath="%current_path%BCompare.exe"
rem echo xpath="%current_path%BCompare.exe"rem 删除之前可能存在的防火墙规则,并忽略错误信息
echo "删除-BCompare禁止联网-出站"
@netsh advfirewall firewall delete rule name="BCompare禁止联网-出站"
echo "删除-BCompare禁止联网-入站"
@netsh advfirewall firewall delete rule name="BCompare禁止联网-入站"rem 添加新的防火墙规则,禁止BCompare.exe程序的出站和入站网络流量
echo "添加,BCompare禁止联网-出站 规则"
netsh advfirewall firewall add rule name="BCompare禁止联网-出站" dir=out action=block profile=any program=%xpath% enable=yes
echo "添加,BCompare禁止联网-入站 规则"
netsh advfirewall firewall add rule name="BCompare禁止联网-入站" dir=in  action=block profile=any program=%xpath% enable=yes
pause

命令add rule 解析

创建的规则类型
netsh advfirewall firewall add rule 接如下参数:

  • dir=in: 还可选out,in是入站(inbound)的。只适用于从外部网络向本地计算机发送的数据流量,也就是别人访问你的计算机的情况;out 只适用于出站(outbound)的网络流量,也就是从本地计算机向外部网络发送的数据。
  • program="C:\xxx.exe"
  • protocol=tcp: 还可选0-255|icmpv4|icmpv6|icmpv4:type,code|icmpv6:type,code|tcp|udp|any (default=any)
  • localip=any:还可选<IPv4 address>|<IPv6 address>|<subnet>|<range>|<list>
  • localport=0-65535:其他还有<port range>[,...]|RPC|RPC-EPMap|IPHTTPS|any (default=any)
  • action=allow:还可选block|bypass。规则允许(allow)这种网络流量通过防火墙,或阻止(block)或绕过(bypass)它。
  • profile=any:还可选public|private|domain|any[,...],所有(any)的防火墙配置文件,包括域(domain)、私有(private)和公共(public)。
  • enable=yes:还可选no,(default=yes)表示这个规则yes启用(enable)的,而不是no禁用的。平时可以不写这一项。

例子:

添加,BCompare禁止联网-出站 规则
netsh advfirewall firewall add rule name="BCompare禁止联网-出站" dir=out action=block profile=any program=%xpath% enable=yes
添加,BCompare禁止联网-入站 规则
netsh advfirewall firewall add rule name="BCompare禁止联网-入站" dir=in  action=block profile=any program=%xpath% enable=yes入站规则
netsh advfirewall firewall add rule name="My Application" dir=in action=allow program="C:\MyApp\MyApp.exe" enable=yes
出站规则
netsh advfirewall firewall add rule name="Remote PortNumber" dir=out action=allow protocol=TCP localport=1234

使用管理员方式运行bat

rem %~sdpnx0 use short names
@ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(powershell -Command "Start-Process '%~sdpnx0' -Verb RunAs"&&EXIT)rem %~dpnx0 use long names
@ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(powershell -Command "Start-Process '%~dpnx0' -Verb RunAs"&&EXIT)

命令是用来检测当前用户是否具有管理员权限,如果没有,就以管理员身份重新运行该脚本。具体的解释如下:

  • @ECHO OFF表示关闭回显功能,不显示命令本身。
  • (PUSHD "%~DP0")表示将当前目录切换到批处理文件所在的目录,%~DP0是一个参数扩展,表示批处理文件的驱动器和路径。
  • (REG QUERY "HKU\S-1-5-19">NUL 2>&1)表示查询注册表中的一个键值,这个键值是系统默认的管理员账户的SID。如果查询成功,说明当前用户具有管理员权限。>NUL 2>&1表示将标准输出和错误输出都重定向到空设备,即不显示任何信息。
  • ||(powershell -Command "Start-Process '%~sdpnx0' -Verb RunAs"&&EXIT)表示如果前面的命令失败,即当前用户不具有管理员权限,就执行后面的命令。后面的命令是用powershell来启动一个新的进程,这个进程就是当前的批处理文件,但是用短文件名代替长文件名,%~sdpnx0是一个参数扩展,表示批处理文件的完整路径,但用短文件名格式。-Verb RunAs表示以管理员身份运行这个进程。&&EXIT表示如果成功启动了新的进程,就退出当前的进程。

想要修改这个脚本命令为长路径的几种办法,有几种可能的方法:

  • 可以不使用短文件名格式,而直接使用长文件名格式。这样就可以把%~sdpnx0改为%~dpnx0
  • 可以不使用powershell来启动新的进程,而使用runas命令。这样就可以把(powershell -Command "Start-Process '%~sdpnx0' -Verb RunAs")改为(runas /user:administrator "%~sdpnx0")。但是这种方法需要输入管理员账户的密码。
  • 可以不使用reg query来检测管理员权限,而使用net session或者whoami命令。这样就可以把(REG QUERY "HKU\S-1-5-19">NUL 2>&1)改为(NET SESSION>NUL 2>&1)或者(WHOAMI /GROUPS | FINDSTR /C:\"S-1-5-32-544\">NUL 2>&1)

(1) 批处理实战篇—修改文件变量、参数_bat 修改变量的值_BetaGarf的博客-CSDN博客. https://blog.csdn.net/Joker_N/article/details/90375203.
(2) .bat批处理命令常用操作大全 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/446337414.
(3) BAT批处理基本命令总结 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/54572985.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/41908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web即时通讯系统与APP即时通讯系统有什么区别?

随着互联网的不断发展&#xff0c;即时通讯技术也在不断地完善和发展&#xff0c;其中Web即时通讯系统和APP即时通讯系统成为了人们广泛使用的两种通讯方式。那么&#xff0c;这两者之间究竟有什么区别呢&#xff1f;在本文中&#xff0c;我们将为您详细介绍这两种通讯方式的区…

如何将labelImg打包成exe

最近整理一下数据标注这块的内容&#xff0c;在目标检测和目标分割里面用的最多的标注工具labelimg&#xff0c;labelme labelimg主要用于目标检测领域制作自己的数据集&#xff0c;如&#xff1a;YOLO系列目标检测模型 labelme主要用于图像分割领域制作自己的数据集&#xf…

如何仿写简易tomcat 实现思路+代码详细讲解

仿写之前&#xff0c;我们要搞清楚都要用到哪些技术 自定义注解&#xff0c;比如Tomcat使用的是Servlet&#xff0c;我们可以定义一个自己的MyServlet构造请求体和返回体&#xff0c;比如tomcat使用HttpRequest&#xff0c;我们可以自己定义myHttpRequestjava去遍历一个指定目…

Structs新增接口 报错404,找不到资源

起因&#xff1a;最近在一个古老框架structs上开发新功能&#xff0c;由于之前没接触过&#xff0c;故此记录 新增接口&#xff0c; 接口类&#xff1a; Path("/A") Produces({ MediaType.APPLICATION_JSON }) public interface Money {POSTPath("/B")Resu…

数据结构——链表详解

链表 文章目录 链表前言认识链表单链表结构图带头单循环链表结构图双向循环链表结构图带头双向循环链表结构图 链表特点 链表实现(带头双向循环链表实现)链表结构体(1) 新建头节点(2) 建立新节点(3)尾部插入节点(4)删除节点(5)头部插入节点(6) 头删节点(7) 寻找节点(8) pos位置…

网络编程socket.close/output.close/socket.shutdownOutput区别与流程分析

文章目录 三种方法效果的区别套接字Socket关闭与释放的区别服务器执行三种关闭操作后&#xff0c;继续发送/接收数据会发生什么socket.shutdownOutput 关闭连接 找了半个小时没一个说明白的帖子&#xff0c;真的折磨 三种方法效果的区别 socket.close()Socket主动禁止输入和输…

APP外包开发原生和H5的区别

原生开发和H5开发是两种不同的方法&#xff0c;用于创建移动应用程序。它们具有各自的特点、优势和劣势&#xff0c;适用于不同的应用场景。以下是原生开发和H5开发之间的一些主要区别&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发…

DELETE 与TRUNCATE区别

DELETE 与TRUNCATE区别 要清空 PostgreSQL 中的表数据&#xff0c;可以使用 DELETE 或 TRUNCATE 语句。下面是两种方法的示例&#xff1a; 使用 DELETE 语句清空表数据&#xff1a; DELETE FROM 表名;例如&#xff0c;要清空名为 users 的表数据&#xff1a; DELETE FROM u…

未来公文的智能化进程

随着技术的飞速发展&#xff0c;公文——这个有着悠久历史的官方沟通方式&#xff0c;也正逐步走向智能化的未来。自动化、人工智能、区块链...这些现代科技正重塑我们的公文制度&#xff0c;让其变得更加高效、安全和智慧。 1.语义理解与自动生成 通过深度学习和NLP&#xff…

14-案例:购物车

综合案例-购物车 需求说明: 1. 渲染功能 v-if/v-else v-for :class 2. 删除功能 点击传参 filter过滤覆盖原数组 3. 修改个数 点击传参 find找对象 4. 全选反选 计算属性computed 完整写法 get/set 5. 统计 选中的 总价 和 数量 计算属性conputed reduce条件求和 6. 持久化到本…

电子商务公开密钥加密法

(一)定义与应用原理 公开密钥加密法是针对私有密钥加密法的缺陷而提出来的。是电子商务应 用的核心密码技术。所谓公开密钥加密&#xff0c;就是指在计算机网络上甲、乙两用户之间 进行通信时&#xff0c;发送方甲为了保护要传输的明文信息不被第三方窃取&#xff0c;采用密…

从零基础到精通IT:探索高效学习路径与成功案例

文章目录 导语&#xff1a;第一步&#xff1a;明确学习目标与方向选择适合的IT方向设定具体的学习目标咨询和调研 第二步&#xff1a;系统学习基础知识选择适合的编程语言学习数据结构和算法掌握操作系统和计算机网络基础 第三步&#xff1a;实践项目锻炼技能选择合适的项目编写…

聊一下操作系统 macOS 与 Linux

对于Windows操作系统大家都比较熟悉&#xff0c;也常拿它与Linux操作系统进行比较&#xff0c;两者之间的差异也很明显。但对于macOS 和 Linux的比较不太多&#xff0c;很多人认为它们很相似&#xff0c;因为这两种操作系统都可以运行 Unix 命令。其实详细比较下&#xff0c;两…

Redis——哨兵模式(docker部署redis哨兵)+缓存穿透和雪崩

哨兵模式 自动选取主机的模式。 概述 主从切换技术的方法是:当主服务器宕机后&#xff0c;需要手动把一台从服务器切换为主服务器&#xff0c;这就需要人工干预&#xff0c;费事费力&#xff0c;还会造成段时间内服务不可用。这不是一种推荐的方式&#xff0c;更多时候&…

前端开发怎么解决性能优化的问题? - 易智编译EaseEditing

前端性能优化是确保网站或应用在加载速度、响应性和用户体验等方面达到最佳状态的关键任务。以下是一些解决前端性能优化问题的方法&#xff1a; 压缩和合并代码&#xff1a; 压缩和合并CSS、JavaScript和HTML文件可以减少文件大小&#xff0c;加快加载速度。使用压缩工具&am…

【Linux】Linux下常用查看文件指令小结

0x00 前言 版本信息&#xff1a;Ubuntu 18.04.6 LTS 最后更新日期&#xff1a;2023.8.18 0x01 Linux下常用查看文件指令小结 cat file &#xff1a;显示文件内容&#xff0c;支持-n选项&#xff0c;即cat -n file&#xff0c;表示加行号显示文件内容&#xff0c;不过不适合看…

vue vs react

vue 简介&#xff1a;渐进式 JavaScript 框架 来源&#xff1a;最初由 Evan You &#xff08;尤雨溪&#xff09;于2014年开发。Evan You之前在Google研究过AngularJS&#xff0c;并提取了Angular的部分特性以提供一个更轻量级的框架 版本&#xff1a; vue 1x&#xff1a;2014…

协同过滤推荐算法-基于Django+mysql的智能水果销售系统设计(可做计算机毕设)

随着科技的不断发展&#xff0c;智能化已经成为各行各业的趋势&#xff0c;水果销售行业也不例外。智能水果销售系统就是应运而生的一种智能化解决方案&#xff0c;它可以为用户提供更加便捷、高效的购物体验。其中&#xff0c;系统模块是智能水果销售系统的重要组成部分。 系…

tsconfig.json

概念 tsconfig.json所在位置是ts项目的根目录&#xff0c;他的主要作用是自定义配置不同的选项来告诉编译器如何编译当前项目。 重要属性 compilerOptions - 主要用来配置目标js版本&#xff08;target&#xff09;、模块解析方式&#xff08;moudle&#xff09;、输出目录&am…

python实现文字转语音

文字转语音 简介 pyttsx3是一个Python库&#xff0c;用于文字转语音的功能。它可以将文本转换为语音&#xff0c;并使用不同的音频引擎进行输出。这个教程将向您介绍如何使用pyttsx3来创建自定义的语音应用程序。 安装 使用以下命令安装pyttsx3库&#xff1a; pip install…